forked from TrueCloudLab/frostfs-node
c7c1c257e1
Includes: 1. Renaming counter key to distinguish logical and physical objects 2. Version update dropping since changes could be done in a compatible way Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2.8 KiB
2.8 KiB
Metabase versioning
This file describes changes between the metabase versions.
Current
Primary buckets
- Graveyard bucket
- Name:
_Graveyard
- Key: object address
- Value: tombstone address
- Name:
- Garbage bucket
- Name:
_Garbage
- Key: object address
- Value: dummy value
- Name:
- Bucket containing IDs of objects that are candidates for moving
to another shard.
- Name:
_ToMoveIt
- Key: object address
- Value: dummy value
- Name:
- Container volume bucket
- Name:
_ContainerSize
- Key: container ID
- Value: container size in bytes as little-endian uint64
- Name:
- Bucket for storing locked objects information
- Name:
_Locked
- Key: container ID
- Value: bucket mapping objects locked to the list of corresponding LOCK objects
- Name:
- Bucket containing auxilliary information. All keys are custom and are not connected to the container
- Name:
_i
- Keys and values
id
-> shard id as bytesversion
-> metabase version as little-endian uint64phy_counter
-> shard's physical object counter as little-endian uint64
- Name:
Unique index buckets
- Buckets containing objects of REGULAR type
- Name: container ID
- Key: object ID
- Value: marshalled object
- Buckets containing objects of LOCK type
- Name: container ID +
_LOCKER
- Key: object ID
- Value: marshalled object
- Name: container ID +
- Buckets containing objects of STORAGEGROUP type
- Name: container ID +
_SG
- Key: object ID
- Value: marshaled object
- Name: container ID +
- Buckets containing objects of TOMBSTONE type
- Name: container ID +
_TS
- Key: object ID
- Value: marshaled object
- Name: container ID +
- Buckets mapping objects to the storage ID they are stored in
- Name: container ID +
_small
- Key: object ID
- Value: storage ID
- Name: container ID +
- Buckets for mapping parent object to the split info
- Name: container ID +
_root
- Key: object ID
- Value: split info
- Name: container ID +
FKBT index buckets
- Buckets mapping owner to object IDs
- Name: containerID +
_ownerid
- Key: owner ID as base58 string
- Value: bucket containing object IDs as keys
- Name: containerID +
- Buckets containing objects attributes indexes
- Name: containerID +
_attr_
+ attribute key - Key: attribute value
- Value: bucket containing object IDs as keys
- Name: containerID +
List index buckets
- Buckets mapping payload hash to a list of object IDs
- Name: container ID +
_payloadhash
- Key: payload hash
- Value: list of object IDs
- Name: container ID +
- Buckets mapping parent ID to a list of children IDs
- Name: container ID +
_parent
- Key: parent ID
- Value: list of children object IDs
- Name: container ID +
- Buckets mapping split ID to a list of object IDs
- Name: container ID +
_splitid
- Key: split ID
- Value: list of object IDs
- Name: container ID +
Version 1
- Metabase now stores generic storage id instead of blobovnicza ID.
Version 0
- Container ID is encoded as base58 string
- Object ID is encoded as base58 string
- Address is encoded as container ID + "/" + object ID