phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-3623) Integrate Omid with Phoenix
Date Tue, 19 Jun 2018 11:33:00 GMT


James Taylor commented on PHOENIX-3623:

This is almost ready to merge, [~ohads] & [~tdsilva]. There are three outstanding Omid
issues that need to be fixed first which are causing nine test failures:
 * OMID-102 Implement visibility filter as pure HBase Filter
 ** FlappingTransactionIT.testInflightUpdateNotSeen[FlappingTransactionIT_transactionProvider=OMID]
 ** FlappingTransactionIT.testInflightDeleteNotSeen[FlappingTransactionIT_transactionProvider=OMID]
 * OMID-103 DeleteFamily marker still visible after rollback fails
 ** TransactionIT.testFailureToRollbackAfterDelete[TransactionIT_provider=OMID] *(added specifically
to repro issue in a simple way)*
 ** MutableIndexFailureIT.testIndexWriteFailure[MutableIndexFailureIT_transactionProvider=OMID,localIndex=true,isNamespaceMapped=false,disableIndexOnWriteFailure=false,failRebuildTask=false,throwIndexWriteFailure=null]
 ** MutableIndexFailureIT.testIndexWriteFailure[MutableIndexFailureIT_transactionProvider=OMID,localIndex=true,isNamespaceMapped=true,disableIndexOnWriteFailure=false,failRebuildTask=false,throwIndexWriteFailure=null]
 ** MutableIndexFailureIT.testIndexWriteFailure[MutableIndexFailureIT_transactionProvider=OMID,localIndex=false,isNamespaceMapped=false,disableIndexOnWriteFailure=false,failRebuildTask=false,throwIndexWriteFailure=null]
 ** MutableIndexFailureIT.testIndexWriteFailure[MutableIndexFailureIT_transactionProvider=OMID,localIndex=false,isNamespaceMapped=true,disableIndexOnWriteFailure=false,failRebuildTask=false,throwIndexWriteFailure=null]
 * PHOENIX-4783 Fix Timestamp not allowed in transactional user operations error
 ** MutableRollbackIT.testCheckpointAndRollback[MutableRollbackIT_localIndex=false,transactionProvider=OMID]
 ** MutableRollbackIT.testCheckpointAndRollback[MutableRollbackIT_localIndex=true,transactionProvider=OMID]

One minor and trivial to fix issue is (currently being worked around) is PHOENIX-4782 (Set
transaction on OmidTransactionTable or throw if created called before transaction started)

One important missing feature that would be useful to add: OMID-104 Support TTL

> Integrate Omid with Phoenix
> ---------------------------
>                 Key: PHOENIX-3623
>                 URL:
>             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
> 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

View raw message