blob: b79974d38d2cc09e3e6536e8656021d9af21cd0f [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&nbsp; Apache Ignite C++: ignite::transactions::TransactionIsolation 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.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</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_1transactions.html">transactions</a></li><li class="navelem"><a class="el" href="structignite_1_1transactions_1_1TransactionIsolation.html">TransactionIsolation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="structignite_1_1transactions_1_1TransactionIsolation-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ignite::transactions::TransactionIsolation Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Defines different cache transaction isolation levels.
<a href="structignite_1_1transactions_1_1TransactionIsolation.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="core_2include_2ignite_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:a3ac24463ce4e1f63186a974c33c6b3e3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1transactions_1_1TransactionIsolation.html#a3ac24463ce4e1f63186a974c33c6b3e3">Type</a> { <a class="el" href="structignite_1_1transactions_1_1TransactionIsolation.html#a3ac24463ce4e1f63186a974c33c6b3e3afedbd137a83cadbbff0daae1f10f4c53">READ_COMMITTED</a> = 0,
<a class="el" href="structignite_1_1transactions_1_1TransactionIsolation.html#a3ac24463ce4e1f63186a974c33c6b3e3a6f7ada83d09adcb5cf6d107c08f88dec">REPEATABLE_READ</a> = 1,
<a class="el" href="structignite_1_1transactions_1_1TransactionIsolation.html#a3ac24463ce4e1f63186a974c33c6b3e3a8dadab2cb79ed7d2d0ed91f692fa3b27">SERIALIZABLE</a> = 2
}</td></tr>
<tr class="separator:a3ac24463ce4e1f63186a974c33c6b3e3"><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>Defines different cache transaction isolation levels. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a3ac24463ce4e1f63186a974c33c6b3e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ac24463ce4e1f63186a974c33c6b3e3">&#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_1transactions_1_1TransactionIsolation.html#a3ac24463ce4e1f63186a974c33c6b3e3">ignite::transactions::TransactionIsolation::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="a3ac24463ce4e1f63186a974c33c6b3e3afedbd137a83cadbbff0daae1f10f4c53"></a>READ_COMMITTED&#160;</td><td class="fielddoc"><p>Read committed isolation level. </p>
<p>This isolation level means that always a committed value will be provided for read operations. With this isolation level values are always read from cache global memory or persistent store every time a value is accessed. In other words, if the same key is accessed more than once within the same transaction, it may have different value every time since global cache memory may be updated concurrently by other threads. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3ac24463ce4e1f63186a974c33c6b3e3a6f7ada83d09adcb5cf6d107c08f88dec"></a>REPEATABLE_READ&#160;</td><td class="fielddoc"><p>Repeatable read isolation level. </p>
<p>This isolation level means that if a value was read once within transaction, then all consecutive reads will provide the same in-transaction value. With this isolation level accessed values are stored within in-transaction memory, so consecutive access to the same key within the same transaction will always return the value that was previously read or updated within this transaction. If concurrency is ::IGNITE_TX_CONCURRENCY_PESSIMISTIC, then a lock on the key will be acquired prior to accessing the value. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3ac24463ce4e1f63186a974c33c6b3e3a8dadab2cb79ed7d2d0ed91f692fa3b27"></a>SERIALIZABLE&#160;</td><td class="fielddoc"><p>Serializable isolation level. </p>
<p>This isolation level means that all transactions occur in a completely isolated fashion, as if all transactions in the system had executed serially, one after the other. Read access with this level happens the same way as with ::IGNITE_TX_ISOLATION_REPEATABLE_READ level. However, in ::IGNITE_TX_CONCURRENCY_OPTIMISTIC mode, if some transactions cannot be serially isolated from each other, then one winner will be picked and the other transactions in conflict will result in <a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information.">IgniteError</a> being thrown. </p>
</td></tr>
</table>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="core_2include_2ignite_2transactions_2transaction__consts_8h_source.html">core/include/ignite/transactions/transaction_consts.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jan 10 2022 11:02:04 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.17
</small></address>
</body>
</html>