[ 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)