Tanvi Penumudy created HDDS-9373:
------------------------------------
Summary: Optimize listKeysLight API further by efficient
server-side proto field population
Key: HDDS-9373
URL: https://issues.apache.org/jira/browse/HDDS-9373
Project: Apache Ozone
Issue Type: Sub-task
Components: OM, Ozone Client
Reporter: Tanvi Penumudy
Assignee: Tanvi Penumudy
We have introduced a newer lightweight listKeys API - HDDS-9079. Implement a
lightweight listKeys API (PR [#5115|https://github.com/apache/ozone/pull/5115])
which utilizes a trimmed {{KeyInfo}} ({{{}BasicKeyInfo{}}}) proto object for
excluding fields such as {{KeyLocations}} which are not very useful on the
client side utilizing the server-side Ozone key encapsulations and proto
messages newly introduced as part of HDDS-9079:
{code:java}
message BasicKeyInfo {
optional string keyName = 1;
optional uint64 dataSize = 2;
optional uint64 creationTime = 3;
optional uint64 modificationTime = 4;
optional hadoop.hdds.ReplicationType type = 5;
optional hadoop.hdds.ReplicationFactor factor = 6;
optional hadoop.hdds.ECReplicationConfig ecReplicationConfig = 7;
}
{code}
The main objective is to be able to skip the deserialization of metadata
specific to block information, etc for reducing the performance overhead for
listing keys.
{code:java}
optional uint64 modificationTime = 4;
optional hadoop.hdds.ReplicationType type = 5;
optional hadoop.hdds.ReplicationFactor factor = 6;
optional hadoop.hdds.ECReplicationConfig ecReplicationConfig = 7;
{code}
We can improve the performance further by populating the above fields
server-side only if the key's config differs from that of its bucket's config.
This should reduce the payload and processing server-side unless the key is
replicated in a config different from that of its bucket's default.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]