You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2018/08/09 15:11:00 UTC

[jira] [Commented] (PHOENIX-3623) Integrate Omid with Phoenix

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

James Taylor commented on PHOENIX-3623:
---------------------------------------

With the latest fixes from Omid, things are looking better, but we're seeing some new test failures around checkpoint and rollback. I suspect there's a bug/change in behavior with the SNAPSHOT_ALL option (as these tests used to pass). Here are the failures:
{code:java}
[INFO] Running org.apache.phoenix.tx.TransactionIT
[ERROR] Tests run: 11, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 92.398 s <<< FAILURE! - in org.apache.phoenix.tx.TransactionIT
[ERROR] testCheckpointAndRollback[TransactionIT_provider=OMID](org.apache.phoenix.tx.TransactionIT) Time elapsed: 2.397 s <<< FAILURE!
org.junit.ComparisonFailure: expected:<aa[a]> but was:<aa[]>
at org.apache.phoenix.tx.TransactionIT.testCheckpointAndRollback(TransactionIT.java:457){code}
and these:
{code:java}
[INFO] Running org.apache.phoenix.end2end.index.txn.MutableRollbackIT
[ERROR] Tests run: 6, Failures: 4, Errors: 0, Skipped: 0, Time elapsed: 113.589 s <<< FAILURE! - in org.apache.phoenix.end2end.index.txn.MutableRollbackIT
[ERROR] testRollbackOfUncommittedExistingRowKeyIndexUpdate[MutableRollbackIT_localIndex=false,transactionProvider=OMID](org.apache.phoenix.end2end.index.txn.MutableRollbackIT) Time elapsed: 10.773 s <<< FAILURE!
java.lang.AssertionError
at org.apache.phoenix.end2end.index.txn.MutableRollbackIT.testRollbackOfUncommittedExistingRowKeyIndexUpdate(MutableRollbackIT.java:288)

[ERROR] testCheckpointAndRollback[MutableRollbackIT_localIndex=false,transactionProvider=OMID](org.apache.phoenix.end2end.index.txn.MutableRollbackIT) Time elapsed: 6.894 s <<< FAILURE!
org.junit.ComparisonFailure: expected:<aa[a]> but was:<aa[]>
at org.apache.phoenix.end2end.index.txn.MutableRollbackIT.testCheckpointAndRollback(MutableRollbackIT.java:473)

[ERROR] testRollbackOfUncommittedExistingRowKeyIndexUpdate[MutableRollbackIT_localIndex=true,transactionProvider=OMID](org.apache.phoenix.end2end.index.txn.MutableRollbackIT) Time elapsed: 23.058 s <<< FAILURE!
java.lang.AssertionError
at org.apache.phoenix.end2end.index.txn.MutableRollbackIT.testRollbackOfUncommittedExistingRowKeyIndexUpdate(MutableRollbackIT.java:288)

[ERROR] testCheckpointAndRollback[MutableRollbackIT_localIndex=true,transactionProvider=OMID](org.apache.phoenix.end2end.index.txn.MutableRollbackIT) Time elapsed: 8.881 s <<< FAILURE!
org.junit.ComparisonFailure: expected:<aa[a]> but was:<aa[]>
at org.apache.phoenix.end2end.index.txn.MutableRollbackIT.testCheckpointAndRollback(MutableRollbackIT.java:473){code}
FYI, [~ohads] and [~yonigo].

 

 

 

> Integrate Omid with Phoenix
> ---------------------------
>
>                 Key: PHOENIX-3623
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3623
>             Project: Phoenix
>          Issue Type: New Feature
>            Reporter: Ohad Shacham
>            Assignee: Ohad Shacham
>            Priority: Major
>             Fix For: 4.15.0
>
>
> The purpose of this Jira is to propose a work plan for connecting Omid to Phoenix.
> Each task of the following will be handled in a seperate sub Jira. Subtasks 4.* are related to augmenting Omid to support features required by Phoenix and therefore, their corresponding Jiras will appear under Omid and not under Phoenix. 
> Each task is completed by a commit.
> Task 1: Adding transaction abstraction layer (TAL) - Currently Tephra calls are integrated inside Phoenix code. Therefore, in order to support both Omid and Tephra, we need to add another abstraction layer that later-on will be connected to both Tephra and Omid. The first tasks is to define such an interface.
> Task 2: Implement TAL functionality for Tephra. 
> Task 3: Refactor Phoenix to use TAL instead of direct calls to Tephra.
> Task 4: Implement Omid required features for Phoenix:
> Task 4.1: Add checkpoints to Omid. A checkpoint is a point in a transaction where every write occurs after the checkpoint is not visible by the transaction. Explanations for this feature can be seen in [TEPHRA-96].
> Task 4.2: Add an option to mark a key as non-conflicting. The motivation is to reduce the size of the write set needed by the transaction manager upon commit as well as reduce the conflict detection work.
> Task 4.3: Add support for transactions that never abort. Such transactions will only make other inflight transactions abort and will abort only in case of a transaction manager failure. 
> These transactions are needed for ‘create index’ and the scenario was discussed in [TEPHRA-157] and [PHOENIX-2478]. Augmenting Omid with this kind of transactions was also discussed in [OMID-56].
> Task 4.4: Add support for returning multiple versions in a scan. The use case is described in [TEPHRA-134].
> Task 4.5: Change Omid's timestamp mechanism to return real time based timestamp, while keeping monotonicity.
> Task 5: Implement TAL functionality for Omid.
> Task 6: Implement performance tests and tune Omid for Phoenix use. This task requires understanding of common usage scenarios in Phoenix as well as defining the tradeoff between throughput and latency. 
> Could you please review the proposed work plan?
> Also, could you please let me know whether I missed any augmentation needed for Omid in order to support Phoenix operations?
> I opened a jira [OMID-82] that encapsulates all Omid related development for Phoenix.



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