[
https://issues.apache.org/jira/browse/PHOENIX-5923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17196578#comment-17196578
]
Lars Hofhansl commented on PHOENIX-5923:
----------------------------------------
Another part to consider is client compatibility.
Discussed this with [~giskender] today. Right now clients (via client side
IndexMaintainers) assume that the encoding between main table and indexes are
identical.
Once we create an index like this old client would fail updating the index
(reading would perhaps work, but we'd need to study that part of the code). I
think that is acceptable, as you would only be able to create an index like
with a new client, and the default would remain using the same storage format.
Would a user would have to make of is that *all* clients are updates before
*any* index is created like this.
See also discussion on PHOENIX-6210 for how to handle this for new clients.
> Supporting the single cell storage format for mutable global indexes
> --------------------------------------------------------------------
>
> Key: PHOENIX-5923
> URL: https://issues.apache.org/jira/browse/PHOENIX-5923
> Project: Phoenix
> Issue Type: Improvement
> Affects Versions: 5.0.0, 4.14.3
> Reporter: Kadir OZDEMIR
> Assignee: Gokcen Iskender
> Priority: Major
>
> It is known that IMMUTABLE_STORAGE_SCHEME = SINGLE_CELL_ARRAY_WITH_OFFSETS
> leads to performance improvement and storage saving. As the name implies this
> storage scheme is currently supported for immutable tables only. Supporting
> the SINGLE_CELL_ARRAY_WITH_OFFSETS storage format for mutable table requires
> reading existing rows for before mutating them, i.e., read-modify-write.
> However, this storage scheme can be used for mutable global index tables
> without any additional IO operation since for every index table update, we
> always read the corresponding data table row and generate the full index row
> from the current state of the data table row and the pending mutation on this
> row. This full index row can be stored using the
> SINGLE_CELL_ARRAY_WITH_OFFSETS storage format even though the data table can
> continue using a mutable storage format. This will allow index tables to
> enjoy the performance improvement and storage saving due to this storage
> format.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)