You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Istvan Toth (Jira)" <ji...@apache.org> on 2024/04/29 07:57:00 UTC

[jira] [Created] (HBASE-28556) Reduce memory copying in Rest server when converting CellModel to Protobuf

Istvan Toth created HBASE-28556:
-----------------------------------

             Summary: Reduce memory copying in Rest server when converting CellModel to Protobuf
                 Key: HBASE-28556
                 URL: https://issues.apache.org/jira/browse/HBASE-28556
             Project: HBase
          Issue Type: Improvement
          Components: REST
            Reporter: Istvan Toth


The REST server does a lot of unneccessary coping, which could be avoided at least for protobuf encoding.

- It uses ByteStringer to handle ByteBuffer backed Cells. However, it uses the client API, so it sjpuld never encounter ByteBuffer backed cells.
- It clones everything from the cells (sometimes multiple times) before serializing to protbuf.

We could mimic the structure in Cell, with array, offset and length for each field, and use the appropriate protobuf setters to avoid the extra copies.

There may or may not be a way to do the same for JSON and XML via jax-rs, I don't know the frameworks well enough to tell, but if not, we could just do the copying in the getters for them.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)