You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Wail Y. Alkowaileet (Jira)" <ji...@apache.org> on 2023/06/14 19:10:00 UTC

[jira] [Created] (ASTERIXDB-3212) Account for offset sizes for variable-length PKs in columnar datasets

Wail Y. Alkowaileet created ASTERIXDB-3212:
----------------------------------------------

             Summary: Account for offset sizes for variable-length PKs in columnar datasets
                 Key: ASTERIXDB-3212
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-3212
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: STO - Storage
    Affects Versions: 0.9.9
            Reporter: Wail Y. Alkowaileet
            Assignee: Wail Y. Alkowaileet
             Fix For: 0.9.9


After we moved from encoded PKs to plain PKs, fixed-length vs. variable-length values are now stored differently. For fixed-length PKs (e.g., BIGINT), we store each primary key one after the other. For variable-length PKs (e.g., STRING), we store them as two sub-vectors, one vector is used for the offsets for each PK, whereas the other is used to store the PK value itself.

When bulk-loading a ColumnBTree, we rely on *AbstractColumnTupleWriter#bytesRequired(ITupleReference)* to get the estimated size to write the PKs of the tuple. For variable length values, we do not count the size of the offsets' sub-vector. 



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