<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&nbsp; Apache Ignite C++: ignite::thin::transactions::TransactionConcurrency Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">&nbsp; Apache Ignite C++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceignite.html">ignite</a></li><li class="navelem"><a class="el" href="namespaceignite_1_1thin.html">thin</a></li><li class="navelem"><b>transactions</b></li><li class="navelem"><a class="el" href="structignite_1_1thin_1_1transactions_1_1TransactionConcurrency.html">TransactionConcurrency</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="structignite_1_1thin_1_1transactions_1_1TransactionConcurrency-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ignite::thin::transactions::TransactionConcurrency Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Transaction concurrency control model.  
 <a href="structignite_1_1thin_1_1transactions_1_1TransactionConcurrency.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="thin-client_2include_2ignite_2thin_2transactions_2transaction__consts_8h_source.html">transaction_consts.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a73c4c86e44cf441df006c8e242ac3fdd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1thin_1_1transactions_1_1TransactionConcurrency.html#a73c4c86e44cf441df006c8e242ac3fdd">Type</a> { <a class="el" href="structignite_1_1thin_1_1transactions_1_1TransactionConcurrency.html#a73c4c86e44cf441df006c8e242ac3fdda17020cd3cf81eaf17916c26cf787cb42">OPTIMISTIC</a> = 0, 
<a class="el" href="structignite_1_1thin_1_1transactions_1_1TransactionConcurrency.html#a73c4c86e44cf441df006c8e242ac3fdda43f370006a8d920c4783eddef1975a9b">PESSIMISTIC</a> = 1
 }</td></tr>
<tr class="separator:a73c4c86e44cf441df006c8e242ac3fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Transaction concurrency control model. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a73c4c86e44cf441df006c8e242ac3fdd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73c4c86e44cf441df006c8e242ac3fdd">&#9670;&nbsp;</a></span>Type</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="structignite_1_1thin_1_1transactions_1_1TransactionConcurrency.html#a73c4c86e44cf441df006c8e242ac3fdd">ignite::thin::transactions::TransactionConcurrency::Type</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a73c4c86e44cf441df006c8e242ac3fdda17020cd3cf81eaf17916c26cf787cb42"></a>OPTIMISTIC&#160;</td><td class="fielddoc"><p>Optimistic concurrency model. </p>
<p>In this mode all cache operations are not distributed to other nodes until Transaction::Commit() is called. In this mode one <code>'PREPARE'</code> message will be sent to participating cache nodes to start acquiring per-transaction locks, and once all nodes reply <code>'OK'</code>, a one-way <code>'COMMIT'</code> message is sent without waiting for reply.</p>
<p>Note that in this mode, optimistic failures are only possible in conjunction with ::IGNITE_TX_ISOLATION_SERIALIZABLE isolation level. In all other cases, optimistic transactions will never fail optimistically and will always be identically ordered on all participating grid nodes. </p>
</td></tr>
<tr><td class="fieldname"><a id="a73c4c86e44cf441df006c8e242ac3fdda43f370006a8d920c4783eddef1975a9b"></a>PESSIMISTIC&#160;</td><td class="fielddoc"><p>Pessimistic concurrency model. </p>
<p>In this mode a lock is acquired on all cache operations with exception of read operations in ::IGNITE_TX_ISOLATION_READ_COMMITTED mode. All optional filters passed into cache operations will be evaluated after successful lock acquisition. Whenever Transaction::Commit() is called, a single one-way <code>'COMMIT'</code> message is sent to participating cache nodes without waiting for reply. Note that there is no reason for distributed <code>'PREPARE'</code> step, as all locks have been already acquired. </p>
</td></tr>
</table>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="thin-client_2include_2ignite_2thin_2transactions_2transaction__consts_8h_source.html">thin-client/include/ignite/thin/transactions/transaction_consts.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Dec 20 2021 14:08:59 for &nbsp; Apache Ignite C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
