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

ASF GitHub Bot commented on OMID-90:
------------------------------------

Github user ohadshacham commented on a diff in the pull request:

    https://github.com/apache/incubator-omid/pull/46#discussion_r223976065
  
    --- Diff: 
hbase-client/src/test/java/org/apache/omid/transaction/TestEndToEndScenariosWithHA.java
 ---
    @@ -287,7 +287,7 @@ public void testScenario1() throws Exception {
         // TX 2 modifies cells R1C1 & R2C2 (v2)
         // TX 2 commits
         // End of Test state: R1C1 & R2C2 (v2)
    -    @Test(timeOut = 60_000)
    +    @Test(timeOut = 60_000000)
    --- End diff --
    
    Why this is needed? Due to the low_cpu mode? or you just forgot it? :)


> Reducing begin/commit latency by distributing the write to the commit table
> ---------------------------------------------------------------------------
>
>                 Key: OMID-90
>                 URL: https://issues.apache.org/jira/browse/OMID-90
>             Project: Apache Omid
>          Issue Type: Sub-task
>            Reporter: Ohad Shacham
>            Assignee: Yonatan Gottesman
>            Priority: Major
>         Attachments: OmidCloud-VLDB.pdf, omid90.patch
>
>
> Today, Omid's commits are done by the transaction manager. In order to 
> efficiently write to the commit table, the transaction manager batches these 
> writes. This optimization, even thought reduces the write time to HBase, 
> significantly increases the begin and commit latency. The commit latency 
> increases since a commit operation returns only after its commit timestamp 
> was persisted in the commit table. And the begin latency increases since 
> begin returns a transaction id that is also used by the transaction to 
> identify its snapshot and therefore, begin returns only after all commits 
> with commit id smaller than the begin id was persisted in the commit table. 
> This is crucial, since a snapshot change during a transaction run may violate 
> snapshot isolation. 
>  
> The idea of this feature is to distribute the commit by moving the write to 
> the commit table from the server to the client. The transaction manager does 
> conflict analysis and returns a commit timestamp. While the client atomically 
> persists this commit in the commit table.
> This significantly reduces the begin and commit latency, since batching is 
> not required anymore. A begin operation can immediately returns and a commit 
> operation returns after conflict detection. 
> This can introduce snapshot isolation violation since a slow client can 
> commit and change other transaction's snapsho. Therefore, we use an 
> invalidation technique which is similar to the one Omid uses today to 
> maintain snapshot isolation in high availability mode.



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

Reply via email to