<!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>
<link rel="canonical" href="https://ignite.apache.org/releases/1.9.0/dotnetdoc/functions_prop_p.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<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.9.1"/>
<title>Apache Ignite.NET: Class Members - Properties</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></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 style="padding-left: 0.5em;">
   <div id="projectname">Apache Ignite.NET
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('functions_prop_p.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;

<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>PageSize
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_query_1_1_query_base.html#acc0181ab96fb330ee8d6894578b5caa9">Apache.Ignite.Core.Cache.Query.QueryBase</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_query_1_1_sql_fields_query.html#aa59524f79338388efd00ae548c3f2a94">Apache.Ignite.Core.Cache.Query.SqlFieldsQuery</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_linq_1_1_query_options.html#a4000c3d99740591af5b154ea05b632b3">Apache.Ignite.Linq.QueryOptions</a>
</li>
<li>Partition
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_query_1_1_scan_query.html#a2288eb5b9b37fb2efe8dce3852a54ed6">Apache.Ignite.Core.Cache.Query.ScanQuery&lt; TK, TV &gt;</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_cache_event.html#a239fa6d34a8587f2716cb82e4a178904">Apache.Ignite.Core.Events.CacheEvent</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_cache_rebalancing_event.html#ae356d4f79718156ec3aea090f5ddd2bd">Apache.Ignite.Core.Events.CacheRebalancingEvent</a>
</li>
<li>Partitions
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_i_affinity_function.html#a35d160ca20050641171048473746306f">Apache.Ignite.Core.Cache.Affinity.IAffinityFunction</a>
, <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_affinity.html#a2252f83ac1d69e0f0603348912dc785f">Apache.Ignite.Core.Cache.ICacheAffinity</a>
</li>
<li>PerNodeBufferSize
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_datastream_1_1_i_data_streamer.html#acdaa6b292d58f5985c66e5f10b720414">Apache.Ignite.Core.Datastream.IDataStreamer&lt; TK, TV &gt;</a>
</li>
<li>PerNodeParallelOperations
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_datastream_1_1_i_data_streamer.html#a52fd5af295e4c289af8fb6cf665428c9">Apache.Ignite.Core.Datastream.IDataStreamer&lt; TK, TV &gt;</a>
</li>
<li>PessimisticTransactionLogLinger
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_transaction_configuration.html#abc5d9aa300c59d5f4bd8286822807d9e">Apache.Ignite.Core.Transactions.TransactionConfiguration</a>
</li>
<li>PessimisticTransactionLogSize
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_transaction_configuration.html#a681ea48a1a2d8b276658f02371db5170">Apache.Ignite.Core.Transactions.TransactionConfiguration</a>
</li>
<li>Properties
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store_session.html#ad0c5ddda4552766b3f69e9a762c6fd2e">Apache.Ignite.Core.Cache.Store.ICacheStoreSession</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_interop_1_1_java_object.html#ac1283cd7561f8cda9989636d5fb0c0f6">Apache.Ignite.Core.Interop.JavaObject</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu Mar 2 2017 17:22:55 for Apache Ignite.NET by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
  </ul>
</div>
</body>
</html>
