Kadir OZDEMIR created PHOENIX-5539:
--------------------------------------
Summary: Full index write at the last write phase for mutable
global indexes
Key: PHOENIX-5539
URL: https://issues.apache.org/jira/browse/PHOENIX-5539
Project: Phoenix
Issue Type: Improvement
Affects Versions: 5.0.0, 4.15.0
Reporter: Kadir OZDEMIR
Assignee: Kadir OZDEMIR
In the original design for consistent indexes, we do three phase write. In the
first phase, we write full index rows with unverified status, then we write
data table rows, and finally we overwrite the index row status on the rows
written at the first phase and set it to unverified.
Instead of writing full index row in the first phase, we can do full index row
write at the last phase. So, in the first phase, we can just write unverified
status for the index row. In the last row, we can do full row index write at
the last phase.
This change does not impact the correctness of the design but improves overall
design in terms of efficiency. In the presence of concurrent writes, we skip
the last write phase. These writes leave the index writes in unverified status.
Similarly, if the first or second phase write fails, we do not proceed with the
third phase.
Since with this change, we will be writing only the empty column with the
unverified status value (i.e., 2) for index tables in these failure cases, the
storage usage will be improved as we will write less index data. This change
also opens up the solution domain for some problems, e.g., handling replication
lag issues (please see PHOENIX-5527).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)