Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
-
None
Description
Currently, the 'key' type of the SCM container DB is org.apache.hadoop.hdds.scm.container.ContainerID which is not backed up by a proto equivalent. Hence, we use a long codec to serialize and deserialize the key from long to byte[ ] and back.
public static final DBColumnFamilyDefinition<ContainerID, ContainerInfo> CONTAINERS = new DBColumnFamilyDefinition<ContainerID, ContainerInfo>( "containers", ContainerID.class, new ContainerIDCodec(), ContainerInfo.class, new ContainerInfoCodec());
In the future if we have to support a container id type that is more than just a long, then changing the ContainerID class will break backward compatibility. To handle this incompatibility in the future, we have to either migrate old data or provide fallback conversion codecs for the old data type. Hence, it is good to wrap this long into a proto structure.
Attachments
Issue Links
- is fixed by
-
HDDS-3925 SCM Pipeline DB should directly use UUID bytes for key rather than rely on proto serialization for key.
- Resolved