Ohad Shacham created OMID-90:
--------------------------------

             Summary: 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: New Feature
            Reporter: Ohad Shacham


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