[
https://issues.apache.org/jira/browse/TEPHRA-99?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16168069#comment-16168069
]
Andreas Neumann commented on TEPHRA-99:
---------------------------------------
Conceptually that can work. There are only two caveats:
- if you have a TTL for the table, then items can timeout after you commit the
tx. If you keep the tx active, then anything visible to the tx is protected
from TTL
- if some of the items are deleted or overwritten, and then a flush or
compaction happens, Tephra's coprocessor might eliminate the cells because they
are not visible to any in-progress or future transaction.
If that is not a concern, then your approach should work.
> Make "long running" transactions usable with TransactionContext
> ---------------------------------------------------------------
>
> Key: TEPHRA-99
> URL: https://issues.apache.org/jira/browse/TEPHRA-99
> Project: Tephra
> Issue Type: Improvement
> Components: core
> Reporter: Gary Helmling
> Assignee: Gary Helmling
>
> "Long running" transactions (type == LONG) are supported by the Tephra
> {{TransactionManager}}, but {{TransactionContext}} does not expose any way
> for clients to interact with them. I think this will require a couple
> changes:
> * add a {{startLong()}} method to TransactionContext
> * add a constructor to TransactionContext that takes an existing
> {{Transaction}} instance. Since long running transactions are often used in
> map reduce processing, the process committing the transaction may be
> different from the process that started the transaction. In this situation,
> we need a way to pass the serialized transaction all the way through to the
> other process.
> Regarding map reduce support, we could use additional utilities or support in
> place to make transactions easier to use with map reduce. But this would at
> least serve as a first step.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)