You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/01/29 15:59:00 UTC

[jira] [Commented] (PHOENIX-4278) Implement pure client side transactional index maintenance

    [ https://issues.apache.org/jira/browse/PHOENIX-4278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16343537#comment-16343537 ] 

ASF GitHub Bot commented on PHOENIX-4278:
-----------------------------------------

GitHub user ohadshacham opened a pull request:

    https://github.com/apache/phoenix/pull/291

    [PHOENIX-4278] Implement pure client side transactional index mainten…

    …ance.
    
        Moving the index update from a coprocessor to the client side. This is done only for transactions case and also aids in updating the shadow cells when using Omid.
        In this commit, I also changed the way deletion are updated in Tephra by using their regular api instead of using Tephra's deletion marker.
        This will also aid in updating Omid's shadow cells upon commit.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ohadshacham/phoenix PHOENIX-4278-sq

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/phoenix/pull/291.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #291
    
----
commit 5fa8c3b392ba3323c90bf7b3685a4996528c35f6
Author: Ohad Shacham <oh...@...>
Date:   2018-01-29T15:55:11Z

    [PHOENIX-4278] Implement pure client side transactional index maintenance.
        Moving the index update from a coprocessor to the client side. This is done only for transactions case and also aids in updating the shadow cells when using Omid.
        In this commit, I also changed the way deletion are updated in Tephra by using their regular api instead of using Tephra's deletion marker.
        This will also aid in updating Omid's shadow cells upon commit.

----


> Implement pure client side transactional index maintenance
> ----------------------------------------------------------
>
>                 Key: PHOENIX-4278
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4278
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>            Assignee: Ohad Shacham
>            Priority: Major
>
> The index maintenance for transactions follows the same model as non transactional tables - coprocessor based on data table updates that looks up previous row value to perform maintenance. This is necessary for non transactional tables to ensure the rows are locked so that a consistent view may be obtained. However, for transactional tables, the time stamp oracle ensures uniqueness of time stamps (via transaction IDs) and the filtering handles a scan seeing the "true" last committed value for a row. Thus, there's no hard dependency to perform this on the server side.
> Moving the index maintenance to the client side would prevent any RS->RS RPC calls (which have proved to be troublesome for HBase). It would require returning more data to the client (i.e. the prior row value), but this seems like a reasonable tradeoff.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)