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]

Reply via email to