Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-3630 Merge rocksdb in datanode
  3. HDDS-6486

Add new container schema v3 definitions.

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.3.0
    • None

    Description

      Add definition classes for rocksdb-merge, thus we have a new container schema – schemaV3.

      After rocksdb-merge, we have the metadata of multiple containers into a central per-disk rocksdb instances, so we should add prefix to their metadata KVs, here is a comparison of the old schemaV2 v.s. schemaV3:

      SchemaV2

      Table Name/ColumnFamily KeyValue
      block_data <LocalID, BlockData>
      metadata <MetadataPrefix, MetadataValue>
      delete_txns <TxnID, DeletedBlocksTransaction>

      SchemaV3

      Table Name/ColumnFamily KeyValue
      block_data <ContainerID#LocalID, BlockData>
      metadata <ContainerID#MetadataPrefix, MetadataValue>
      delete_txns <ContainerID#TxnID, DeletedBlocksTransaction>

      The containerID should be of fixed-length, then the iteration of a specific container metadata will be optimized using rocksdb "Prefix-Seek" feature: https://github.com/facebook/rocksdb/wiki/Prefix-Seek.

      We need to define new classes such as:

      • DatanodeSchemaThreeDBDefinition
      • DatanodeStoreSchemaThreeImpl

      Attachments

        Issue Links

          Activity

            People

              markgui Mark Gui
              markgui Mark Gui
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: