﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.7.5/dotnetdoc/api/Apache.Ignite.Core.Configuration.html" />

<META NAME="ROBOTS" CONTENT="NOINDEX">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Apache.Ignite.Core.Configuration
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Apache.Ignite.Core.Configuration
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<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 data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Configuration">
  
  <h1 id="Apache_Ignite_Core_Configuration" data-uid="Apache.Ignite.Core.Configuration" class="text-break">Namespace Apache.Ignite.Core.Configuration
  </h1>
  <div class="markdown level0 summary"></div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Configuration.ClientConnectorConfiguration.html">ClientConnectorConfiguration</a></h4>
      <section><p>Client connector configuration (ODBC, JDBC, Thin Client).</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Configuration.DataRegionConfiguration.html">DataRegionConfiguration</a></h4>
      <section><p>Defines custom data region configuration for Apache Ignite page memory
(see <a class="xref" href="Apache.Ignite.Core.Configuration.DataStorageConfiguration.html">DataStorageConfiguration</a>). 
<p>
For each configured data region Apache Ignite instantiates respective memory regions with different
parameters like maximum size, eviction policy, swapping options, etc.
An Apache Ignite cache can be mapped to a particular region using
<a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html#Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_DataRegionName">DataRegionName</a> method.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Configuration.DataStorageConfiguration.html">DataStorageConfiguration</a></h4>
      <section><p>Data storage configuration for Ignite page memory.
<p>
The page memory is a manageable off-heap based memory architecture that divides all expandable data
regions into pages of fixed size. An individual page can store one or many cache key-value entries
that allows reusing the memory in the most efficient way and avoid memory fragmentation issues.
<p>
By default, the page memory allocates a single expandable data region. All the caches that will be
configured in an application will be mapped to this data region by default, thus, all the cache data
will reside in that data region.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Configuration.SqlConnectorConfiguration.html">SqlConnectorConfiguration</a></h4>
      <section><p>SQL connector configuration (for ODBC and JDBC).</p>
</section>
    <h3 id="enums">Enums
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Configuration.CheckpointWriteOrder.html">CheckpointWriteOrder</a></h4>
      <section><p>Defines checkpoint pages order on disk.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Configuration.DataPageEvictionMode.html">DataPageEvictionMode</a></h4>
      <section><p>Memory page eviction mode.
Only data pages, that store key-value entries, are eligible for eviction.
The other types of pages, like index or system pages, are not evictable.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Configuration.WalMode.html">WalMode</a></h4>
      <section><p>Write Ahead Log mode.</p>
</section>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2018 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
