tephra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Micael Capitão (JIRA) <j...@apache.org>
Subject [jira] [Commented] (TEPHRA-99) Make "long running" transactions usable with TransactionContext
Date Fri, 15 Sep 2017 08:44:00 GMT

    [ https://issues.apache.org/jira/browse/TEPHRA-99?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16167543#comment-16167543

Micael Capitão commented on TEPHRA-99:

Well the thing here is: when the client first requests a page I'm opening a new scan, fetch
records until a certain limit and then return the records plus the last row and the tx (the
scan is closed). On the next pages the client provides me the last row and the tx info and
I repeat the procedure but starting the scan at the last row (excluded) and injecting the
tx info from the first page (that is the part that I'm going to do now).
The truth is I don't really want to start a transaction on the pages after the first one (and
on the first page I do have to start a transaction and commit it). I only need the transaction
info to go with the scan so the Thephra coprocessor can do its job at filtering anything that
should not be seen by the tx I've injected. So in reality there should be no issues at all
or am I missing something here?

> 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

This message was sent by Atlassian JIRA

View raw message