Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-3630

Merge rocksdb in datanode

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • None

    Description

      Currently, one rocksdb for one container. one container has 5GB capacity. 10TB data need more than 2000 rocksdb in one datanode. It's difficult to limit the memory of 2000 rocksdb. So maybe we should limited instance of rocksdb for each disk.

      The design of improvement is in the follow link, but still is a draft.
      TODO:
      1. compatibility with current logic i.e. one rocksdb for each container
      2. measure the memory usage before and after improvement
      3. effect on efficiency of read and write.

      https://docs.google.com/document/d/18Ybg-NjyU602c-MYXaJHP6yrg-dVMZKGyoK5C_pp1mM/edit#

       

      Updated: 2021-10-29

      We'll continue this topic with a new detailed design doc:

      https://docs.google.com/document/d/1hLtPJI8lSUhazMsoRKQuXuXs2gqixi6bQNTV9UnPsqs/edit?usp=sharing

       

      Updated: 2022-05-23

      Refined the design doc:

      https://docs.google.com/document/d/1oPCRUVqTJDbYITbwvoVCOZ2-k108FwOXVhq9ukDKHbQ/edit?usp=sharing

      Attachments

        1. Merge rocksdb in datanode V5.pdf
          484 kB
          Sammi Chen
        2. Merge rocksdb in datanode-v4.pdf
          567 kB
          Mark Gui
        3. Merge rocksdb in datanode-v3.pdf
          550 kB
          Mark Gui
        4. Merge RocksDB in Datanode-v2.pdf
          93 kB
          runzhiwang
        5. Merge RocksDB in Datanode-v1.pdf
          33 kB
          runzhiwang

        Issue Links

          1.
          Allow to add ColumnFamilyOptions to tables. Sub-task Resolved Mark Gui
          2.
          Decouple DatanodeStore impl classes from container. Sub-task Resolved Mark Gui
          3.
          Add DBHandle abstraction over ReferenceCountedDB. Sub-task Resolved Mark Gui
          4.
          Format table key according to schema in KeyValueContainerData. Sub-task Resolved Mark Gui
          5.
          Add prefix iterator support to RDBTable. Sub-task Resolved Mark Gui
          6.
          Add new container schema v3 definitions. Sub-task Resolved Mark Gui
          7.
          Add a Cache for per-disk DB handles. Sub-task Resolved Mark Gui
          8.
          Per-disk DB location management. Sub-task Resolved Mark Gui
          9.
          KeyValueContainer operation adaptation for schema v3 containers. Sub-task Resolved Mark Gui
          10.
          BlockDeletingService adaptation for schema v3 containers. Sub-task Resolved Mark Gui
          11.
          New container replication operations for schema v3 container. Sub-task Resolved Mark Gui
          12.
          Non-rolling upgrade supports container schema V3 Sub-task Resolved Sammi Chen
          13.
          Add scanner for dbVolume Sub-task Resolved Mark Gui
          14.
          Create rocksdb instance for hddsVolume when schema3 is finalized Sub-task Resolved Sammi Chen
          15.
          Flush RocksDB WAL when closing container in Schema V3 Sub-task Resolved Sammi Chen
          16.
          Persist RocksDB path of each HddsVolume in VERSION file Sub-task Open Sammi Chen
          17.
          Support configurable separator between container ID and container meta data key Sub-task Resolved Sammi Chen
          18.
          Add compatibility test between schema v3 & v2. Sub-task Resolved Mark Gui
          19.
          Add document for Merge RocksDB in datanode feature Sub-task Resolved Sammi Chen
          20.
          Add smoke test for Merge RocksDB in datanode feature Sub-task Resolved Sammi Chen
          21.
          Fix issues reportd by sonar Sub-task Resolved Sammi Chen
          22.
          ldb cli command supports to scan container V3 Sub-task Resolved Sammi Chen
          23.
          Ozone debug container CLI supports container export Sub-task Resolved Sammi Chen
          24.
          Add property to control RocksDB max open files Sub-task Resolved Sammi Chen
          25.
          Expose RocksDB critical properties Sub-task Resolved Sammi Chen
          26.
          Add support for Rocksdb user info LOG configure Sub-task Resolved Sammi Chen
          27.
          Schema V3 RocksDB instance statitics register as metrics collision Sub-task Resolved Sammi Chen
          28.
          Enable Container SchemaV3 by default Sub-task Resolved Sammi Chen
          29.
          Auto rocksDB small sst files compaction Sub-task Resolved Sammi Chen
          30.
          Test container schema V2 and V3 replica mutual import Sub-task Resolved Sammi Chen
          31.
          Add container layout v2 upgrade to v3 tool Sub-task Resolved GuoHao
          32.
          Add document for container layout v2 upgrade to v3 tool Sub-task Open Unassigned
          33.
          Add container layout v2 upgrade to v3 logic Sub-task Resolved GuoHao

          Activity

            People

              markgui Mark Gui
              yjxxtd runzhiwang
              Votes:
              0 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: