Ivan Andika created HDDS-11222:
----------------------------------
Summary: LocalID in DN BlockKey should be persisted as fixed byte
array
Key: HDDS-11222
URL: https://issues.apache.org/jira/browse/HDDS-11222
Project: Apache Ozone
Issue Type: Improvement
Components: Ozone Datanode
Reporter: Ivan Andika
Assignee: Ivan Andika
KeyValueContainerData#getBlockKey passes the localID using Long#toString, which
does not generate a fixed-byte array. This means that the RocksDB table will
sort the block key "lexicographically" instead of "numerically". For example,
numerically localID 9 < 100, but lexicographically "9" < "100". This means that
things like startLocalID in BlockManagerImpl#listBlock need to assume that the
localIDs returned are the ones with lexicographically larger.
We can fix it by using fixed byte array to represent the Long value (how it's
done in LongCodec). However, we cannot simply change it without breaking a lot
of existing codes. So probably, we need to live with this.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]