[
https://issues.apache.org/jira/browse/PHOENIX-3472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15654797#comment-15654797
]
James Taylor commented on PHOENIX-3472:
---------------------------------------
We have to issue that delete marker as that's what is deleting the row that
represents the old value to properly maintain the index. We can't know if the
old value actually exists or not (it's potentially a different row on a
different server). For immutable tables we don't because there should never be
an old value since a row is never updated (by definition).
It's maybe possible that for local indexes we could check if the index row
exists before issuing the Delete marker since we know it's a local operation.
Any thoughts on this [~rajeshbabu]?
> Mutable index adds DeleteFamily markers which impacts query performance
> -----------------------------------------------------------------------
>
> Key: PHOENIX-3472
> URL: https://issues.apache.org/jira/browse/PHOENIX-3472
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.9.0
> Reporter: Mujtaba Chohan
>
> {noformat}
> create table M (k varchar not null primary key, v archer);
> create index MI on M(v);
> upsert into M values ('a','b');
> {noformat}
> Raw scan shows the following two kv pair with the first one being a delete
> marker
> {noformat}
> ROW COLUMN+CELL
>
> \x00a column=0:, timestamp=1478801841429, type=DeleteFamily
>
> b\x00a column=0:_0, timestamp=1478801841429, value=_0
> {noformat}
> This severely impacts read query performance as data size grows, the number
> of DeleteFamily markers also grows linearly in the table.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)