diff --git a/docs/3.0.0-alpha/binary-protocol.html b/docs/3.0.0-alpha/binary-protocol.html
new file mode 100644
index 0000000..09ce09c
--- /dev/null
+++ b/docs/3.0.0-alpha/binary-protocol.html
@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+
+      
+      
+<html lang="en">
+<head>
+   <meta charset="UTF-8">
+    <!-- Global site tag (gtag.js) - Google Analytics -->
+    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
+    <script>
+    window.dataLayer = window.dataLayer || [];
+    function gtag(){dataLayer.push(arguments);}
+    gtag('js', new Date());
+    gtag('config', 'UA-61232409-1');
+    </script>
+
+    <!-- Yandex.Metrika counter -->
+    <script type="text/javascript" >
+      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
+      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
+      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
+
+      ym(72949126, "init", {
+          clickmap:true,
+          trackLinks:true,
+          accurateTrackBounce:true,
+          webvisor:true
+      });
+    </script>
+    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
+    <!-- /Yandex.Metrika counter -->
+
+    <!-- LuckyOrange code -->
+    <script type='text/javascript'>
+      window.__lo_site_id = 284467;
+    
+      (function() {
+        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
+        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
+        })();
+      </script>
+      <!-- /LuckyOrange code -->
+
+<!-- Bugyard widget embed -->
+<script type="text/javascript">!function(){if("function"!=typeof window.bugyard){var a=function(){a.c(arguments)};a.q=[],a.c=function(b){a.q.push(b)},window.bugyard=a;var b=document.createElement("script");b.setAttribute("data-bugyard","610961912c35ff001493163a"),b.setAttribute("async","async"),b.setAttribute("defer","defer"),b.setAttribute("src","https://widget.bugyard.io/bugyard.min.js"),document.getElementsByTagName("head")[0].appendChild(b)}}(); window.bugyard("hideButton"); </script>
+
+
+
+
+
+    <link rel="preload" href='/assets/js/code-tabs.js?1' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/page-nav.js' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/docs-menu.js?20201005' as="script" crossorigin>
+
+    <style>:root{--gg-red:#ec1c24;--gg-orange:#ec1c24;--gg-orange-dark:#bc440b;--gg-orange-filter:invert(47%) sepia(61%) saturate(1950%) hue-rotate(345deg) brightness(100%) contrast(95%);--gg-dark-gray:#333333;--orange-line-thickness:3px;--block-code-background:rgba(241, 241, 241, 20%);--inline-code-background:rgba(241, 241, 241, 90%);--padding-top:25px;--link-color:#ec1c24;--body-background:#fcfcfc}header{min-height:var(--header-height);background:#fff;box-shadow:0 4px 10px 0 #eee,0 0 4px 0 #d5d5d5;z-index:1}header>.container{display:grid;grid-template-columns:auto auto 1fr auto auto auto;grid-template-areas:'left-toggle home nav ver api search lang';grid-template-rows:40px;flex-direction:row;align-items:center;justify-content:flex-start;padding:12px 20px;max-width:1400px;margin:0 auto}header nav>ul{padding:0;margin:0;list-style:none;display:inherit}header .dropdown{display:none;position:fixed;top:calc(var(--header-height) - 12px);width:auto;background:#fff;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);border-radius:4px;padding-top:10px;padding-bottom:12px;z-index:2}header .dropdown li{display:flex}header .dropdown a{color:grey!important;font-size:16px;padding-top:5px;padding-bottom:4px}header .menu{border:none;background:0 0;width:40px;height:40px;margin-right:12px;grid-area:left-toggle}header .menu img{width:18px;height:12px}header .search-close,header .top-nav-toggle{background:0 0;border:none;padding:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--gg-dark-gray);font-size:26px}header .search-toggle{grid-area:search}header .top-nav-toggle{grid-area:top-toggle}header .home{grid-area:home;margin-right:auto}header .home img{height:36px}header #api-docs{grid-area:api;margin:0;display:flex}header #api-docs .dropdown{padding:.5em 0}header #api-docs a{padding:9px 14px;color:var(--gg-dark-gray)!important;text-decoration:none;white-space:nowrap}header #api-docs .dropdown-item a{font-weight:400;display:block;width:100%;min-width:150px}header #lang-selector li{list-style:none;display:flex;padding:9px 14px}header #lang-selector li a{display:flex;color:#000;align-items:center}header #lang-selector li a span{font-size:10px;margin-left:5px}header #lang-selector li a img{width:25px}header #lang-selector li .dropdown{margin-left:-70px}header #lang-selector li .dropdown .dropdown-item{padding:0 1em;margin-bottom:8px}header #lang-selector li .dropdown .dropdown-item a span{font-size:14px}header .search{margin-left:auto;margin-right:20px;grid-area:search}header .search input[type=search]{color:var(--gg-dark-gray);background:rgba(255,255,255,.8);border:1px solid #ccc;padding:10px 15px;font-family:inherit;max-width:148px;height:37px;font-size:14px;-webkit-appearance:unset;appearance:unset}header #version-selector{list-style:none;grid-area:ver;line-height:28px;border-radius:0;margin-right:10px;border:none;color:var(--gg-dark-gray);padding:5px 16px 5px 10px;white-space:nowrap;font-size:14px;width:auto;text-align:right;box-sizing:border-box;text-align-last:right;-moz-appearance:none;-webkit-appearance:none;appearance:none;direction:rtl}header #version-selector option{direction:ltr}header>nav{grid-area:nav;font-size:18px;display:flex;flex-direction:row;margin:0 20px}header #lang-selector{grid-area:lang}header .search-close{margin-right:10px}@media (max-width:600px){header .search{margin-right:5px}header .search input[type=search]{max-width:110px}}header:not(.narrow-header) .search-close,header:not(.narrow-header) .top-nav-toggle{display:none}@media (max-width:670px){header>.container{grid-template-columns:auto 1fr auto;grid-template-areas:'left-toggle home search' 'ver api lang'}header #lang-selector li{justify-content:flex-end}}pre,pre.rouge{padding:8px 15px;background:var(--block-code-background)!important;border-radius:5px;border:1px solid #e5e5e5;overflow-x:auto;min-height:36px;line-height:18px;color:#545454}code{color:#545454}pre.rouge code{background:0 0!important}:not(pre)>code{background:var(--inline-code-background);padding:.1em .5em;background-clip:padding-box;border-radius:3px;color:#545454;font-size:90%}.listingblock .content{position:relative}.highlight{color:#586e75}.highlight .c1{color:#657b83}.highlight .nt{color:#b58900}.highlight .o{color:#93a1a1}.highlight .k{color:#6c71c4}.highlight .kt{color:#cb4b16}.highlight .s,.highlight .s1{color:#859900}.highlight .nc{color:#b58900}.highlight .na{color:#268bd2}body{font-family:'Open Sans',sans-serif}h1,h2{color:#000;font-weight:400;font-family:'Open Sans'}h1{font-size:36px;line-height:40px}a{text-decoration:none;color:var(--link-color)}section{color:#545454}.admonitionblock .icon .title{display:none}body{--header-height:64px;--promotion-bar-height:35px;--footer-height:104px;--footer-gap:60px;padding:0;margin:0;display:flex;flex-direction:column;min-height:100vh;background-color:var(--body-background);font-family:'Open Sans',sans-serif}body>section{flex:1}header{position:-webkit-sticky;position:sticky;top:0;z-index:2}*{box-sizing:border-box}@media (max-width:670px){body{--header-height:97px}}.left-nav{padding:10px 20px;width:289px;overflow-y:auto;top:calc(var(--header-height) + var(--promotion-bar-height));height:calc(100vh - var(--header-height) - var(--promotion-bar-height));font-family:'Open Sans';padding-top:var(--padding-top);background-color:var(--body-background)}.left-nav li{list-style:none}.left-nav a,.left-nav button{text-decoration:none;color:#757575;font-size:16px;display:inline-flex;width:100%;margin:2px 0;padding:.25em .375em;background:0 0;border:none;font:inherit;text-align:left}.left-nav a.active{color:var(--link-color)}.left-nav .nav-group{margin-left:6px;font-size:14px}.left-nav nav{border-left:2px solid #ddd;margin-bottom:5px}.left-nav nav.collapsed{display:none}.left-nav nav>li>a,.left-nav nav>li>button{padding-left:20px;text-align:left}.left-nav nav>li>a.active{border-left:var(--orange-line-thickness) solid var(--active-color);padding-left:calc(20px - var(--orange-line-thickness))}.left-nav nav.sub_pages{border:none}.left-nav nav.sub_pages a{padding-left:32px}.left-nav .state-indicator{margin-left:auto;margin-top:5px;width:6.2px;height:10px;flex:0 0 auto;filter:invert(49%) sepia(4%) saturate(5%) hue-rotate(23deg) brightness(92%) contrast(90%)}.left-nav button.expanded .state-indicator{transform:rotate(90deg)}.right-nav{width:289px;padding:12px 26px;overflow-y:auto;height:calc(100vh - var(--header-height));top:0;position:-webkit-sticky;position:sticky;display:flex;flex-direction:column;font-family:'Open sans';padding-top:var(--padding-top);background-color:#fff}.right-nav ul{list-style:none;padding:0;margin:0}.right-nav li{padding:0}.right-nav a{--border-width:0px;font-size:14px;color:#757575;padding-left:calc(15px * var(--nesting-level) + 8px - var(--border-width));margin:.3em 0;display:inline-block}.right-nav .sectlevel1{border-left:2px solid #ddd}.right-nav .sectlevel1{--nesting-level:0}.right-nav .sectlevel2{--nesting-level:1}.right-nav .sectlevel3{--nesting-level:2}@media (max-width:1200px){.right-nav{width:230px}}.right-nav footer{font-size:12px;padding:calc(var(--footer-gap) * .3) 0 5px;text-align:left;margin:auto 0 0}section.page-docs{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;grid-template-areas:'left-nav content right-nav';line-height:20px;max-width:1440px;margin:auto;width:100%}section.page-docs>article{border-left:1px solid #eee;background-color:#fff;padding:0 50px 30px;grid-area:content;overflow:hidden;font-family:sans-serif;font-size:16px;color:#545454;line-height:1.6em}section.page-docs>article h1,section.page-docs>article h2{font-family:'Open Sans'}@media (max-width:800px){section.page-docs>article{padding-left:15px;padding-right:15px}}section.page-docs .edit-link{position:relative;top:10px;right:10px;float:right;padding-top:calc(var(--header-height) + var(--padding-top));margin-top:calc((-1 * var(--header-height)))}section.page-docs h1,section.page-docs h2{margin-bottom:0}section.page-docs h2[id]{margin-top:var(--margin-top);margin-bottom:calc(var(--margin-top) * .5);z-index:-1}section.page-docs .title{font-style:italic}section.page-docs h2[id]{--margin-top:1.2em}.left-nav{bottom:0;position:-webkit-sticky;position:sticky}.left-nav{grid-area:left-nav}.right-nav{grid-area:right-nav}.left-nav__overlay{display:none;background:rgba(0,0,0,.5);z-index:1;position:fixed;top:var(--header-height);bottom:0;left:0;right:0}@media (max-width:990px){body:not(.hide-left-nav) .left-nav__overlay{display:block}nav.left-nav{background:#fafafa;grid-area:left-nav;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);min-height:calc(100vh - var(--header-height));max-height:calc(100vh - var(--header-height));position:fixed;bottom:0;top:var(--header-height);z-index:2}section.page-docs>article{grid-column-start:left-nav;grid-column-end:content;grid-row:content}}@media (max-width:800px){nav.right-nav{display:none}}:target:before{content:"";display:block;margin-top:calc(var(--header-height) * -1);height:var(--header-height);width:1px}@media (min-width:600px) and (max-width:900px){:target:before{content:"";display:block;width:1px;margin-top:-150px;height:150px}}
+#header #promotion-bar { background-color: #333333; padding: 8px; }
+#header #promotion-bar p { font-size: 14px; line-height: 1.4em; font-weight: 600; padding: 0; margin: 0; color: #f0f0f0; text-align: center;}
+#header #promotion-bar p a { color: #FCB903; } </style>
+
+    
+
+    
+    <meta name="ignite-version" content="3.0.0-alpha" />
+    <title>Binary Client Protocol | Ignite Documentation</title>
+    
+    <link rel="canonical" href="/docs/3.0.0-alpha/binary-protocol" />
+    <META NAME="ROBOTS" CONTENT="NOINDEX" />
+    
+	
+	  <link rel="shortcut icon" href="/favicon.ico">
+    <meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
+
+    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" />
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" media="print" onload="this.media='all'">
+    <noscript>
+      <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
+    </noscript>
+
+	<script>
+    // AnchorJS - v4.2.0 - 2019-01-01
+    // https://github.com/bryanbraun/anchorjs
+    // Copyright (c) 2019 Bryan Braun; Licensed MIT
+    !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=p(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o<e.length;o++)if(this.hasAnchorJSLink(e[o]))d.push(o);else{if(e[o].hasAttribute("id"))n=e[o].getAttribute("id");else if(e[o].hasAttribute("data-anchor-id"))n=e[o].getAttribute("data-anchor-id");else{for(c=r=this.urlify(e[o].textContent),a=0;void 0!==s&&(c=r+"-"+a),a+=1,-1!==(s=i.indexOf(c)););s=void 0,i.push(c),e[o].setAttribute("id",c),n=c}n.replace(/-/g," "),(h=document.createElement("a")).className="anchorjs-link "+this.options.class,h.setAttribute("aria-label",this.options.ariaLabel),h.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(h.title=this.options.titleText),u=document.querySelector("base")?window.location.pathname+window.location.search:"",u=this.options.base||u,h.href=u+"#"+n,"always"===l&&(h.style.opacity="1"),""===this.options.icon&&(h.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(h.style.lineHeight="inherit")),"left"===this.options.placement?(h.style.position="absolute",h.style.marginLeft="-1em",h.style.paddingRight="0.5em",e[o].insertBefore(h,e[o].firstChild)):(h.style.paddingLeft="0.375em",e[o].appendChild(h))}for(o=0;o<d.length;o++)e.splice(d[o]-o,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,i=p(A),n=0;n<i.length;n++)(t=i[n].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[n]))&&this.elements.splice(e,1),i[n].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){return this.options.truncate||f(this.options),A.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
+    </script>
+  
+</head>
+<body>
+    <header>
+    <!--#include virtual="/includes/promotion_banner.html" -->
+    <div class="container">
+        <button type='button' class='menu' title='Docs menu'>
+        <img src="/assets/images/menu-icon.svg" width="18" height="12" alt="menu icon" />
+        </button>
+        <div class='home'>
+            <a href="/" class='home' title='Apache Ignite home'>
+                <img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" height="36" >
+            </a>
+        </div>
+        
+        
+        <select id="version-selector">
+            <option value="3.0.0-alpha">3.0.0-alpha</option>
+        </select>
+
+        <nav id="api-docs"><ul>
+            <li><a href="#">APIs</a>
+                <nav class='dropdown'>
+                    <ul>
+                    <li class="dropdown-item"><a href="/releases/latest/javadoc/index.html">Java</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/dotnetdoc/api/">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/cppdoc/index.html">C++</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/scaladoc/scalar/index.html#org.apache.ignite.scalar.scalar$">Scala</a></li>
+                    </ul>
+                </nav>
+            </li>
+
+            <li><a href="#">Examples</a>
+                <nav class="dropdown">
+                    <ul>
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/examples" target="_blank" rel="noopener" title="Apache Ignite Java examples">Java</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/dotnet/examples" target="_blank" rel="noopener" title="Apache Ignite C#/.NET examples">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/cpp/examples" target="_blank" rel="noopener" title="Apache Ignite C++ examples">C++</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/python/examples" target="_blank" rel="noopener" title="Apache Ignite Python examples">Python</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/nodejs/examples" target="_blank" rel="noopener" title="Apache Ignite NodeJS examples">NodeJS</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/php/examples" target="_blank" rel="noopener" title="Apache Ignite PHP examples">PHP</a></li>
+                </ul>
+                </nav>
+                </li></ul>
+        </nav>
+        
+        <form class='search'>
+            <button class="search-close" type='button'><img src='/assets/images/cancel.svg' alt="close" width="10" height="10" /></button>
+            <input type="search" placeholder="Search…" id="search-input">
+        </form>
+        
+
+        <nav id="lang-selector"><ul>
+            <li><a href="#"><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon"  width="25" height="25" /><span>▼</span></a>
+                <nav class="dropdown">
+                    <li class="dropdown-item"><a href="/docs/latest/" ><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon" width="25" height="25" /><span>English</span></a></li>
+                    <li class="dropdown-item"><a href="https://www.ignite-service.cn/doc/java/" target="_blank" rel="noopener"><img src="/assets/images/icon_lang_cn_75x75.jpg"  width="25" height="25" alt="Chinese language icon" /><span>Chinese</span></a></li>
+                </nav>
+            </li></ul>
+        </nav>
+
+        <button type='button' class='top-nav-toggle'>⋮</button>
+
+        
+        
+    </div>
+</header>
+
+
+    	 <link rel="stylesheet" href="/assets/css/docs.css">
+<section class='page-docs'>
+    
+
+
+
+
+
+<nav class='left-nav' data-swiftype-index='false'>
+    
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/index" class='' >Documentation Overview</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/quick-start/getting-started-guide" class='' >Getting Started Guide</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/ignite-cli-tool" class='' >Ignite CLI Tool</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='active' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
+</nav>
+<div class="left-nav__overlay"></div>
+
+
+    <article data-swiftype-index='true'>
+      <a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/binary-protocol.adoc" target="_blank">Edit</a>
+        
+            <h1>Binary Client Protocol</h1>
+        
+        <div class="paragraph">
+<p>Ignite binary client protocol enables user applications to communicate with an existing Ignite cluster without starting a full-fledged Ignite node.
+An application can connect to the cluster through a raw TCP socket. Once the connection is established, the application can communicate with the Ignite cluster and perform cache operations using the established format.</p>
+</div>
+<div class="paragraph">
+<p>This Alpha release implementation of binary client protocol comes with the following improvements:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Implemented <a href="https://cwiki.apache.org/confluence/display/IGNITE/IEP-75+Thin+Client+MsgPack+Serialization" target="_blank" rel="noopener">MsgPack</a> as an underlying binary format;</p>
+</li>
+<li>
+<p>Added new set of data types;</p>
+</li>
+<li>
+<p>Added more flexible and extensible handshake with the magic header string.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>For more information on binary client protocol, please click <a href="https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0" target="_blank" rel="noopener">here</a>.</p>
+</div>
+        <div class="copyright">
+ © 2021 The Apache Software Foundation.<br/>
+Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation. 
+
+</div>
+
+    </article>
+    <nav class="right-nav" data-swiftype-index='false'>
+    <div class="toc-wrapper">
+    
+    </div>
+          
+      
+      <nav class="promo-nav">
+            <!--#include virtual="/includes/docs_rightnav_promotion.html" -->
+            <a href="#" data-trigger-bugyard-feedback="true" id="doc-feedback-btn">Docs Feedback</a>
+        </nav>
+        
+</nav>
+    
+</section>
+<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
+
+    <script>
+    // inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late 
+    anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
+    anchors.options = {
+        placement: 'right',
+        visible: 'always'
+    };
+    </script>
+    
+    <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
+    <script>
+      docsearch({
+        // Your apiKey and indexName will be given to you once
+        // we create your config
+        apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8', 
+        indexName: 'apache_ignite',
+        // Replace inputSelector with a CSS selector
+        // matching your search input
+        inputSelector: '#search-input',
+        // algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
+
+        // Set debug to true to inspect the dropdown
+        debug: false,
+      });
+    </script>
+<script type='module' src='/assets/js/index.js?1634839435' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839435' async crossorigin></script>
+
+<link rel="stylesheet" href="/assets/css/styles.css?1634839435" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839435"></noscript>
+
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
+
+  
+</body>
+
+</html>
diff --git a/docs/3.0.0-alpha/ignite-cli-tool.html b/docs/3.0.0-alpha/ignite-cli-tool.html
index 7afdeee..bea4cdc 100644
--- a/docs/3.0.0-alpha/ignite-cli-tool.html
+++ b/docs/3.0.0-alpha/ignite-cli-tool.html
@@ -192,6 +192,41 @@
             
         </li>
     
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
 </nav>
 <div class="left-nav__overlay"></div>
 
@@ -224,6 +259,18 @@
 </thead>
 <tbody>
 <tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>config</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Inspects and updates Ignite cluster configuration.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>config get</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Gets current Ignite cluster configuration values.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>config set</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Updates Ignite cluster configuration values.</p></td>
+</tr>
+<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><code>init</code></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Installs Ignite core modules locally.</p></td>
 </tr>
@@ -265,18 +312,6 @@
 </tr>
 </tbody>
 </table>
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">
-While <code>config</code>, <code>config get</code>, <code>config set</code> commands are listed in command output, they do not work in alpha 2.
-</td>
-</tr>
-</table>
-</div>
 </div>
 </div>
         <div class="copyright">
@@ -329,11 +364,11 @@
         debug: false,
       });
     </script>
-<script type='module' src='/assets/js/index.js?1628277221' async crossorigin></script>
-<script type='module' src='/assets/js/versioning.js?1628277221' async crossorigin></script>
+<script type='module' src='/assets/js/index.js?1634839435' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839435' async crossorigin></script>
 
-<link rel="stylesheet" href="/assets/css/styles.css?1628277221" media="print" onload="this.media='all'">
-<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1628277221"></noscript>
+<link rel="stylesheet" href="/assets/css/styles.css?1634839435" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839435"></noscript>
 
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
 <noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
diff --git a/docs/3.0.0-alpha/index.html b/docs/3.0.0-alpha/index.html
index 3ca7deb..aab3e6c 100644
--- a/docs/3.0.0-alpha/index.html
+++ b/docs/3.0.0-alpha/index.html
@@ -192,6 +192,41 @@
             
         </li>
     
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
 </nav>
 <div class="left-nav__overlay"></div>
 
@@ -230,8 +265,7 @@
 <div class="ulist">
 <ul>
 <li>
-<p>Schema-first approach: This feature introduces one-to-one mapping between data schemas and caches/tables,
-which means that the schema is defined for a cache/table before its creation.</p>
+<p>Schema-first approach: This feature introduces one-to-one mapping between data schemas and caches/tables, which means that the schema is defined for a cache/table before its creation.</p>
 </li>
 <li>
 <p>Unified Configuration: This feature is presented by a set of the following improvements:</p>
@@ -263,37 +297,29 @@
 </div>
 </div>
 <div class="sect1">
-<h2 id="new-in-alpha-2">New in Alpha 2</h2>
+<h2 id="new-in-alpha-3">New in Alpha 3</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>Apache Ignite Alpha 2 comes with the following new features:</p>
+<p>Apache Ignite Alpha 3 comes with the following new features:</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>Added replication infrastructure based on Raft.</p>
+<p>New SQL engine based on Apache Calcite with implemented JDBC driver;</p>
 </li>
 <li>
-<p>New in-memory atomic storage with the basic insert-read functionality.</p>
+<p>Persistence implementation based on RocksDB;</p>
 </li>
 <li>
-<p>New schema management engine and API.</p>
+<p>New binary client protocol with an implementation in Java;</p>
+</li>
+<li>
+<p>Data rebalancing.</p>
 </li>
 </ul>
 </div>
 </div>
 </div>
-<div class="sect1">
-<h2 id="known-issues">Known Issues</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>Due to changes between alpha 1 and alpha 2, Ignite cluster configuration commands no longer work. This will be fixed in alpha 3.</p>
-</div>
-<div class="paragraph">
-<p>Affected commands: <code>config</code>, <code>config get</code>, <code>config set</code>.</p>
-</div>
-</div>
-</div>
         <div class="copyright">
  © 2021 The Apache Software Foundation.<br/>
 Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation. 
@@ -304,8 +330,7 @@
     <nav class="right-nav" data-swiftype-index='false'>
     <div class="toc-wrapper">
     <ul class="sectlevel1">
-<li><a href="#new-in-alpha-2">New in Alpha 2</a></li>
-<li><a href="#known-issues">Known Issues</a></li>
+<li><a href="#new-in-alpha-3">New in Alpha 3</a></li>
 </ul>
     </div>
           
@@ -345,11 +370,11 @@
         debug: false,
       });
     </script>
-<script type='module' src='/assets/js/index.js?1628277221' async crossorigin></script>
-<script type='module' src='/assets/js/versioning.js?1628277221' async crossorigin></script>
+<script type='module' src='/assets/js/index.js?1634839435' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839435' async crossorigin></script>
 
-<link rel="stylesheet" href="/assets/css/styles.css?1628277221" media="print" onload="this.media='all'">
-<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1628277221"></noscript>
+<link rel="stylesheet" href="/assets/css/styles.css?1634839435" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839435"></noscript>
 
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
 <noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
diff --git a/docs/3.0.0-alpha/installation/installing-using-exe.html b/docs/3.0.0-alpha/installation/installing-using-exe.html
index 0c27ccd..315c928 100644
--- a/docs/3.0.0-alpha/installation/installing-using-exe.html
+++ b/docs/3.0.0-alpha/installation/installing-using-exe.html
@@ -192,6 +192,41 @@
             
         </li>
     
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
 </nav>
 <div class="left-nav__overlay"></div>
 
@@ -229,6 +264,14 @@
 <h2 id="installing-using-distributive">Installing Using Distributive</h2>
 <div class="sectionbody">
 <div class="paragraph">
+<p>WARNING:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>If you have installed one of the Ignite 3 Alpha releases before, please remove the `~/.ignitecfg` file before proceeding. This is a temporary step, the procedure will be improved in the future releases.</pre>
+</div>
+</div>
+<div class="paragraph">
 <p>To install Apache Ignite, perform the following steps:</p>
 </div>
 <div class="olist arabic">
@@ -313,11 +356,11 @@
         debug: false,
       });
     </script>
-<script type='module' src='/assets/js/index.js?1628277221' async crossorigin></script>
-<script type='module' src='/assets/js/versioning.js?1628277221' async crossorigin></script>
+<script type='module' src='/assets/js/index.js?1634839436' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839436' async crossorigin></script>
 
-<link rel="stylesheet" href="/assets/css/styles.css?1628277221" media="print" onload="this.media='all'">
-<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1628277221"></noscript>
+<link rel="stylesheet" href="/assets/css/styles.css?1634839436" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839436"></noscript>
 
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
 <noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
diff --git a/docs/3.0.0-alpha/persistence.html b/docs/3.0.0-alpha/persistence.html
new file mode 100644
index 0000000..95d68d4
--- /dev/null
+++ b/docs/3.0.0-alpha/persistence.html
@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+
+      
+      
+<html lang="en">
+<head>
+   <meta charset="UTF-8">
+    <!-- Global site tag (gtag.js) - Google Analytics -->
+    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
+    <script>
+    window.dataLayer = window.dataLayer || [];
+    function gtag(){dataLayer.push(arguments);}
+    gtag('js', new Date());
+    gtag('config', 'UA-61232409-1');
+    </script>
+
+    <!-- Yandex.Metrika counter -->
+    <script type="text/javascript" >
+      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
+      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
+      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
+
+      ym(72949126, "init", {
+          clickmap:true,
+          trackLinks:true,
+          accurateTrackBounce:true,
+          webvisor:true
+      });
+    </script>
+    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
+    <!-- /Yandex.Metrika counter -->
+
+    <!-- LuckyOrange code -->
+    <script type='text/javascript'>
+      window.__lo_site_id = 284467;
+    
+      (function() {
+        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
+        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
+        })();
+      </script>
+      <!-- /LuckyOrange code -->
+
+<!-- Bugyard widget embed -->
+<script type="text/javascript">!function(){if("function"!=typeof window.bugyard){var a=function(){a.c(arguments)};a.q=[],a.c=function(b){a.q.push(b)},window.bugyard=a;var b=document.createElement("script");b.setAttribute("data-bugyard","610961912c35ff001493163a"),b.setAttribute("async","async"),b.setAttribute("defer","defer"),b.setAttribute("src","https://widget.bugyard.io/bugyard.min.js"),document.getElementsByTagName("head")[0].appendChild(b)}}(); window.bugyard("hideButton"); </script>
+
+
+
+
+
+    <link rel="preload" href='/assets/js/code-tabs.js?1' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/page-nav.js' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/docs-menu.js?20201005' as="script" crossorigin>
+
+    <style>:root{--gg-red:#ec1c24;--gg-orange:#ec1c24;--gg-orange-dark:#bc440b;--gg-orange-filter:invert(47%) sepia(61%) saturate(1950%) hue-rotate(345deg) brightness(100%) contrast(95%);--gg-dark-gray:#333333;--orange-line-thickness:3px;--block-code-background:rgba(241, 241, 241, 20%);--inline-code-background:rgba(241, 241, 241, 90%);--padding-top:25px;--link-color:#ec1c24;--body-background:#fcfcfc}header{min-height:var(--header-height);background:#fff;box-shadow:0 4px 10px 0 #eee,0 0 4px 0 #d5d5d5;z-index:1}header>.container{display:grid;grid-template-columns:auto auto 1fr auto auto auto;grid-template-areas:'left-toggle home nav ver api search lang';grid-template-rows:40px;flex-direction:row;align-items:center;justify-content:flex-start;padding:12px 20px;max-width:1400px;margin:0 auto}header nav>ul{padding:0;margin:0;list-style:none;display:inherit}header .dropdown{display:none;position:fixed;top:calc(var(--header-height) - 12px);width:auto;background:#fff;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);border-radius:4px;padding-top:10px;padding-bottom:12px;z-index:2}header .dropdown li{display:flex}header .dropdown a{color:grey!important;font-size:16px;padding-top:5px;padding-bottom:4px}header .menu{border:none;background:0 0;width:40px;height:40px;margin-right:12px;grid-area:left-toggle}header .menu img{width:18px;height:12px}header .search-close,header .top-nav-toggle{background:0 0;border:none;padding:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--gg-dark-gray);font-size:26px}header .search-toggle{grid-area:search}header .top-nav-toggle{grid-area:top-toggle}header .home{grid-area:home;margin-right:auto}header .home img{height:36px}header #api-docs{grid-area:api;margin:0;display:flex}header #api-docs .dropdown{padding:.5em 0}header #api-docs a{padding:9px 14px;color:var(--gg-dark-gray)!important;text-decoration:none;white-space:nowrap}header #api-docs .dropdown-item a{font-weight:400;display:block;width:100%;min-width:150px}header #lang-selector li{list-style:none;display:flex;padding:9px 14px}header #lang-selector li a{display:flex;color:#000;align-items:center}header #lang-selector li a span{font-size:10px;margin-left:5px}header #lang-selector li a img{width:25px}header #lang-selector li .dropdown{margin-left:-70px}header #lang-selector li .dropdown .dropdown-item{padding:0 1em;margin-bottom:8px}header #lang-selector li .dropdown .dropdown-item a span{font-size:14px}header .search{margin-left:auto;margin-right:20px;grid-area:search}header .search input[type=search]{color:var(--gg-dark-gray);background:rgba(255,255,255,.8);border:1px solid #ccc;padding:10px 15px;font-family:inherit;max-width:148px;height:37px;font-size:14px;-webkit-appearance:unset;appearance:unset}header #version-selector{list-style:none;grid-area:ver;line-height:28px;border-radius:0;margin-right:10px;border:none;color:var(--gg-dark-gray);padding:5px 16px 5px 10px;white-space:nowrap;font-size:14px;width:auto;text-align:right;box-sizing:border-box;text-align-last:right;-moz-appearance:none;-webkit-appearance:none;appearance:none;direction:rtl}header #version-selector option{direction:ltr}header>nav{grid-area:nav;font-size:18px;display:flex;flex-direction:row;margin:0 20px}header #lang-selector{grid-area:lang}header .search-close{margin-right:10px}@media (max-width:600px){header .search{margin-right:5px}header .search input[type=search]{max-width:110px}}header:not(.narrow-header) .search-close,header:not(.narrow-header) .top-nav-toggle{display:none}@media (max-width:670px){header>.container{grid-template-columns:auto 1fr auto;grid-template-areas:'left-toggle home search' 'ver api lang'}header #lang-selector li{justify-content:flex-end}}pre,pre.rouge{padding:8px 15px;background:var(--block-code-background)!important;border-radius:5px;border:1px solid #e5e5e5;overflow-x:auto;min-height:36px;line-height:18px;color:#545454}code{color:#545454}pre.rouge code{background:0 0!important}:not(pre)>code{background:var(--inline-code-background);padding:.1em .5em;background-clip:padding-box;border-radius:3px;color:#545454;font-size:90%}.listingblock .content{position:relative}.highlight{color:#586e75}.highlight .c1{color:#657b83}.highlight .nt{color:#b58900}.highlight .o{color:#93a1a1}.highlight .k{color:#6c71c4}.highlight .kt{color:#cb4b16}.highlight .s,.highlight .s1{color:#859900}.highlight .nc{color:#b58900}.highlight .na{color:#268bd2}body{font-family:'Open Sans',sans-serif}h1,h2{color:#000;font-weight:400;font-family:'Open Sans'}h1{font-size:36px;line-height:40px}a{text-decoration:none;color:var(--link-color)}section{color:#545454}.admonitionblock .icon .title{display:none}body{--header-height:64px;--promotion-bar-height:35px;--footer-height:104px;--footer-gap:60px;padding:0;margin:0;display:flex;flex-direction:column;min-height:100vh;background-color:var(--body-background);font-family:'Open Sans',sans-serif}body>section{flex:1}header{position:-webkit-sticky;position:sticky;top:0;z-index:2}*{box-sizing:border-box}@media (max-width:670px){body{--header-height:97px}}.left-nav{padding:10px 20px;width:289px;overflow-y:auto;top:calc(var(--header-height) + var(--promotion-bar-height));height:calc(100vh - var(--header-height) - var(--promotion-bar-height));font-family:'Open Sans';padding-top:var(--padding-top);background-color:var(--body-background)}.left-nav li{list-style:none}.left-nav a,.left-nav button{text-decoration:none;color:#757575;font-size:16px;display:inline-flex;width:100%;margin:2px 0;padding:.25em .375em;background:0 0;border:none;font:inherit;text-align:left}.left-nav a.active{color:var(--link-color)}.left-nav .nav-group{margin-left:6px;font-size:14px}.left-nav nav{border-left:2px solid #ddd;margin-bottom:5px}.left-nav nav.collapsed{display:none}.left-nav nav>li>a,.left-nav nav>li>button{padding-left:20px;text-align:left}.left-nav nav>li>a.active{border-left:var(--orange-line-thickness) solid var(--active-color);padding-left:calc(20px - var(--orange-line-thickness))}.left-nav nav.sub_pages{border:none}.left-nav nav.sub_pages a{padding-left:32px}.left-nav .state-indicator{margin-left:auto;margin-top:5px;width:6.2px;height:10px;flex:0 0 auto;filter:invert(49%) sepia(4%) saturate(5%) hue-rotate(23deg) brightness(92%) contrast(90%)}.left-nav button.expanded .state-indicator{transform:rotate(90deg)}.right-nav{width:289px;padding:12px 26px;overflow-y:auto;height:calc(100vh - var(--header-height));top:0;position:-webkit-sticky;position:sticky;display:flex;flex-direction:column;font-family:'Open sans';padding-top:var(--padding-top);background-color:#fff}.right-nav ul{list-style:none;padding:0;margin:0}.right-nav li{padding:0}.right-nav a{--border-width:0px;font-size:14px;color:#757575;padding-left:calc(15px * var(--nesting-level) + 8px - var(--border-width));margin:.3em 0;display:inline-block}.right-nav .sectlevel1{border-left:2px solid #ddd}.right-nav .sectlevel1{--nesting-level:0}.right-nav .sectlevel2{--nesting-level:1}.right-nav .sectlevel3{--nesting-level:2}@media (max-width:1200px){.right-nav{width:230px}}.right-nav footer{font-size:12px;padding:calc(var(--footer-gap) * .3) 0 5px;text-align:left;margin:auto 0 0}section.page-docs{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;grid-template-areas:'left-nav content right-nav';line-height:20px;max-width:1440px;margin:auto;width:100%}section.page-docs>article{border-left:1px solid #eee;background-color:#fff;padding:0 50px 30px;grid-area:content;overflow:hidden;font-family:sans-serif;font-size:16px;color:#545454;line-height:1.6em}section.page-docs>article h1,section.page-docs>article h2{font-family:'Open Sans'}@media (max-width:800px){section.page-docs>article{padding-left:15px;padding-right:15px}}section.page-docs .edit-link{position:relative;top:10px;right:10px;float:right;padding-top:calc(var(--header-height) + var(--padding-top));margin-top:calc((-1 * var(--header-height)))}section.page-docs h1,section.page-docs h2{margin-bottom:0}section.page-docs h2[id]{margin-top:var(--margin-top);margin-bottom:calc(var(--margin-top) * .5);z-index:-1}section.page-docs .title{font-style:italic}section.page-docs h2[id]{--margin-top:1.2em}.left-nav{bottom:0;position:-webkit-sticky;position:sticky}.left-nav{grid-area:left-nav}.right-nav{grid-area:right-nav}.left-nav__overlay{display:none;background:rgba(0,0,0,.5);z-index:1;position:fixed;top:var(--header-height);bottom:0;left:0;right:0}@media (max-width:990px){body:not(.hide-left-nav) .left-nav__overlay{display:block}nav.left-nav{background:#fafafa;grid-area:left-nav;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);min-height:calc(100vh - var(--header-height));max-height:calc(100vh - var(--header-height));position:fixed;bottom:0;top:var(--header-height);z-index:2}section.page-docs>article{grid-column-start:left-nav;grid-column-end:content;grid-row:content}}@media (max-width:800px){nav.right-nav{display:none}}:target:before{content:"";display:block;margin-top:calc(var(--header-height) * -1);height:var(--header-height);width:1px}@media (min-width:600px) and (max-width:900px){:target:before{content:"";display:block;width:1px;margin-top:-150px;height:150px}}
+#header #promotion-bar { background-color: #333333; padding: 8px; }
+#header #promotion-bar p { font-size: 14px; line-height: 1.4em; font-weight: 600; padding: 0; margin: 0; color: #f0f0f0; text-align: center;}
+#header #promotion-bar p a { color: #FCB903; } </style>
+
+    
+
+    
+    <meta name="ignite-version" content="3.0.0-alpha" />
+    <title>Ignite Persistence | Ignite Documentation</title>
+    
+    <link rel="canonical" href="/docs/3.0.0-alpha/persistence" />
+    <META NAME="ROBOTS" CONTENT="NOINDEX" />
+    
+	
+	  <link rel="shortcut icon" href="/favicon.ico">
+    <meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
+
+    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" />
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" media="print" onload="this.media='all'">
+    <noscript>
+      <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
+    </noscript>
+
+	<script>
+    // AnchorJS - v4.2.0 - 2019-01-01
+    // https://github.com/bryanbraun/anchorjs
+    // Copyright (c) 2019 Bryan Braun; Licensed MIT
+    !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=p(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o<e.length;o++)if(this.hasAnchorJSLink(e[o]))d.push(o);else{if(e[o].hasAttribute("id"))n=e[o].getAttribute("id");else if(e[o].hasAttribute("data-anchor-id"))n=e[o].getAttribute("data-anchor-id");else{for(c=r=this.urlify(e[o].textContent),a=0;void 0!==s&&(c=r+"-"+a),a+=1,-1!==(s=i.indexOf(c)););s=void 0,i.push(c),e[o].setAttribute("id",c),n=c}n.replace(/-/g," "),(h=document.createElement("a")).className="anchorjs-link "+this.options.class,h.setAttribute("aria-label",this.options.ariaLabel),h.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(h.title=this.options.titleText),u=document.querySelector("base")?window.location.pathname+window.location.search:"",u=this.options.base||u,h.href=u+"#"+n,"always"===l&&(h.style.opacity="1"),""===this.options.icon&&(h.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(h.style.lineHeight="inherit")),"left"===this.options.placement?(h.style.position="absolute",h.style.marginLeft="-1em",h.style.paddingRight="0.5em",e[o].insertBefore(h,e[o].firstChild)):(h.style.paddingLeft="0.375em",e[o].appendChild(h))}for(o=0;o<d.length;o++)e.splice(d[o]-o,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,i=p(A),n=0;n<i.length;n++)(t=i[n].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[n]))&&this.elements.splice(e,1),i[n].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){return this.options.truncate||f(this.options),A.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
+    </script>
+  
+</head>
+<body>
+    <header>
+    <!--#include virtual="/includes/promotion_banner.html" -->
+    <div class="container">
+        <button type='button' class='menu' title='Docs menu'>
+        <img src="/assets/images/menu-icon.svg" width="18" height="12" alt="menu icon" />
+        </button>
+        <div class='home'>
+            <a href="/" class='home' title='Apache Ignite home'>
+                <img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" height="36" >
+            </a>
+        </div>
+        
+        
+        <select id="version-selector">
+            <option value="3.0.0-alpha">3.0.0-alpha</option>
+        </select>
+
+        <nav id="api-docs"><ul>
+            <li><a href="#">APIs</a>
+                <nav class='dropdown'>
+                    <ul>
+                    <li class="dropdown-item"><a href="/releases/latest/javadoc/index.html">Java</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/dotnetdoc/api/">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/cppdoc/index.html">C++</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/scaladoc/scalar/index.html#org.apache.ignite.scalar.scalar$">Scala</a></li>
+                    </ul>
+                </nav>
+            </li>
+
+            <li><a href="#">Examples</a>
+                <nav class="dropdown">
+                    <ul>
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/examples" target="_blank" rel="noopener" title="Apache Ignite Java examples">Java</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/dotnet/examples" target="_blank" rel="noopener" title="Apache Ignite C#/.NET examples">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/cpp/examples" target="_blank" rel="noopener" title="Apache Ignite C++ examples">C++</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/python/examples" target="_blank" rel="noopener" title="Apache Ignite Python examples">Python</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/nodejs/examples" target="_blank" rel="noopener" title="Apache Ignite NodeJS examples">NodeJS</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/php/examples" target="_blank" rel="noopener" title="Apache Ignite PHP examples">PHP</a></li>
+                </ul>
+                </nav>
+                </li></ul>
+        </nav>
+        
+        <form class='search'>
+            <button class="search-close" type='button'><img src='/assets/images/cancel.svg' alt="close" width="10" height="10" /></button>
+            <input type="search" placeholder="Search…" id="search-input">
+        </form>
+        
+
+        <nav id="lang-selector"><ul>
+            <li><a href="#"><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon"  width="25" height="25" /><span>▼</span></a>
+                <nav class="dropdown">
+                    <li class="dropdown-item"><a href="/docs/latest/" ><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon" width="25" height="25" /><span>English</span></a></li>
+                    <li class="dropdown-item"><a href="https://www.ignite-service.cn/doc/java/" target="_blank" rel="noopener"><img src="/assets/images/icon_lang_cn_75x75.jpg"  width="25" height="25" alt="Chinese language icon" /><span>Chinese</span></a></li>
+                </nav>
+            </li></ul>
+        </nav>
+
+        <button type='button' class='top-nav-toggle'>⋮</button>
+
+        
+        
+    </div>
+</header>
+
+
+    	 <link rel="stylesheet" href="/assets/css/docs.css">
+<section class='page-docs'>
+    
+
+
+
+
+
+<nav class='left-nav' data-swiftype-index='false'>
+    
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/index" class='' >Documentation Overview</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/quick-start/getting-started-guide" class='' >Getting Started Guide</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/ignite-cli-tool" class='' >Ignite CLI Tool</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='active' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
+</nav>
+<div class="left-nav__overlay"></div>
+
+
+    <article data-swiftype-index='true'>
+      <a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/persistence.adoc" target="_blank">Edit</a>
+        
+            <h1>Ignite Persistence</h1>
+        
+        <div class="paragraph">
+<p>Ignite Persistence, or Native Persistence, is a set of features designed to provide persistent storage.
+When it is enabled, Ignite always stores all the data on disk, and loads as much data as it can into RAM for processing.
+For example, if there are 100 entries and RAM has the capacity to store only 20, then all 100 are stored on disk and only 20 are cached in RAM for better performance.</p>
+</div>
+<div class="paragraph">
+<p>When Native persistence is turned off and no external storage is used, Ignite behaves as a pure in-memory store.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+In this Apache Ignite Alpha release, persistence is enabled by default.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The current Alpha release persistence functionality is based on <a href="https://github.com/facebook/rocksdb/wiki/RocksDB-Overview" target="_blank" rel="noopener">RocksDB</a>.</p>
+</div>
+        <div class="copyright">
+ © 2021 The Apache Software Foundation.<br/>
+Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation. 
+
+</div>
+
+    </article>
+    <nav class="right-nav" data-swiftype-index='false'>
+    <div class="toc-wrapper">
+    
+    </div>
+          
+      
+      <nav class="promo-nav">
+            <!--#include virtual="/includes/docs_rightnav_promotion.html" -->
+            <a href="#" data-trigger-bugyard-feedback="true" id="doc-feedback-btn">Docs Feedback</a>
+        </nav>
+        
+</nav>
+    
+</section>
+<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
+
+    <script>
+    // inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late 
+    anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
+    anchors.options = {
+        placement: 'right',
+        visible: 'always'
+    };
+    </script>
+    
+    <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
+    <script>
+      docsearch({
+        // Your apiKey and indexName will be given to you once
+        // we create your config
+        apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8', 
+        indexName: 'apache_ignite',
+        // Replace inputSelector with a CSS selector
+        // matching your search input
+        inputSelector: '#search-input',
+        // algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
+
+        // Set debug to true to inspect the dropdown
+        debug: false,
+      });
+    </script>
+<script type='module' src='/assets/js/index.js?1634839436' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839436' async crossorigin></script>
+
+<link rel="stylesheet" href="/assets/css/styles.css?1634839436" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839436"></noscript>
+
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
+
+  
+</body>
+
+</html>
diff --git a/docs/3.0.0-alpha/quick-start/getting-started-guide.html b/docs/3.0.0-alpha/quick-start/getting-started-guide.html
index d543505..be47f40 100644
--- a/docs/3.0.0-alpha/quick-start/getting-started-guide.html
+++ b/docs/3.0.0-alpha/quick-start/getting-started-guide.html
@@ -192,6 +192,41 @@
             
         </li>
     
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
 </nav>
 <div class="left-nav__overlay"></div>
 
@@ -204,7 +239,7 @@
         <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
-<p>This guide provides essential details on how to start working with Ignite 3.0 alpha 2 by using the Ignite CLI tool, including the following information:</p>
+<p>This guide provides essential details on how to start working with Ignite 3.0 alpha 3 by using the Ignite CLI tool, including the following information:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -228,7 +263,7 @@
 <h2 id="prerequisites">Prerequisites</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>Ignite 3.0 alpha 2 was officially tested on:</p>
+<p>Ignite 3.0 alpha 3 was officially tested on:</p>
 </div>
 <table class="tableblock frame-all grid-all stripes-even stretch">
 <colgroup>
@@ -260,15 +295,15 @@
 <p>Download the archive with the Ignite CLI tool:</p>
 <code-tabs><code-tab data-tab='Unix'><div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell">curl <span class="nt">-L</span> <span class="s2">"https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&amp;filename=ignite/3.0.0-alpha2/apache-ignite-3.0.0-alpha2.zip"</span> <span class="nt">-o</span> apache-ignite-3.0.0-alpha2.zip</code></pre>
+<pre class="rouge highlight"><code data-lang="shell">curl <span class="nt">-L</span> <span class="s2">"https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&amp;filename=ignite/3.0.0-alpha3/apache-ignite-3.0.0-alpha3.zip"</span> <span class="nt">-o</span> apache-ignite-3.0.0-alpha3.zip</code></pre>
 </div>
 </div></code-tab><code-tab data-tab='Windows (PowerShell)'><div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell">curl <span class="s2">"https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&amp;filename=ignite/3.0.0-alpha2/apache-ignite-3.0.0-alpha2.zip"</span> <span class="nt">-o</span> apache-ignite-3.0.0-alpha2.zip</code></pre>
+<pre class="rouge highlight"><code data-lang="shell">curl <span class="s2">"https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&amp;filename=ignite/3.0.0-alpha3/apache-ignite-3.0.0-alpha3.zip"</span> <span class="nt">-o</span> apache-ignite-3.0.0-alpha3.zip</code></pre>
 </div>
 </div></code-tab><code-tab data-tab='Windows (CMD)'><div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell">curl <span class="s2">"https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&amp;filename=ignite/3.0.0-alpha2/apache-ignite-3.0.0-alpha2.zip"</span> <span class="nt">-o</span> apache-ignite-3.0.0-alpha2.zip</code></pre>
+<pre class="rouge highlight"><code data-lang="shell">curl <span class="s2">"https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&amp;filename=ignite/3.0.0-alpha3/apache-ignite-3.0.0-alpha3.zip"</span> <span class="nt">-o</span> apache-ignite-3.0.0-alpha3.zip</code></pre>
 </div>
 </div></code-tab></code-tabs>
 </li>
@@ -276,15 +311,15 @@
 <p>Unpack the archive:</p>
 <code-tabs><code-tab data-tab='Unix'><div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell">unzip apache-ignite-3.0.0-alpha2.zip <span class="o">&amp;&amp;</span> <span class="nb">cd </span>apache-ignite-3.0.0-alpha2</code></pre>
+<pre class="rouge highlight"><code data-lang="shell">unzip apache-ignite-3.0.0-alpha3.zip <span class="o">&amp;&amp;</span> <span class="nb">cd </span>apache-ignite-3.0.0-alpha3</code></pre>
 </div>
 </div></code-tab><code-tab data-tab='Windows (PowerShell)'><div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell">Expand-Archive apache-ignite-3.0.0-alpha2.zip <span class="nt">-DestinationPath</span> <span class="nb">.</span> <span class="p">;</span> <span class="nb">cd </span>apache-ignite-3.0.0-alpha2</code></pre>
+<pre class="rouge highlight"><code data-lang="shell">Expand-Archive apache-ignite-3.0.0-alpha3.zip <span class="nt">-DestinationPath</span> <span class="nb">.</span> <span class="p">;</span> <span class="nb">cd </span>apache-ignite-3.0.0-alpha3</code></pre>
 </div>
 </div></code-tab><code-tab data-tab='Windows (CMD)'><div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell"><span class="nb">tar</span> <span class="nt">-xf</span> apache-ignite-3.0.0-alpha2.zip &amp; <span class="nb">cd </span>apache-ignite-3.0.0-alpha2</code></pre>
+<pre class="rouge highlight"><code data-lang="shell"><span class="nb">tar</span> <span class="nt">-xf</span> apache-ignite-3.0.0-alpha3.zip &amp; <span class="nb">cd </span>apache-ignite-3.0.0-alpha3</code></pre>
 </div>
 </div></code-tab></code-tabs>
 </li>
@@ -313,7 +348,7 @@
 <div class="title">Note</div>
 </td>
 <td class="content">
-On Windows, this latter change is not permanent and will only affect the current terminal session. If you want the
+On Windows, this latter change is not permanent and only affects the current terminal session. If you want the
 <code>ignite</code> command to be available after terminal or system restart, use the <code>System Properties</code> dialog to
 permanently update the <code>PATH</code> environment variable by adding a full path to the Ignite installation directory.
 </td>
@@ -375,10 +410,18 @@
 <div class="paragraph">
 <p>Ignite CLI allows to install Ignite modules and 3rd party Maven dependencies.</p>
 </div>
+<div class="paragraph">
+<p>WARNING:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>If you have installed one of the Ignite 3 Alpha releases before, please remove the `~/.ignitecfg` file before proceeding. This is a temporary step, the procedure will be improved in the future releases.</pre>
+</div>
+</div>
 <div class="olist arabic">
 <ol class="arabic">
 <li>
-<p>To start an Ignite 3.0 alpha 2 cluster, you need to install Ignite core artifacts first:</p>
+<p>To start an Ignite 3.0 alpha 3 cluster, you need to install Ignite core artifacts first:</p>
 <div class="listingblock">
 <div class="content">
 <pre class="rouge highlight"><code data-lang="shell">ignite init</code></pre>
@@ -414,10 +457,10 @@
 <div class="olist arabic">
 <ol class="arabic">
 <li>
-<p>Start a cluster node setting <code>node-1</code> as a node unique identifier:</p>
+<p>Start a cluster node setting <code>my-first-node</code> as a node unique identifier:</p>
 <div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell">ignite node start <span class="nt">--config</span><span class="o">=</span>examples/config/ignite-config.json node-1</code></pre>
+<pre class="rouge highlight"><code data-lang="shell">ignite node start <span class="nt">--config</span><span class="o">=</span>examples/config/ignite-config.json my-first-node</code></pre>
 </div>
 </div>
 </li>
@@ -444,7 +487,7 @@
 <h2 id="built-in-examples">Built-in Examples</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>Ignite 3.0 alpha 2 comes with examples that are configured as a separate Maven project located in the <code>examples</code> folder.</p>
+<p>Ignite 3.0 alpha 3 comes with examples that are configured as a separate Maven project located in the <code>examples</code> folder.</p>
 </div>
 <div class="paragraph">
 <p>The project includes the following examples:</p>
@@ -452,23 +495,40 @@
 <div class="ulist">
 <ul>
 <li>
-<p><code>TableExample</code> demonstrates the usage of the <code>org.apache.ignite.table.Table</code> API to create a table. It also shows how to get data from a table, or insert a line into a table.</p>
+<p><code>RecordViewExample</code> demonstrates the usage of the <code>org.apache.ignite.table.RecordView</code> API to create a table. It also shows how to get data from a table, or insert a line into a table.</p>
 </li>
 <li>
-<p><code>KeyValueBinaryViewExample</code> - demonstrates the usage of the <code>org.apache.ignite.table.KeyValueBinaryView</code> API to insert a line into a table.</p>
+<p><code>KeyValueViewExample</code> - demonstrates the usage of the <code>org.apache.ignite.table.KeyValueView</code> API to insert a line into a table.</p>
+</li>
+<li>
+<p><code>SqlJdbcExample</code> - demonstrates the usage of the Apache Ignite JDBC driver.</p>
+</li>
+<li>
+<p><code>RebalanceExample</code> - demonstrates the data rebalancing process.</p>
 </li>
 </ul>
 </div>
 <div class="paragraph">
-<p>To run an example:</p>
+<p>To run the <code>RebalanceExample</code>, refer to its <a href="https://github.com/apache/ignite-3/blob/3.0.0-alpha3/examples/src/main/java/org/apache/ignite/example/rebalance/RebalanceExample.java" target="_blank" rel="noopener">JavaDoc</a> for instructions.</p>
+</div>
+<div class="paragraph">
+<p>To run any other example, perform the following steps:</p>
 </div>
 <div class="olist arabic">
 <ol class="arabic">
 <li>
-<p>Import the <code>examples</code> folder into your IDE as a Maven project.</p>
+<p>Import the examples project into you IDE.</p>
 </li>
 <li>
-<p>Follow the steps in the specific example to start it.</p>
+<p>Start a server node using the CLI tool:</p>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="shell script">ignite node start --config=$IGNITE_HOME/examples/config/ignite-config.json my-first-node</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>Run the preferred example in the IDE.</p>
 </li>
 </ol>
 </div>
@@ -478,11 +538,11 @@
 <h2 id="stopping-the-cluster">Stopping the Cluster</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>To stop the node, use the command below passing <code>node-1</code> as a node unique identifier:</p>
+<p>To stop the node, use the command below passing <code>my-first-node</code> as a node unique identifier:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="rouge highlight"><code data-lang="shell">ignite node stop node-1</code></pre>
+<pre class="rouge highlight"><code data-lang="shell">ignite node stop my-first-node</code></pre>
 </div>
 </div>
 </div>
@@ -559,11 +619,11 @@
         debug: false,
       });
     </script>
-<script type='module' src='/assets/js/index.js?1628277221' async crossorigin></script>
-<script type='module' src='/assets/js/versioning.js?1628277221' async crossorigin></script>
+<script type='module' src='/assets/js/index.js?1634839436' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839436' async crossorigin></script>
 
-<link rel="stylesheet" href="/assets/css/styles.css?1628277221" media="print" onload="this.media='all'">
-<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1628277221"></noscript>
+<link rel="stylesheet" href="/assets/css/styles.css?1634839436" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839436"></noscript>
 
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
 <noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
diff --git a/docs/3.0.0-alpha/rebalance.html b/docs/3.0.0-alpha/rebalance.html
new file mode 100644
index 0000000..3a9c349
--- /dev/null
+++ b/docs/3.0.0-alpha/rebalance.html
@@ -0,0 +1,328 @@
+<!DOCTYPE html>
+
+      
+      
+<html lang="en">
+<head>
+   <meta charset="UTF-8">
+    <!-- Global site tag (gtag.js) - Google Analytics -->
+    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
+    <script>
+    window.dataLayer = window.dataLayer || [];
+    function gtag(){dataLayer.push(arguments);}
+    gtag('js', new Date());
+    gtag('config', 'UA-61232409-1');
+    </script>
+
+    <!-- Yandex.Metrika counter -->
+    <script type="text/javascript" >
+      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
+      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
+      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
+
+      ym(72949126, "init", {
+          clickmap:true,
+          trackLinks:true,
+          accurateTrackBounce:true,
+          webvisor:true
+      });
+    </script>
+    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
+    <!-- /Yandex.Metrika counter -->
+
+    <!-- LuckyOrange code -->
+    <script type='text/javascript'>
+      window.__lo_site_id = 284467;
+    
+      (function() {
+        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
+        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
+        })();
+      </script>
+      <!-- /LuckyOrange code -->
+
+<!-- Bugyard widget embed -->
+<script type="text/javascript">!function(){if("function"!=typeof window.bugyard){var a=function(){a.c(arguments)};a.q=[],a.c=function(b){a.q.push(b)},window.bugyard=a;var b=document.createElement("script");b.setAttribute("data-bugyard","610961912c35ff001493163a"),b.setAttribute("async","async"),b.setAttribute("defer","defer"),b.setAttribute("src","https://widget.bugyard.io/bugyard.min.js"),document.getElementsByTagName("head")[0].appendChild(b)}}(); window.bugyard("hideButton"); </script>
+
+
+
+
+
+    <link rel="preload" href='/assets/js/code-tabs.js?1' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/page-nav.js' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/docs-menu.js?20201005' as="script" crossorigin>
+
+    <style>:root{--gg-red:#ec1c24;--gg-orange:#ec1c24;--gg-orange-dark:#bc440b;--gg-orange-filter:invert(47%) sepia(61%) saturate(1950%) hue-rotate(345deg) brightness(100%) contrast(95%);--gg-dark-gray:#333333;--orange-line-thickness:3px;--block-code-background:rgba(241, 241, 241, 20%);--inline-code-background:rgba(241, 241, 241, 90%);--padding-top:25px;--link-color:#ec1c24;--body-background:#fcfcfc}header{min-height:var(--header-height);background:#fff;box-shadow:0 4px 10px 0 #eee,0 0 4px 0 #d5d5d5;z-index:1}header>.container{display:grid;grid-template-columns:auto auto 1fr auto auto auto;grid-template-areas:'left-toggle home nav ver api search lang';grid-template-rows:40px;flex-direction:row;align-items:center;justify-content:flex-start;padding:12px 20px;max-width:1400px;margin:0 auto}header nav>ul{padding:0;margin:0;list-style:none;display:inherit}header .dropdown{display:none;position:fixed;top:calc(var(--header-height) - 12px);width:auto;background:#fff;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);border-radius:4px;padding-top:10px;padding-bottom:12px;z-index:2}header .dropdown li{display:flex}header .dropdown a{color:grey!important;font-size:16px;padding-top:5px;padding-bottom:4px}header .menu{border:none;background:0 0;width:40px;height:40px;margin-right:12px;grid-area:left-toggle}header .menu img{width:18px;height:12px}header .search-close,header .top-nav-toggle{background:0 0;border:none;padding:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--gg-dark-gray);font-size:26px}header .search-toggle{grid-area:search}header .top-nav-toggle{grid-area:top-toggle}header .home{grid-area:home;margin-right:auto}header .home img{height:36px}header #api-docs{grid-area:api;margin:0;display:flex}header #api-docs .dropdown{padding:.5em 0}header #api-docs a{padding:9px 14px;color:var(--gg-dark-gray)!important;text-decoration:none;white-space:nowrap}header #api-docs .dropdown-item a{font-weight:400;display:block;width:100%;min-width:150px}header #lang-selector li{list-style:none;display:flex;padding:9px 14px}header #lang-selector li a{display:flex;color:#000;align-items:center}header #lang-selector li a span{font-size:10px;margin-left:5px}header #lang-selector li a img{width:25px}header #lang-selector li .dropdown{margin-left:-70px}header #lang-selector li .dropdown .dropdown-item{padding:0 1em;margin-bottom:8px}header #lang-selector li .dropdown .dropdown-item a span{font-size:14px}header .search{margin-left:auto;margin-right:20px;grid-area:search}header .search input[type=search]{color:var(--gg-dark-gray);background:rgba(255,255,255,.8);border:1px solid #ccc;padding:10px 15px;font-family:inherit;max-width:148px;height:37px;font-size:14px;-webkit-appearance:unset;appearance:unset}header #version-selector{list-style:none;grid-area:ver;line-height:28px;border-radius:0;margin-right:10px;border:none;color:var(--gg-dark-gray);padding:5px 16px 5px 10px;white-space:nowrap;font-size:14px;width:auto;text-align:right;box-sizing:border-box;text-align-last:right;-moz-appearance:none;-webkit-appearance:none;appearance:none;direction:rtl}header #version-selector option{direction:ltr}header>nav{grid-area:nav;font-size:18px;display:flex;flex-direction:row;margin:0 20px}header #lang-selector{grid-area:lang}header .search-close{margin-right:10px}@media (max-width:600px){header .search{margin-right:5px}header .search input[type=search]{max-width:110px}}header:not(.narrow-header) .search-close,header:not(.narrow-header) .top-nav-toggle{display:none}@media (max-width:670px){header>.container{grid-template-columns:auto 1fr auto;grid-template-areas:'left-toggle home search' 'ver api lang'}header #lang-selector li{justify-content:flex-end}}pre,pre.rouge{padding:8px 15px;background:var(--block-code-background)!important;border-radius:5px;border:1px solid #e5e5e5;overflow-x:auto;min-height:36px;line-height:18px;color:#545454}code{color:#545454}pre.rouge code{background:0 0!important}:not(pre)>code{background:var(--inline-code-background);padding:.1em .5em;background-clip:padding-box;border-radius:3px;color:#545454;font-size:90%}.listingblock .content{position:relative}.highlight{color:#586e75}.highlight .c1{color:#657b83}.highlight .nt{color:#b58900}.highlight .o{color:#93a1a1}.highlight .k{color:#6c71c4}.highlight .kt{color:#cb4b16}.highlight .s,.highlight .s1{color:#859900}.highlight .nc{color:#b58900}.highlight .na{color:#268bd2}body{font-family:'Open Sans',sans-serif}h1,h2{color:#000;font-weight:400;font-family:'Open Sans'}h1{font-size:36px;line-height:40px}a{text-decoration:none;color:var(--link-color)}section{color:#545454}.admonitionblock .icon .title{display:none}body{--header-height:64px;--promotion-bar-height:35px;--footer-height:104px;--footer-gap:60px;padding:0;margin:0;display:flex;flex-direction:column;min-height:100vh;background-color:var(--body-background);font-family:'Open Sans',sans-serif}body>section{flex:1}header{position:-webkit-sticky;position:sticky;top:0;z-index:2}*{box-sizing:border-box}@media (max-width:670px){body{--header-height:97px}}.left-nav{padding:10px 20px;width:289px;overflow-y:auto;top:calc(var(--header-height) + var(--promotion-bar-height));height:calc(100vh - var(--header-height) - var(--promotion-bar-height));font-family:'Open Sans';padding-top:var(--padding-top);background-color:var(--body-background)}.left-nav li{list-style:none}.left-nav a,.left-nav button{text-decoration:none;color:#757575;font-size:16px;display:inline-flex;width:100%;margin:2px 0;padding:.25em .375em;background:0 0;border:none;font:inherit;text-align:left}.left-nav a.active{color:var(--link-color)}.left-nav .nav-group{margin-left:6px;font-size:14px}.left-nav nav{border-left:2px solid #ddd;margin-bottom:5px}.left-nav nav.collapsed{display:none}.left-nav nav>li>a,.left-nav nav>li>button{padding-left:20px;text-align:left}.left-nav nav>li>a.active{border-left:var(--orange-line-thickness) solid var(--active-color);padding-left:calc(20px - var(--orange-line-thickness))}.left-nav nav.sub_pages{border:none}.left-nav nav.sub_pages a{padding-left:32px}.left-nav .state-indicator{margin-left:auto;margin-top:5px;width:6.2px;height:10px;flex:0 0 auto;filter:invert(49%) sepia(4%) saturate(5%) hue-rotate(23deg) brightness(92%) contrast(90%)}.left-nav button.expanded .state-indicator{transform:rotate(90deg)}.right-nav{width:289px;padding:12px 26px;overflow-y:auto;height:calc(100vh - var(--header-height));top:0;position:-webkit-sticky;position:sticky;display:flex;flex-direction:column;font-family:'Open sans';padding-top:var(--padding-top);background-color:#fff}.right-nav ul{list-style:none;padding:0;margin:0}.right-nav li{padding:0}.right-nav a{--border-width:0px;font-size:14px;color:#757575;padding-left:calc(15px * var(--nesting-level) + 8px - var(--border-width));margin:.3em 0;display:inline-block}.right-nav .sectlevel1{border-left:2px solid #ddd}.right-nav .sectlevel1{--nesting-level:0}.right-nav .sectlevel2{--nesting-level:1}.right-nav .sectlevel3{--nesting-level:2}@media (max-width:1200px){.right-nav{width:230px}}.right-nav footer{font-size:12px;padding:calc(var(--footer-gap) * .3) 0 5px;text-align:left;margin:auto 0 0}section.page-docs{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;grid-template-areas:'left-nav content right-nav';line-height:20px;max-width:1440px;margin:auto;width:100%}section.page-docs>article{border-left:1px solid #eee;background-color:#fff;padding:0 50px 30px;grid-area:content;overflow:hidden;font-family:sans-serif;font-size:16px;color:#545454;line-height:1.6em}section.page-docs>article h1,section.page-docs>article h2{font-family:'Open Sans'}@media (max-width:800px){section.page-docs>article{padding-left:15px;padding-right:15px}}section.page-docs .edit-link{position:relative;top:10px;right:10px;float:right;padding-top:calc(var(--header-height) + var(--padding-top));margin-top:calc((-1 * var(--header-height)))}section.page-docs h1,section.page-docs h2{margin-bottom:0}section.page-docs h2[id]{margin-top:var(--margin-top);margin-bottom:calc(var(--margin-top) * .5);z-index:-1}section.page-docs .title{font-style:italic}section.page-docs h2[id]{--margin-top:1.2em}.left-nav{bottom:0;position:-webkit-sticky;position:sticky}.left-nav{grid-area:left-nav}.right-nav{grid-area:right-nav}.left-nav__overlay{display:none;background:rgba(0,0,0,.5);z-index:1;position:fixed;top:var(--header-height);bottom:0;left:0;right:0}@media (max-width:990px){body:not(.hide-left-nav) .left-nav__overlay{display:block}nav.left-nav{background:#fafafa;grid-area:left-nav;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);min-height:calc(100vh - var(--header-height));max-height:calc(100vh - var(--header-height));position:fixed;bottom:0;top:var(--header-height);z-index:2}section.page-docs>article{grid-column-start:left-nav;grid-column-end:content;grid-row:content}}@media (max-width:800px){nav.right-nav{display:none}}:target:before{content:"";display:block;margin-top:calc(var(--header-height) * -1);height:var(--header-height);width:1px}@media (min-width:600px) and (max-width:900px){:target:before{content:"";display:block;width:1px;margin-top:-150px;height:150px}}
+#header #promotion-bar { background-color: #333333; padding: 8px; }
+#header #promotion-bar p { font-size: 14px; line-height: 1.4em; font-weight: 600; padding: 0; margin: 0; color: #f0f0f0; text-align: center;}
+#header #promotion-bar p a { color: #FCB903; } </style>
+
+    
+
+    
+    <meta name="ignite-version" content="3.0.0-alpha" />
+    <title>Data Rebalancing | Ignite Documentation</title>
+    
+    <link rel="canonical" href="/docs/3.0.0-alpha/rebalance" />
+    <META NAME="ROBOTS" CONTENT="NOINDEX" />
+    
+	
+	  <link rel="shortcut icon" href="/favicon.ico">
+    <meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
+
+    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" />
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" media="print" onload="this.media='all'">
+    <noscript>
+      <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
+    </noscript>
+
+	<script>
+    // AnchorJS - v4.2.0 - 2019-01-01
+    // https://github.com/bryanbraun/anchorjs
+    // Copyright (c) 2019 Bryan Braun; Licensed MIT
+    !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=p(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o<e.length;o++)if(this.hasAnchorJSLink(e[o]))d.push(o);else{if(e[o].hasAttribute("id"))n=e[o].getAttribute("id");else if(e[o].hasAttribute("data-anchor-id"))n=e[o].getAttribute("data-anchor-id");else{for(c=r=this.urlify(e[o].textContent),a=0;void 0!==s&&(c=r+"-"+a),a+=1,-1!==(s=i.indexOf(c)););s=void 0,i.push(c),e[o].setAttribute("id",c),n=c}n.replace(/-/g," "),(h=document.createElement("a")).className="anchorjs-link "+this.options.class,h.setAttribute("aria-label",this.options.ariaLabel),h.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(h.title=this.options.titleText),u=document.querySelector("base")?window.location.pathname+window.location.search:"",u=this.options.base||u,h.href=u+"#"+n,"always"===l&&(h.style.opacity="1"),""===this.options.icon&&(h.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(h.style.lineHeight="inherit")),"left"===this.options.placement?(h.style.position="absolute",h.style.marginLeft="-1em",h.style.paddingRight="0.5em",e[o].insertBefore(h,e[o].firstChild)):(h.style.paddingLeft="0.375em",e[o].appendChild(h))}for(o=0;o<d.length;o++)e.splice(d[o]-o,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,i=p(A),n=0;n<i.length;n++)(t=i[n].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[n]))&&this.elements.splice(e,1),i[n].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){return this.options.truncate||f(this.options),A.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
+    </script>
+  
+</head>
+<body>
+    <header>
+    <!--#include virtual="/includes/promotion_banner.html" -->
+    <div class="container">
+        <button type='button' class='menu' title='Docs menu'>
+        <img src="/assets/images/menu-icon.svg" width="18" height="12" alt="menu icon" />
+        </button>
+        <div class='home'>
+            <a href="/" class='home' title='Apache Ignite home'>
+                <img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" height="36" >
+            </a>
+        </div>
+        
+        
+        <select id="version-selector">
+            <option value="3.0.0-alpha">3.0.0-alpha</option>
+        </select>
+
+        <nav id="api-docs"><ul>
+            <li><a href="#">APIs</a>
+                <nav class='dropdown'>
+                    <ul>
+                    <li class="dropdown-item"><a href="/releases/latest/javadoc/index.html">Java</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/dotnetdoc/api/">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/cppdoc/index.html">C++</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/scaladoc/scalar/index.html#org.apache.ignite.scalar.scalar$">Scala</a></li>
+                    </ul>
+                </nav>
+            </li>
+
+            <li><a href="#">Examples</a>
+                <nav class="dropdown">
+                    <ul>
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/examples" target="_blank" rel="noopener" title="Apache Ignite Java examples">Java</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/dotnet/examples" target="_blank" rel="noopener" title="Apache Ignite C#/.NET examples">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/cpp/examples" target="_blank" rel="noopener" title="Apache Ignite C++ examples">C++</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/python/examples" target="_blank" rel="noopener" title="Apache Ignite Python examples">Python</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/nodejs/examples" target="_blank" rel="noopener" title="Apache Ignite NodeJS examples">NodeJS</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/php/examples" target="_blank" rel="noopener" title="Apache Ignite PHP examples">PHP</a></li>
+                </ul>
+                </nav>
+                </li></ul>
+        </nav>
+        
+        <form class='search'>
+            <button class="search-close" type='button'><img src='/assets/images/cancel.svg' alt="close" width="10" height="10" /></button>
+            <input type="search" placeholder="Search…" id="search-input">
+        </form>
+        
+
+        <nav id="lang-selector"><ul>
+            <li><a href="#"><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon"  width="25" height="25" /><span>▼</span></a>
+                <nav class="dropdown">
+                    <li class="dropdown-item"><a href="/docs/latest/" ><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon" width="25" height="25" /><span>English</span></a></li>
+                    <li class="dropdown-item"><a href="https://www.ignite-service.cn/doc/java/" target="_blank" rel="noopener"><img src="/assets/images/icon_lang_cn_75x75.jpg"  width="25" height="25" alt="Chinese language icon" /><span>Chinese</span></a></li>
+                </nav>
+            </li></ul>
+        </nav>
+
+        <button type='button' class='top-nav-toggle'>⋮</button>
+
+        
+        
+    </div>
+</header>
+
+
+    	 <link rel="stylesheet" href="/assets/css/docs.css">
+<section class='page-docs'>
+    
+
+
+
+
+
+<nav class='left-nav' data-swiftype-index='false'>
+    
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/index" class='' >Documentation Overview</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/quick-start/getting-started-guide" class='' >Getting Started Guide</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/ignite-cli-tool" class='' >Ignite CLI Tool</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='active' >Data Rebalancing</a>
+            
+        </li>
+    
+</nav>
+<div class="left-nav__overlay"></div>
+
+
+    <article data-swiftype-index='true'>
+      <a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/rebalance.adoc" target="_blank">Edit</a>
+        
+            <h1>Data Rebalancing</h1>
+        
+        <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>When a new node joins the cluster, some of the partitions are relocated to the new node so that the data remains distributed equally in the cluster. This process is called data rebalancing.
+If an existing node permanently leaves the cluster and backups are not configured, you lose the partitions stored on this node. When backups are configured, one of the backup copies of the lost partitions becomes a primary partition and the rebalancing process is initiated.</p>
+</div>
+<div class="paragraph">
+<p>WARNING:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>Data rebalancing is triggered by changes in the Baseline Topology. In pure in-memory clusters, the default behavior is to start rebalancing immediately when a node leaves or joins the cluster (the baseline topology changes automatically). In clusters with persistence, the baseline topology has to be changed manually (default behavior), or can be changed automatically when automatic baseline adjustment is enabled.</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="running-an-example">Running an Example</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Examples are shipped as a separate Maven project, which is located in the <code>examples</code> folder. <code>RebalanceExample</code> demonstrates the data rebalancing process.</p>
+</div>
+<div class="paragraph">
+<p>To start running <code>RebalanceExample</code>, please refer to its <a href="https://github.com/apache/ignite-3/blob/3.0.0-alpha3/examples/src/main/java/org/apache/ignite/example/rebalance/RebalanceExample.java" target="_blank" rel="noopener">JavaDoc</a> for instructions.</p>
+</div>
+</div>
+</div>
+        <div class="copyright">
+ © 2021 The Apache Software Foundation.<br/>
+Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation. 
+
+</div>
+
+    </article>
+    <nav class="right-nav" data-swiftype-index='false'>
+    <div class="toc-wrapper">
+    <ul class="sectlevel1">
+<li><a href="#running-an-example">Running an Example</a></li>
+</ul>
+    </div>
+          
+      
+      <nav class="promo-nav">
+            <!--#include virtual="/includes/docs_rightnav_promotion.html" -->
+            <a href="#" data-trigger-bugyard-feedback="true" id="doc-feedback-btn">Docs Feedback</a>
+        </nav>
+        
+</nav>
+    
+</section>
+<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
+
+    <script>
+    // inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late 
+    anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
+    anchors.options = {
+        placement: 'right',
+        visible: 'always'
+    };
+    </script>
+    
+    <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
+    <script>
+      docsearch({
+        // Your apiKey and indexName will be given to you once
+        // we create your config
+        apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8', 
+        indexName: 'apache_ignite',
+        // Replace inputSelector with a CSS selector
+        // matching your search input
+        inputSelector: '#search-input',
+        // algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
+
+        // Set debug to true to inspect the dropdown
+        debug: false,
+      });
+    </script>
+<script type='module' src='/assets/js/index.js?1634839436' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839436' async crossorigin></script>
+
+<link rel="stylesheet" href="/assets/css/styles.css?1634839436" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839436"></noscript>
+
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
+
+  
+</body>
+
+</html>
diff --git a/docs/3.0.0-alpha/sql/calcite-based-sql-engine.html b/docs/3.0.0-alpha/sql/calcite-based-sql-engine.html
new file mode 100644
index 0000000..7250dfa
--- /dev/null
+++ b/docs/3.0.0-alpha/sql/calcite-based-sql-engine.html
@@ -0,0 +1,773 @@
+<!DOCTYPE html>
+
+      
+      
+<html lang="en">
+<head>
+   <meta charset="UTF-8">
+    <!-- Global site tag (gtag.js) - Google Analytics -->
+    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
+    <script>
+    window.dataLayer = window.dataLayer || [];
+    function gtag(){dataLayer.push(arguments);}
+    gtag('js', new Date());
+    gtag('config', 'UA-61232409-1');
+    </script>
+
+    <!-- Yandex.Metrika counter -->
+    <script type="text/javascript" >
+      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
+      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
+      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
+
+      ym(72949126, "init", {
+          clickmap:true,
+          trackLinks:true,
+          accurateTrackBounce:true,
+          webvisor:true
+      });
+    </script>
+    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
+    <!-- /Yandex.Metrika counter -->
+
+    <!-- LuckyOrange code -->
+    <script type='text/javascript'>
+      window.__lo_site_id = 284467;
+    
+      (function() {
+        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
+        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
+        })();
+      </script>
+      <!-- /LuckyOrange code -->
+
+<!-- Bugyard widget embed -->
+<script type="text/javascript">!function(){if("function"!=typeof window.bugyard){var a=function(){a.c(arguments)};a.q=[],a.c=function(b){a.q.push(b)},window.bugyard=a;var b=document.createElement("script");b.setAttribute("data-bugyard","610961912c35ff001493163a"),b.setAttribute("async","async"),b.setAttribute("defer","defer"),b.setAttribute("src","https://widget.bugyard.io/bugyard.min.js"),document.getElementsByTagName("head")[0].appendChild(b)}}(); window.bugyard("hideButton"); </script>
+
+
+
+
+
+    <link rel="preload" href='/assets/js/code-tabs.js?1' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/page-nav.js' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/docs-menu.js?20201005' as="script" crossorigin>
+
+    <style>:root{--gg-red:#ec1c24;--gg-orange:#ec1c24;--gg-orange-dark:#bc440b;--gg-orange-filter:invert(47%) sepia(61%) saturate(1950%) hue-rotate(345deg) brightness(100%) contrast(95%);--gg-dark-gray:#333333;--orange-line-thickness:3px;--block-code-background:rgba(241, 241, 241, 20%);--inline-code-background:rgba(241, 241, 241, 90%);--padding-top:25px;--link-color:#ec1c24;--body-background:#fcfcfc}header{min-height:var(--header-height);background:#fff;box-shadow:0 4px 10px 0 #eee,0 0 4px 0 #d5d5d5;z-index:1}header>.container{display:grid;grid-template-columns:auto auto 1fr auto auto auto;grid-template-areas:'left-toggle home nav ver api search lang';grid-template-rows:40px;flex-direction:row;align-items:center;justify-content:flex-start;padding:12px 20px;max-width:1400px;margin:0 auto}header nav>ul{padding:0;margin:0;list-style:none;display:inherit}header .dropdown{display:none;position:fixed;top:calc(var(--header-height) - 12px);width:auto;background:#fff;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);border-radius:4px;padding-top:10px;padding-bottom:12px;z-index:2}header .dropdown li{display:flex}header .dropdown a{color:grey!important;font-size:16px;padding-top:5px;padding-bottom:4px}header .menu{border:none;background:0 0;width:40px;height:40px;margin-right:12px;grid-area:left-toggle}header .menu img{width:18px;height:12px}header .search-close,header .top-nav-toggle{background:0 0;border:none;padding:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--gg-dark-gray);font-size:26px}header .search-toggle{grid-area:search}header .top-nav-toggle{grid-area:top-toggle}header .home{grid-area:home;margin-right:auto}header .home img{height:36px}header #api-docs{grid-area:api;margin:0;display:flex}header #api-docs .dropdown{padding:.5em 0}header #api-docs a{padding:9px 14px;color:var(--gg-dark-gray)!important;text-decoration:none;white-space:nowrap}header #api-docs .dropdown-item a{font-weight:400;display:block;width:100%;min-width:150px}header #lang-selector li{list-style:none;display:flex;padding:9px 14px}header #lang-selector li a{display:flex;color:#000;align-items:center}header #lang-selector li a span{font-size:10px;margin-left:5px}header #lang-selector li a img{width:25px}header #lang-selector li .dropdown{margin-left:-70px}header #lang-selector li .dropdown .dropdown-item{padding:0 1em;margin-bottom:8px}header #lang-selector li .dropdown .dropdown-item a span{font-size:14px}header .search{margin-left:auto;margin-right:20px;grid-area:search}header .search input[type=search]{color:var(--gg-dark-gray);background:rgba(255,255,255,.8);border:1px solid #ccc;padding:10px 15px;font-family:inherit;max-width:148px;height:37px;font-size:14px;-webkit-appearance:unset;appearance:unset}header #version-selector{list-style:none;grid-area:ver;line-height:28px;border-radius:0;margin-right:10px;border:none;color:var(--gg-dark-gray);padding:5px 16px 5px 10px;white-space:nowrap;font-size:14px;width:auto;text-align:right;box-sizing:border-box;text-align-last:right;-moz-appearance:none;-webkit-appearance:none;appearance:none;direction:rtl}header #version-selector option{direction:ltr}header>nav{grid-area:nav;font-size:18px;display:flex;flex-direction:row;margin:0 20px}header #lang-selector{grid-area:lang}header .search-close{margin-right:10px}@media (max-width:600px){header .search{margin-right:5px}header .search input[type=search]{max-width:110px}}header:not(.narrow-header) .search-close,header:not(.narrow-header) .top-nav-toggle{display:none}@media (max-width:670px){header>.container{grid-template-columns:auto 1fr auto;grid-template-areas:'left-toggle home search' 'ver api lang'}header #lang-selector li{justify-content:flex-end}}pre,pre.rouge{padding:8px 15px;background:var(--block-code-background)!important;border-radius:5px;border:1px solid #e5e5e5;overflow-x:auto;min-height:36px;line-height:18px;color:#545454}code{color:#545454}pre.rouge code{background:0 0!important}:not(pre)>code{background:var(--inline-code-background);padding:.1em .5em;background-clip:padding-box;border-radius:3px;color:#545454;font-size:90%}.listingblock .content{position:relative}.highlight{color:#586e75}.highlight .c1{color:#657b83}.highlight .nt{color:#b58900}.highlight .o{color:#93a1a1}.highlight .k{color:#6c71c4}.highlight .kt{color:#cb4b16}.highlight .s,.highlight .s1{color:#859900}.highlight .nc{color:#b58900}.highlight .na{color:#268bd2}body{font-family:'Open Sans',sans-serif}h1,h2{color:#000;font-weight:400;font-family:'Open Sans'}h1{font-size:36px;line-height:40px}a{text-decoration:none;color:var(--link-color)}section{color:#545454}.admonitionblock .icon .title{display:none}body{--header-height:64px;--promotion-bar-height:35px;--footer-height:104px;--footer-gap:60px;padding:0;margin:0;display:flex;flex-direction:column;min-height:100vh;background-color:var(--body-background);font-family:'Open Sans',sans-serif}body>section{flex:1}header{position:-webkit-sticky;position:sticky;top:0;z-index:2}*{box-sizing:border-box}@media (max-width:670px){body{--header-height:97px}}.left-nav{padding:10px 20px;width:289px;overflow-y:auto;top:calc(var(--header-height) + var(--promotion-bar-height));height:calc(100vh - var(--header-height) - var(--promotion-bar-height));font-family:'Open Sans';padding-top:var(--padding-top);background-color:var(--body-background)}.left-nav li{list-style:none}.left-nav a,.left-nav button{text-decoration:none;color:#757575;font-size:16px;display:inline-flex;width:100%;margin:2px 0;padding:.25em .375em;background:0 0;border:none;font:inherit;text-align:left}.left-nav a.active{color:var(--link-color)}.left-nav .nav-group{margin-left:6px;font-size:14px}.left-nav nav{border-left:2px solid #ddd;margin-bottom:5px}.left-nav nav.collapsed{display:none}.left-nav nav>li>a,.left-nav nav>li>button{padding-left:20px;text-align:left}.left-nav nav>li>a.active{border-left:var(--orange-line-thickness) solid var(--active-color);padding-left:calc(20px - var(--orange-line-thickness))}.left-nav nav.sub_pages{border:none}.left-nav nav.sub_pages a{padding-left:32px}.left-nav .state-indicator{margin-left:auto;margin-top:5px;width:6.2px;height:10px;flex:0 0 auto;filter:invert(49%) sepia(4%) saturate(5%) hue-rotate(23deg) brightness(92%) contrast(90%)}.left-nav button.expanded .state-indicator{transform:rotate(90deg)}.right-nav{width:289px;padding:12px 26px;overflow-y:auto;height:calc(100vh - var(--header-height));top:0;position:-webkit-sticky;position:sticky;display:flex;flex-direction:column;font-family:'Open sans';padding-top:var(--padding-top);background-color:#fff}.right-nav ul{list-style:none;padding:0;margin:0}.right-nav li{padding:0}.right-nav a{--border-width:0px;font-size:14px;color:#757575;padding-left:calc(15px * var(--nesting-level) + 8px - var(--border-width));margin:.3em 0;display:inline-block}.right-nav .sectlevel1{border-left:2px solid #ddd}.right-nav .sectlevel1{--nesting-level:0}.right-nav .sectlevel2{--nesting-level:1}.right-nav .sectlevel3{--nesting-level:2}@media (max-width:1200px){.right-nav{width:230px}}.right-nav footer{font-size:12px;padding:calc(var(--footer-gap) * .3) 0 5px;text-align:left;margin:auto 0 0}section.page-docs{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;grid-template-areas:'left-nav content right-nav';line-height:20px;max-width:1440px;margin:auto;width:100%}section.page-docs>article{border-left:1px solid #eee;background-color:#fff;padding:0 50px 30px;grid-area:content;overflow:hidden;font-family:sans-serif;font-size:16px;color:#545454;line-height:1.6em}section.page-docs>article h1,section.page-docs>article h2{font-family:'Open Sans'}@media (max-width:800px){section.page-docs>article{padding-left:15px;padding-right:15px}}section.page-docs .edit-link{position:relative;top:10px;right:10px;float:right;padding-top:calc(var(--header-height) + var(--padding-top));margin-top:calc((-1 * var(--header-height)))}section.page-docs h1,section.page-docs h2{margin-bottom:0}section.page-docs h2[id]{margin-top:var(--margin-top);margin-bottom:calc(var(--margin-top) * .5);z-index:-1}section.page-docs .title{font-style:italic}section.page-docs h2[id]{--margin-top:1.2em}.left-nav{bottom:0;position:-webkit-sticky;position:sticky}.left-nav{grid-area:left-nav}.right-nav{grid-area:right-nav}.left-nav__overlay{display:none;background:rgba(0,0,0,.5);z-index:1;position:fixed;top:var(--header-height);bottom:0;left:0;right:0}@media (max-width:990px){body:not(.hide-left-nav) .left-nav__overlay{display:block}nav.left-nav{background:#fafafa;grid-area:left-nav;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);min-height:calc(100vh - var(--header-height));max-height:calc(100vh - var(--header-height));position:fixed;bottom:0;top:var(--header-height);z-index:2}section.page-docs>article{grid-column-start:left-nav;grid-column-end:content;grid-row:content}}@media (max-width:800px){nav.right-nav{display:none}}:target:before{content:"";display:block;margin-top:calc(var(--header-height) * -1);height:var(--header-height);width:1px}@media (min-width:600px) and (max-width:900px){:target:before{content:"";display:block;width:1px;margin-top:-150px;height:150px}}
+#header #promotion-bar { background-color: #333333; padding: 8px; }
+#header #promotion-bar p { font-size: 14px; line-height: 1.4em; font-weight: 600; padding: 0; margin: 0; color: #f0f0f0; text-align: center;}
+#header #promotion-bar p a { color: #FCB903; } </style>
+
+    
+
+    
+    <meta name="ignite-version" content="3.0.0-alpha" />
+    <title>Calcite-Based SQL Engine | Ignite Documentation</title>
+    
+    <link rel="canonical" href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" />
+    <META NAME="ROBOTS" CONTENT="NOINDEX" />
+    
+	
+	  <link rel="shortcut icon" href="/favicon.ico">
+    <meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
+
+    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" />
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" media="print" onload="this.media='all'">
+    <noscript>
+      <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
+    </noscript>
+
+	<script>
+    // AnchorJS - v4.2.0 - 2019-01-01
+    // https://github.com/bryanbraun/anchorjs
+    // Copyright (c) 2019 Bryan Braun; Licensed MIT
+    !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=p(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o<e.length;o++)if(this.hasAnchorJSLink(e[o]))d.push(o);else{if(e[o].hasAttribute("id"))n=e[o].getAttribute("id");else if(e[o].hasAttribute("data-anchor-id"))n=e[o].getAttribute("data-anchor-id");else{for(c=r=this.urlify(e[o].textContent),a=0;void 0!==s&&(c=r+"-"+a),a+=1,-1!==(s=i.indexOf(c)););s=void 0,i.push(c),e[o].setAttribute("id",c),n=c}n.replace(/-/g," "),(h=document.createElement("a")).className="anchorjs-link "+this.options.class,h.setAttribute("aria-label",this.options.ariaLabel),h.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(h.title=this.options.titleText),u=document.querySelector("base")?window.location.pathname+window.location.search:"",u=this.options.base||u,h.href=u+"#"+n,"always"===l&&(h.style.opacity="1"),""===this.options.icon&&(h.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(h.style.lineHeight="inherit")),"left"===this.options.placement?(h.style.position="absolute",h.style.marginLeft="-1em",h.style.paddingRight="0.5em",e[o].insertBefore(h,e[o].firstChild)):(h.style.paddingLeft="0.375em",e[o].appendChild(h))}for(o=0;o<d.length;o++)e.splice(d[o]-o,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,i=p(A),n=0;n<i.length;n++)(t=i[n].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[n]))&&this.elements.splice(e,1),i[n].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){return this.options.truncate||f(this.options),A.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
+    </script>
+  
+</head>
+<body>
+    <header>
+    <!--#include virtual="/includes/promotion_banner.html" -->
+    <div class="container">
+        <button type='button' class='menu' title='Docs menu'>
+        <img src="/assets/images/menu-icon.svg" width="18" height="12" alt="menu icon" />
+        </button>
+        <div class='home'>
+            <a href="/" class='home' title='Apache Ignite home'>
+                <img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" height="36" >
+            </a>
+        </div>
+        
+        
+        <select id="version-selector">
+            <option value="3.0.0-alpha">3.0.0-alpha</option>
+        </select>
+
+        <nav id="api-docs"><ul>
+            <li><a href="#">APIs</a>
+                <nav class='dropdown'>
+                    <ul>
+                    <li class="dropdown-item"><a href="/releases/latest/javadoc/index.html">Java</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/dotnetdoc/api/">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/cppdoc/index.html">C++</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/scaladoc/scalar/index.html#org.apache.ignite.scalar.scalar$">Scala</a></li>
+                    </ul>
+                </nav>
+            </li>
+
+            <li><a href="#">Examples</a>
+                <nav class="dropdown">
+                    <ul>
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/examples" target="_blank" rel="noopener" title="Apache Ignite Java examples">Java</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/dotnet/examples" target="_blank" rel="noopener" title="Apache Ignite C#/.NET examples">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/cpp/examples" target="_blank" rel="noopener" title="Apache Ignite C++ examples">C++</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/python/examples" target="_blank" rel="noopener" title="Apache Ignite Python examples">Python</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/nodejs/examples" target="_blank" rel="noopener" title="Apache Ignite NodeJS examples">NodeJS</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/php/examples" target="_blank" rel="noopener" title="Apache Ignite PHP examples">PHP</a></li>
+                </ul>
+                </nav>
+                </li></ul>
+        </nav>
+        
+        <form class='search'>
+            <button class="search-close" type='button'><img src='/assets/images/cancel.svg' alt="close" width="10" height="10" /></button>
+            <input type="search" placeholder="Search…" id="search-input">
+        </form>
+        
+
+        <nav id="lang-selector"><ul>
+            <li><a href="#"><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon"  width="25" height="25" /><span>▼</span></a>
+                <nav class="dropdown">
+                    <li class="dropdown-item"><a href="/docs/latest/" ><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon" width="25" height="25" /><span>English</span></a></li>
+                    <li class="dropdown-item"><a href="https://www.ignite-service.cn/doc/java/" target="_blank" rel="noopener"><img src="/assets/images/icon_lang_cn_75x75.jpg"  width="25" height="25" alt="Chinese language icon" /><span>Chinese</span></a></li>
+                </nav>
+            </li></ul>
+        </nav>
+
+        <button type='button' class='top-nav-toggle'>⋮</button>
+
+        
+        
+    </div>
+</header>
+
+
+    	 <link rel="stylesheet" href="/assets/css/docs.css">
+<section class='page-docs'>
+    
+
+
+
+
+
+<nav class='left-nav' data-swiftype-index='false'>
+    
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/index" class='' >Documentation Overview</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/quick-start/getting-started-guide" class='' >Getting Started Guide</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/ignite-cli-tool" class='' >Ignite CLI Tool</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='active' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
+</nav>
+<div class="left-nav__overlay"></div>
+
+
+    <article data-swiftype-index='true'>
+      <a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/sql/calcite-based-sql-engine.adoc" target="_blank">Edit</a>
+        
+            <h1>Calcite-Based SQL Engine</h1>
+        
+        <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>This Alpha release introduces new SQL engine based on the Apache Calcite framework to parse and optimize queries and generate execution plans. Previously, it was based on H2 Database.</p>
+</div>
+<div class="paragraph">
+<p>Apache Calcite is a dynamic data management framework, which mainly serves for mediating between applications and one or more data storage locations and data processing engines.
+For more information on Apache Calcite, please see the <a href="https://calcite.apache.org/docs/" target="_blank" rel="noopener">product documentation</a>.</p>
+</div>
+<div class="paragraph">
+<p>Replacing H2 SQL engine with Apache Calcite incorporates the following general improvements:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Wider SQL support</strong>: Apache Calcite, unlike H2, is specifically designed for SQL enablement on top of an arbitrary external data storage;</p>
+</li>
+<li>
+<p><strong>Better optimization algorithms</strong>: Apache Calcite optimizes queries by repeatedly applying planner rules to a relational expression;</p>
+</li>
+<li>
+<p><strong>Higher overall performance</strong>: Calcite offers much higher levels of execution flexibility, as well as higher efficiency in terms of both memory and CPU consumption.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="data-manipulation-language-dml">Data Manipulation Language (DML)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section walks you through all data manipulation language (DML) commands supported by Apache Ignite Alpha 3.</p>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">
+Currently, <code>WITH</code> and <code>MERGE</code> commands are not supported.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="select">SELECT</h3>
+<div class="paragraph">
+<p>Retrieves data from a table or multiple tables.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="p">[</span> <span class="n">hintComment</span> <span class="p">]</span> <span class="p">[</span> <span class="n">STREAM</span> <span class="p">]</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span>
+    <span class="err">{</span> <span class="o">*</span> <span class="o">|</span> <span class="n">projectItem</span> <span class="p">[,</span> <span class="n">projectItem</span> <span class="p">]</span><span class="o">*</span> <span class="err">}</span>
+<span class="k">FROM</span> <span class="n">tableExpression</span>
+<span class="p">[</span> <span class="k">WHERE</span> <span class="n">booleanExpression</span> <span class="p">]</span>
+<span class="p">[</span> <span class="k">GROUP</span> <span class="k">BY</span> <span class="err">{</span> <span class="n">groupItem</span> <span class="p">[,</span> <span class="n">groupItem</span> <span class="p">]</span><span class="o">*</span> <span class="err">}</span> <span class="p">]</span>
+<span class="p">[</span> <span class="k">HAVING</span> <span class="n">booleanExpression</span> <span class="p">]</span></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="insert">INSERT</h3>
+<div class="paragraph">
+<p>Inserts data into a table.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="err">{</span> <span class="k">INSERT</span> <span class="o">|</span> <span class="n">UPSERT</span> <span class="err">}</span> <span class="k">INTO</span> <span class="n">tablePrimary</span>
+<span class="p">[</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
+<span class="n">query</span></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="update">UPDATE</h3>
+<div class="paragraph">
+<p>Updates data in a table.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">UPDATE</span> <span class="n">tablePrimary</span>
+<span class="k">SET</span> <span class="n">assign</span> <span class="p">[,</span> <span class="n">assign</span> <span class="p">]</span><span class="o">*</span>
+<span class="p">[</span> <span class="k">WHERE</span> <span class="n">booleanExpression</span> <span class="p">]</span></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="delete">DELETE</h3>
+<div class="paragraph">
+<p>Deletes data from a table.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">DELETE</span> <span class="k">FROM</span> <span class="n">tablePrimary</span> <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">]</span>
+<span class="p">[</span> <span class="k">WHERE</span> <span class="n">booleanExpression</span> <span class="p">]</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="supported-operators-and-functions">Supported Operators and Functions</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="aggregate-functions">Aggregate Functions</h3>
+<div class="sect3">
+<h4 id="count">COUNT</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">COUNT</span><span class="p">(</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span> <span class="p">[,</span> <span class="n">value</span> <span class="p">]</span><span class="o">*</span><span class="p">)</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Returns the number of input rows for which value is not null (wholly not null if value is composite).</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="avg">AVG</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">AVG</span><span class="p">(</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="nb">numeric</span><span class="p">)</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Returns the average (arithmetic mean) of numeric across all input values.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="sum">SUM</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">SUM</span><span class="p">(</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="nb">numeric</span><span class="p">)</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Returns the sum of numeric across all input values.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="min">MIN</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">MIN</span><span class="p">(</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span><span class="p">)</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Returns the minimum value of value across all input values.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="max">MAX</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="k">MAX</span><span class="p">(</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span><span class="p">)</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Returns the maximum value of value across all input values.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="string_agg">STRING_AGG</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="n">STRING_AGG</span><span class="p">(</span> <span class="n">value</span> <span class="p">[,</span> <span class="n">separator</span> <span class="p">]</span> <span class="p">[</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="p">...])</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Concatenates the values of string expressions and places separator values between them.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="string_concat">STRING_CONCAT</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="sql"><span class="n">STRING_CONCAT</span><span class="p">(</span><span class="n">string1</span><span class="p">,</span> <span class="n">string2</span><span class="p">,</span> <span class="p">...</span> <span class="n">stringN</span><span class="p">)</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Concatenates the text values in the specified data ranges.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="functions">Functions</h3>
+<div class="sect3">
+<h4 id="json">JSON</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>JSON_EXISTS</p>
+</li>
+<li>
+<p>JSON_VALUE</p>
+</li>
+<li>
+<p>JSON_QUERY</p>
+</li>
+<li>
+<p>JSON_OBJECT</p>
+</li>
+<li>
+<p>JSON_ARRAY</p>
+</li>
+<li>
+<p>JSON_PRETTY</p>
+</li>
+<li>
+<p>STRING</p>
+</li>
+<li>
+<p>CHAR_LENGTH</p>
+</li>
+<li>
+<p>CHARACTER_LENGTH</p>
+</li>
+<li>
+<p>UPPER</p>
+</li>
+<li>
+<p>LOWER</p>
+</li>
+<li>
+<p>POSITION</p>
+</li>
+<li>
+<p>TRIM</p>
+</li>
+<li>
+<p>OVERLAY</p>
+</li>
+<li>
+<p>SUBSTRING</p>
+</li>
+<li>
+<p>INITCAP</p>
+</li>
+<li>
+<p>SPACE</p>
+</li>
+<li>
+<p>STRCMP</p>
+</li>
+<li>
+<p>REVERSE</p>
+</li>
+<li>
+<p>REGEXP_REPLACE</p>
+</li>
+<li>
+<p>SHA1</p>
+</li>
+<li>
+<p>MD5</p>
+</li>
+<li>
+<p>LTRIM</p>
+</li>
+<li>
+<p>TO_BASE64</p>
+</li>
+<li>
+<p>FROM_BASE64</p>
+</li>
+<li>
+<p>COMPRESS</p>
+</li>
+<li>
+<p>CONCAT</p>
+</li>
+<li>
+<p>TRANSLATE</p>
+</li>
+<li>
+<p>ASCII</p>
+</li>
+<li>
+<p>LEFT</p>
+</li>
+<li>
+<p>RIGHT</p>
+</li>
+<li>
+<p>REPEAT</p>
+</li>
+<li>
+<p>SOUNDEX</p>
+</li>
+<li>
+<p>For more information on functions supported by Apache Calcite, see the <a href="https://calcite.apache.org/docs/reference.html#operators-and-functions" target="_blank" rel="noopener">product documentation</a>.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="numeric">NUMERIC</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>POWER</p>
+</li>
+<li>
+<p>ABS</p>
+</li>
+<li>
+<p>MOD</p>
+</li>
+<li>
+<p>SQRT</p>
+</li>
+<li>
+<p>LN</p>
+</li>
+<li>
+<p>LOG10</p>
+</li>
+<li>
+<p>EXP</p>
+</li>
+<li>
+<p>CEIL</p>
+</li>
+<li>
+<p>FLOOR</p>
+</li>
+<li>
+<p>RAND</p>
+</li>
+<li>
+<p>ACOS</p>
+</li>
+<li>
+<p>ASIN</p>
+</li>
+<li>
+<p>ATAN</p>
+</li>
+<li>
+<p>ATAN2</p>
+</li>
+<li>
+<p>CBRT</p>
+</li>
+<li>
+<p>COS</p>
+</li>
+<li>
+<p>COT</p>
+</li>
+<li>
+<p>DEGREES</p>
+</li>
+<li>
+<p>PI()</p>
+</li>
+<li>
+<p>RADIANS</p>
+</li>
+<li>
+<p>ROUND</p>
+</li>
+<li>
+<p>SIGN</p>
+</li>
+<li>
+<p>SIN</p>
+</li>
+<li>
+<p>TAN</p>
+</li>
+<li>
+<p>TRUNCATE</p>
+</li>
+<li>
+<p>CHR</p>
+</li>
+<li>
+<p>COSH</p>
+</li>
+<li>
+<p>SINH</p>
+</li>
+<li>
+<p>TANH</p>
+</li>
+<li>
+<p>For more information on functions supported by Apache Calcite, see the <a href="https://calcite.apache.org/docs/reference.html#operators-and-functions" target="_blank" rel="noopener">product documentation</a>.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="general">GENERAL</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>NULLIF</p>
+</li>
+<li>
+<p>COALESCE</p>
+</li>
+<li>
+<p>CAST</p>
+</li>
+<li>
+<p>NVL</p>
+</li>
+<li>
+<p>GREATEST</p>
+</li>
+<li>
+<p>For more information on functions supported by Apache Calcite, see the <a href="https://calcite.apache.org/docs/reference.html#operators-and-functions" target="_blank" rel="noopener">product documentation</a>.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="timestamp">TIMESTAMP</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>TIMESTAMP_ADD</p>
+</li>
+<li>
+<p>TIMESTAMP_DIFF</p>
+</li>
+<li>
+<p>EXTRACT</p>
+</li>
+<li>
+<p>LAST_DAY</p>
+</li>
+<li>
+<p>For more information on functions supported by Apache Calcite, see the <a href="https://calcite.apache.org/docs/reference.html#operators-and-functions" target="_blank" rel="noopener">product documentation</a>.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+</div>
+        <div class="copyright">
+ © 2021 The Apache Software Foundation.<br/>
+Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation. 
+
+</div>
+
+    </article>
+    <nav class="right-nav" data-swiftype-index='false'>
+    <div class="toc-wrapper">
+    <ul class="sectlevel1">
+<li><a href="#data-manipulation-language-dml">Data Manipulation Language (DML)</a>
+<ul class="sectlevel2">
+<li><a href="#select">SELECT</a></li>
+<li><a href="#insert">INSERT</a></li>
+<li><a href="#update">UPDATE</a></li>
+<li><a href="#delete">DELETE</a></li>
+</ul>
+</li>
+<li><a href="#supported-operators-and-functions">Supported Operators and Functions</a>
+<ul class="sectlevel2">
+<li><a href="#aggregate-functions">Aggregate Functions</a>
+<ul class="sectlevel3">
+<li><a href="#count">COUNT</a></li>
+<li><a href="#avg">AVG</a></li>
+<li><a href="#sum">SUM</a></li>
+<li><a href="#min">MIN</a></li>
+<li><a href="#max">MAX</a></li>
+<li><a href="#string_agg">STRING_AGG</a></li>
+<li><a href="#string_concat">STRING_CONCAT</a></li>
+</ul>
+</li>
+<li><a href="#functions">Functions</a>
+<ul class="sectlevel3">
+<li><a href="#json">JSON</a></li>
+<li><a href="#numeric">NUMERIC</a></li>
+<li><a href="#general">GENERAL</a></li>
+<li><a href="#timestamp">TIMESTAMP</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+    </div>
+          
+      
+      <nav class="promo-nav">
+            <!--#include virtual="/includes/docs_rightnav_promotion.html" -->
+            <a href="#" data-trigger-bugyard-feedback="true" id="doc-feedback-btn">Docs Feedback</a>
+        </nav>
+        
+</nav>
+    
+</section>
+<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
+
+    <script>
+    // inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late 
+    anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
+    anchors.options = {
+        placement: 'right',
+        visible: 'always'
+    };
+    </script>
+    
+    <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
+    <script>
+      docsearch({
+        // Your apiKey and indexName will be given to you once
+        // we create your config
+        apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8', 
+        indexName: 'apache_ignite',
+        // Replace inputSelector with a CSS selector
+        // matching your search input
+        inputSelector: '#search-input',
+        // algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
+
+        // Set debug to true to inspect the dropdown
+        debug: false,
+      });
+    </script>
+<script type='module' src='/assets/js/index.js?1634839436' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839436' async crossorigin></script>
+
+<link rel="stylesheet" href="/assets/css/styles.css?1634839436" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839436"></noscript>
+
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
+
+  
+</body>
+
+</html>
diff --git a/docs/3.0.0-alpha/sql/jdbc-driver.html b/docs/3.0.0-alpha/sql/jdbc-driver.html
new file mode 100644
index 0000000..68b5b8a
--- /dev/null
+++ b/docs/3.0.0-alpha/sql/jdbc-driver.html
@@ -0,0 +1,406 @@
+<!DOCTYPE html>
+
+      
+      
+<html lang="en">
+<head>
+   <meta charset="UTF-8">
+    <!-- Global site tag (gtag.js) - Google Analytics -->
+    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
+    <script>
+    window.dataLayer = window.dataLayer || [];
+    function gtag(){dataLayer.push(arguments);}
+    gtag('js', new Date());
+    gtag('config', 'UA-61232409-1');
+    </script>
+
+    <!-- Yandex.Metrika counter -->
+    <script type="text/javascript" >
+      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
+      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
+      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
+
+      ym(72949126, "init", {
+          clickmap:true,
+          trackLinks:true,
+          accurateTrackBounce:true,
+          webvisor:true
+      });
+    </script>
+    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
+    <!-- /Yandex.Metrika counter -->
+
+    <!-- LuckyOrange code -->
+    <script type='text/javascript'>
+      window.__lo_site_id = 284467;
+    
+      (function() {
+        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
+        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
+        })();
+      </script>
+      <!-- /LuckyOrange code -->
+
+<!-- Bugyard widget embed -->
+<script type="text/javascript">!function(){if("function"!=typeof window.bugyard){var a=function(){a.c(arguments)};a.q=[],a.c=function(b){a.q.push(b)},window.bugyard=a;var b=document.createElement("script");b.setAttribute("data-bugyard","610961912c35ff001493163a"),b.setAttribute("async","async"),b.setAttribute("defer","defer"),b.setAttribute("src","https://widget.bugyard.io/bugyard.min.js"),document.getElementsByTagName("head")[0].appendChild(b)}}(); window.bugyard("hideButton"); </script>
+
+
+
+
+
+    <link rel="preload" href='/assets/js/code-tabs.js?1' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/page-nav.js' as="script" crossorigin>
+    <link rel="preload" href='/assets/js/docs-menu.js?20201005' as="script" crossorigin>
+
+    <style>:root{--gg-red:#ec1c24;--gg-orange:#ec1c24;--gg-orange-dark:#bc440b;--gg-orange-filter:invert(47%) sepia(61%) saturate(1950%) hue-rotate(345deg) brightness(100%) contrast(95%);--gg-dark-gray:#333333;--orange-line-thickness:3px;--block-code-background:rgba(241, 241, 241, 20%);--inline-code-background:rgba(241, 241, 241, 90%);--padding-top:25px;--link-color:#ec1c24;--body-background:#fcfcfc}header{min-height:var(--header-height);background:#fff;box-shadow:0 4px 10px 0 #eee,0 0 4px 0 #d5d5d5;z-index:1}header>.container{display:grid;grid-template-columns:auto auto 1fr auto auto auto;grid-template-areas:'left-toggle home nav ver api search lang';grid-template-rows:40px;flex-direction:row;align-items:center;justify-content:flex-start;padding:12px 20px;max-width:1400px;margin:0 auto}header nav>ul{padding:0;margin:0;list-style:none;display:inherit}header .dropdown{display:none;position:fixed;top:calc(var(--header-height) - 12px);width:auto;background:#fff;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);border-radius:4px;padding-top:10px;padding-bottom:12px;z-index:2}header .dropdown li{display:flex}header .dropdown a{color:grey!important;font-size:16px;padding-top:5px;padding-bottom:4px}header .menu{border:none;background:0 0;width:40px;height:40px;margin-right:12px;grid-area:left-toggle}header .menu img{width:18px;height:12px}header .search-close,header .top-nav-toggle{background:0 0;border:none;padding:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--gg-dark-gray);font-size:26px}header .search-toggle{grid-area:search}header .top-nav-toggle{grid-area:top-toggle}header .home{grid-area:home;margin-right:auto}header .home img{height:36px}header #api-docs{grid-area:api;margin:0;display:flex}header #api-docs .dropdown{padding:.5em 0}header #api-docs a{padding:9px 14px;color:var(--gg-dark-gray)!important;text-decoration:none;white-space:nowrap}header #api-docs .dropdown-item a{font-weight:400;display:block;width:100%;min-width:150px}header #lang-selector li{list-style:none;display:flex;padding:9px 14px}header #lang-selector li a{display:flex;color:#000;align-items:center}header #lang-selector li a span{font-size:10px;margin-left:5px}header #lang-selector li a img{width:25px}header #lang-selector li .dropdown{margin-left:-70px}header #lang-selector li .dropdown .dropdown-item{padding:0 1em;margin-bottom:8px}header #lang-selector li .dropdown .dropdown-item a span{font-size:14px}header .search{margin-left:auto;margin-right:20px;grid-area:search}header .search input[type=search]{color:var(--gg-dark-gray);background:rgba(255,255,255,.8);border:1px solid #ccc;padding:10px 15px;font-family:inherit;max-width:148px;height:37px;font-size:14px;-webkit-appearance:unset;appearance:unset}header #version-selector{list-style:none;grid-area:ver;line-height:28px;border-radius:0;margin-right:10px;border:none;color:var(--gg-dark-gray);padding:5px 16px 5px 10px;white-space:nowrap;font-size:14px;width:auto;text-align:right;box-sizing:border-box;text-align-last:right;-moz-appearance:none;-webkit-appearance:none;appearance:none;direction:rtl}header #version-selector option{direction:ltr}header>nav{grid-area:nav;font-size:18px;display:flex;flex-direction:row;margin:0 20px}header #lang-selector{grid-area:lang}header .search-close{margin-right:10px}@media (max-width:600px){header .search{margin-right:5px}header .search input[type=search]{max-width:110px}}header:not(.narrow-header) .search-close,header:not(.narrow-header) .top-nav-toggle{display:none}@media (max-width:670px){header>.container{grid-template-columns:auto 1fr auto;grid-template-areas:'left-toggle home search' 'ver api lang'}header #lang-selector li{justify-content:flex-end}}pre,pre.rouge{padding:8px 15px;background:var(--block-code-background)!important;border-radius:5px;border:1px solid #e5e5e5;overflow-x:auto;min-height:36px;line-height:18px;color:#545454}code{color:#545454}pre.rouge code{background:0 0!important}:not(pre)>code{background:var(--inline-code-background);padding:.1em .5em;background-clip:padding-box;border-radius:3px;color:#545454;font-size:90%}.listingblock .content{position:relative}.highlight{color:#586e75}.highlight .c1{color:#657b83}.highlight .nt{color:#b58900}.highlight .o{color:#93a1a1}.highlight .k{color:#6c71c4}.highlight .kt{color:#cb4b16}.highlight .s,.highlight .s1{color:#859900}.highlight .nc{color:#b58900}.highlight .na{color:#268bd2}body{font-family:'Open Sans',sans-serif}h1,h2{color:#000;font-weight:400;font-family:'Open Sans'}h1{font-size:36px;line-height:40px}a{text-decoration:none;color:var(--link-color)}section{color:#545454}.admonitionblock .icon .title{display:none}body{--header-height:64px;--promotion-bar-height:35px;--footer-height:104px;--footer-gap:60px;padding:0;margin:0;display:flex;flex-direction:column;min-height:100vh;background-color:var(--body-background);font-family:'Open Sans',sans-serif}body>section{flex:1}header{position:-webkit-sticky;position:sticky;top:0;z-index:2}*{box-sizing:border-box}@media (max-width:670px){body{--header-height:97px}}.left-nav{padding:10px 20px;width:289px;overflow-y:auto;top:calc(var(--header-height) + var(--promotion-bar-height));height:calc(100vh - var(--header-height) - var(--promotion-bar-height));font-family:'Open Sans';padding-top:var(--padding-top);background-color:var(--body-background)}.left-nav li{list-style:none}.left-nav a,.left-nav button{text-decoration:none;color:#757575;font-size:16px;display:inline-flex;width:100%;margin:2px 0;padding:.25em .375em;background:0 0;border:none;font:inherit;text-align:left}.left-nav a.active{color:var(--link-color)}.left-nav .nav-group{margin-left:6px;font-size:14px}.left-nav nav{border-left:2px solid #ddd;margin-bottom:5px}.left-nav nav.collapsed{display:none}.left-nav nav>li>a,.left-nav nav>li>button{padding-left:20px;text-align:left}.left-nav nav>li>a.active{border-left:var(--orange-line-thickness) solid var(--active-color);padding-left:calc(20px - var(--orange-line-thickness))}.left-nav nav.sub_pages{border:none}.left-nav nav.sub_pages a{padding-left:32px}.left-nav .state-indicator{margin-left:auto;margin-top:5px;width:6.2px;height:10px;flex:0 0 auto;filter:invert(49%) sepia(4%) saturate(5%) hue-rotate(23deg) brightness(92%) contrast(90%)}.left-nav button.expanded .state-indicator{transform:rotate(90deg)}.right-nav{width:289px;padding:12px 26px;overflow-y:auto;height:calc(100vh - var(--header-height));top:0;position:-webkit-sticky;position:sticky;display:flex;flex-direction:column;font-family:'Open sans';padding-top:var(--padding-top);background-color:#fff}.right-nav ul{list-style:none;padding:0;margin:0}.right-nav li{padding:0}.right-nav a{--border-width:0px;font-size:14px;color:#757575;padding-left:calc(15px * var(--nesting-level) + 8px - var(--border-width));margin:.3em 0;display:inline-block}.right-nav .sectlevel1{border-left:2px solid #ddd}.right-nav .sectlevel1{--nesting-level:0}.right-nav .sectlevel2{--nesting-level:1}.right-nav .sectlevel3{--nesting-level:2}@media (max-width:1200px){.right-nav{width:230px}}.right-nav footer{font-size:12px;padding:calc(var(--footer-gap) * .3) 0 5px;text-align:left;margin:auto 0 0}section.page-docs{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;grid-template-areas:'left-nav content right-nav';line-height:20px;max-width:1440px;margin:auto;width:100%}section.page-docs>article{border-left:1px solid #eee;background-color:#fff;padding:0 50px 30px;grid-area:content;overflow:hidden;font-family:sans-serif;font-size:16px;color:#545454;line-height:1.6em}section.page-docs>article h1,section.page-docs>article h2{font-family:'Open Sans'}@media (max-width:800px){section.page-docs>article{padding-left:15px;padding-right:15px}}section.page-docs .edit-link{position:relative;top:10px;right:10px;float:right;padding-top:calc(var(--header-height) + var(--padding-top));margin-top:calc((-1 * var(--header-height)))}section.page-docs h1,section.page-docs h2{margin-bottom:0}section.page-docs h2[id]{margin-top:var(--margin-top);margin-bottom:calc(var(--margin-top) * .5);z-index:-1}section.page-docs .title{font-style:italic}section.page-docs h2[id]{--margin-top:1.2em}.left-nav{bottom:0;position:-webkit-sticky;position:sticky}.left-nav{grid-area:left-nav}.right-nav{grid-area:right-nav}.left-nav__overlay{display:none;background:rgba(0,0,0,.5);z-index:1;position:fixed;top:var(--header-height);bottom:0;left:0;right:0}@media (max-width:990px){body:not(.hide-left-nav) .left-nav__overlay{display:block}nav.left-nav{background:#fafafa;grid-area:left-nav;box-shadow:0 4px 4px 0 rgba(0,0,0,.24),0 0 4px 0 rgba(0,0,0,.12);min-height:calc(100vh - var(--header-height));max-height:calc(100vh - var(--header-height));position:fixed;bottom:0;top:var(--header-height);z-index:2}section.page-docs>article{grid-column-start:left-nav;grid-column-end:content;grid-row:content}}@media (max-width:800px){nav.right-nav{display:none}}:target:before{content:"";display:block;margin-top:calc(var(--header-height) * -1);height:var(--header-height);width:1px}@media (min-width:600px) and (max-width:900px){:target:before{content:"";display:block;width:1px;margin-top:-150px;height:150px}}
+#header #promotion-bar { background-color: #333333; padding: 8px; }
+#header #promotion-bar p { font-size: 14px; line-height: 1.4em; font-weight: 600; padding: 0; margin: 0; color: #f0f0f0; text-align: center;}
+#header #promotion-bar p a { color: #FCB903; } </style>
+
+    
+
+    
+    <meta name="ignite-version" content="3.0.0-alpha" />
+    <title>JDBC Driver | Ignite Documentation</title>
+    
+    <link rel="canonical" href="/docs/3.0.0-alpha/sql/jdbc-driver" />
+    <META NAME="ROBOTS" CONTENT="NOINDEX" />
+    
+	
+	  <link rel="shortcut icon" href="/favicon.ico">
+    <meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
+
+    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" />
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" media="print" onload="this.media='all'">
+    <noscript>
+      <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
+    </noscript>
+
+	<script>
+    // AnchorJS - v4.2.0 - 2019-01-01
+    // https://github.com/bryanbraun/anchorjs
+    // Copyright (c) 2019 Bryan Braun; Licensed MIT
+    !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=p(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o<e.length;o++)if(this.hasAnchorJSLink(e[o]))d.push(o);else{if(e[o].hasAttribute("id"))n=e[o].getAttribute("id");else if(e[o].hasAttribute("data-anchor-id"))n=e[o].getAttribute("data-anchor-id");else{for(c=r=this.urlify(e[o].textContent),a=0;void 0!==s&&(c=r+"-"+a),a+=1,-1!==(s=i.indexOf(c)););s=void 0,i.push(c),e[o].setAttribute("id",c),n=c}n.replace(/-/g," "),(h=document.createElement("a")).className="anchorjs-link "+this.options.class,h.setAttribute("aria-label",this.options.ariaLabel),h.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(h.title=this.options.titleText),u=document.querySelector("base")?window.location.pathname+window.location.search:"",u=this.options.base||u,h.href=u+"#"+n,"always"===l&&(h.style.opacity="1"),""===this.options.icon&&(h.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(h.style.lineHeight="inherit")),"left"===this.options.placement?(h.style.position="absolute",h.style.marginLeft="-1em",h.style.paddingRight="0.5em",e[o].insertBefore(h,e[o].firstChild)):(h.style.paddingLeft="0.375em",e[o].appendChild(h))}for(o=0;o<d.length;o++)e.splice(d[o]-o,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,i=p(A),n=0;n<i.length;n++)(t=i[n].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[n]))&&this.elements.splice(e,1),i[n].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){return this.options.truncate||f(this.options),A.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
+    </script>
+  
+</head>
+<body>
+    <header>
+    <!--#include virtual="/includes/promotion_banner.html" -->
+    <div class="container">
+        <button type='button' class='menu' title='Docs menu'>
+        <img src="/assets/images/menu-icon.svg" width="18" height="12" alt="menu icon" />
+        </button>
+        <div class='home'>
+            <a href="/" class='home' title='Apache Ignite home'>
+                <img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" height="36" >
+            </a>
+        </div>
+        
+        
+        <select id="version-selector">
+            <option value="3.0.0-alpha">3.0.0-alpha</option>
+        </select>
+
+        <nav id="api-docs"><ul>
+            <li><a href="#">APIs</a>
+                <nav class='dropdown'>
+                    <ul>
+                    <li class="dropdown-item"><a href="/releases/latest/javadoc/index.html">Java</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/dotnetdoc/api/">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/cppdoc/index.html">C++</a></li>
+
+                    <li class="dropdown-item"><a href="/releases/latest/scaladoc/scalar/index.html#org.apache.ignite.scalar.scalar$">Scala</a></li>
+                    </ul>
+                </nav>
+            </li>
+
+            <li><a href="#">Examples</a>
+                <nav class="dropdown">
+                    <ul>
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/examples" target="_blank" rel="noopener" title="Apache Ignite Java examples">Java</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/dotnet/examples" target="_blank" rel="noopener" title="Apache Ignite C#/.NET examples">C#/.NET</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/cpp/examples" target="_blank" rel="noopener" title="Apache Ignite C++ examples">C++</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/python/examples" target="_blank" rel="noopener" title="Apache Ignite Python examples">Python</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/nodejs/examples" target="_blank" rel="noopener" title="Apache Ignite NodeJS examples">NodeJS</a></li>
+
+                    <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/php/examples" target="_blank" rel="noopener" title="Apache Ignite PHP examples">PHP</a></li>
+                </ul>
+                </nav>
+                </li></ul>
+        </nav>
+        
+        <form class='search'>
+            <button class="search-close" type='button'><img src='/assets/images/cancel.svg' alt="close" width="10" height="10" /></button>
+            <input type="search" placeholder="Search…" id="search-input">
+        </form>
+        
+
+        <nav id="lang-selector"><ul>
+            <li><a href="#"><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon"  width="25" height="25" /><span>▼</span></a>
+                <nav class="dropdown">
+                    <li class="dropdown-item"><a href="/docs/latest/" ><img src="/assets/images/icon_lang_en_75x75.jpg" alt="English language icon" width="25" height="25" /><span>English</span></a></li>
+                    <li class="dropdown-item"><a href="https://www.ignite-service.cn/doc/java/" target="_blank" rel="noopener"><img src="/assets/images/icon_lang_cn_75x75.jpg"  width="25" height="25" alt="Chinese language icon" /><span>Chinese</span></a></li>
+                </nav>
+            </li></ul>
+        </nav>
+
+        <button type='button' class='top-nav-toggle'>⋮</button>
+
+        
+        
+    </div>
+</header>
+
+
+    	 <link rel="stylesheet" href="/assets/css/docs.css">
+<section class='page-docs'>
+    
+
+
+
+
+
+<nav class='left-nav' data-swiftype-index='false'>
+    
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/index" class='' >Documentation Overview</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/quick-start/getting-started-guide" class='' >Getting Started Guide</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/ignite-cli-tool" class='' >Ignite CLI Tool</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/calcite-based-sql-engine" class='' >Calcite-Based SQL Engine</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/sql/jdbc-driver" class='active' >JDBC Driver</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/binary-protocol" class='' >Binary Client Protocol</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/persistence" class='' >Native Persistence</a>
+            
+        </li>
+    
+        <li>
+            
+                
+                <a href="/docs/3.0.0-alpha/rebalance" class='' >Data Rebalancing</a>
+            
+        </li>
+    
+</nav>
+<div class="left-nav__overlay"></div>
+
+
+    <article data-swiftype-index='true'>
+      <a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/sql/jdbc-driver.adoc" target="_blank">Edit</a>
+        
+            <h1>JDBC Driver</h1>
+        
+        <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Apache Ignite is shipped with JDBC driver that allows processing of distributed data using standard SQL statements like <code>SELECT</code>, <code>INSERT</code>, <code>UPDATE</code>, or <code>DELETE</code> directly from the JDBC side.</p>
+</div>
+<div class="paragraph">
+<p>WARNING:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>This Alpha release implementation of JDBC driver does not support the following functionality:
+
+* SSL/TLS connection;
+* Multiple Endpoints;
+* Partition Awareness;
+* `CREATE TABLE`, `ALTER TABLE`, `WITH`, and `MERGE` commands.</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="setting-up">Setting Up</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The name of the driver’s class is <code>org.apache.ignite.IgniteJdbcThinDriver</code>. For instance, this is how you can open a JDBC connection to the cluster node listening on IP address <code>192.168.0.50</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="java"><span class="c1">// Load JDBC drivers.</span>
+<span class="nc">ServiceLoader</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="n">java</span><span class="o">.</span><span class="na">sql</span><span class="o">.</span><span class="na">Driver</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+
+<span class="c1">// Open the JDBC connection.</span>
+<span class="nc">Connection</span> <span class="n">conn</span> <span class="o">=</span> <span class="nc">DriverManager</span><span class="o">.</span><span class="na">getConnection</span><span class="o">(</span><span class="s">"jdbc:ignite:thin://127.0.1.1:10800"</span><span class="o">);</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The driver connects to one of the cluster nodes and forwards all the queries to it for final execution. The node handles the query distribution and the result’s aggregations. Then the result is sent back to the client application.</p>
+</div>
+<div class="paragraph">
+<p>The JDBC connection string may be formatted with one of two patterns: <code>URL query</code> or <code>semicolon</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="java"><span class="c1">// URL query pattern</span>
+<span class="nl">jdbc:ignite:thin:</span><span class="c1">//&lt;hostAndPortRange0&gt;[,&lt;hostAndPortRange1&gt;]...[,&lt;hostAndPortRangeN&gt;][/schema][?&lt;params&gt;]</span>
+
+<span class="n">hostAndPortRange</span> <span class="o">:=</span> <span class="n">host</span><span class="o">[:</span><span class="n">port_from</span><span class="o">[..</span><span class="na">port_to</span><span class="o">]]</span>
+
+<span class="n">params</span> <span class="o">:=</span> <span class="n">param1</span><span class="o">=</span><span class="n">value1</span><span class="o">[&amp;</span><span class="n">param2</span><span class="o">=</span><span class="n">value2</span><span class="o">]...[&amp;</span><span class="n">paramN</span><span class="o">=</span><span class="n">valueN</span><span class="o">]</span>
+
+<span class="c1">// Semicolon pattern</span>
+<span class="nl">jdbc:ignite:thin:</span><span class="c1">//&lt;hostAndPortRange0&gt;[,&lt;hostAndPortRange1&gt;]...[,&lt;hostAndPortRangeN&gt;][;schema=&lt;schema_name&gt;][;param1=value1]...[;paramN=valueN]</span></code></pre>
+</div>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>host</code> is required and defines the host of the cluster node to connect to.</p>
+</li>
+<li>
+<p><code>port_from</code> is the beginning of the port range to use to open the connection. 10800 is used by default if this parameter is omitted.</p>
+</li>
+<li>
+<p><code>port_to</code> is optional. It is set to the <code>port_from</code> value by default if this parameter is omitted.</p>
+</li>
+<li>
+<p><code>schema</code> is the schema name to access. PUBLIC is used by default. This name should correspond to the SQL ANSI-99 standard. Non-quoted identifiers are not case sensitive. Quoted identifiers are case sensitive. When semicolon format is used, the schema may be defined as a parameter with name schema.</p>
+</li>
+<li>
+<p><code>&lt;params&gt;</code> are optional.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="running-an-example">Running an Example</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Examples are shipped as a separate Maven project, which is located in the <code>examples</code> folder. <code>SqlJdbcExample</code> demonstrates the usage of the Apache Ignite JDBC driver.</p>
+</div>
+<div class="paragraph">
+<p>To run <code>SqlJdbcExample</code>, perform the following steps:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Import the examples project into you IDE;</p>
+</li>
+<li>
+<p>Start a server node using the CLI tool:</p>
+<div class="listingblock">
+<div class="content">
+<pre class="rouge highlight"><code data-lang="shell">ignite node start <span class="nt">--config</span><span class="o">=</span><span class="nv">$IGNITE_HOME</span>/examples/config/ignite-config.json my-first-node</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>Run <code>SqlJdbcExample</code> in the IDE.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+        <div class="copyright">
+ © 2021 The Apache Software Foundation.<br/>
+Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation. 
+
+</div>
+
+    </article>
+    <nav class="right-nav" data-swiftype-index='false'>
+    <div class="toc-wrapper">
+    <ul class="sectlevel1">
+<li><a href="#setting-up">Setting Up</a></li>
+<li><a href="#running-an-example">Running an Example</a></li>
+</ul>
+    </div>
+          
+      
+      <nav class="promo-nav">
+            <!--#include virtual="/includes/docs_rightnav_promotion.html" -->
+            <a href="#" data-trigger-bugyard-feedback="true" id="doc-feedback-btn">Docs Feedback</a>
+        </nav>
+        
+</nav>
+    
+</section>
+<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
+
+    <script>
+    // inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late 
+    anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
+    anchors.options = {
+        placement: 'right',
+        visible: 'always'
+    };
+    </script>
+    
+    <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
+    <script>
+      docsearch({
+        // Your apiKey and indexName will be given to you once
+        // we create your config
+        apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8', 
+        indexName: 'apache_ignite',
+        // Replace inputSelector with a CSS selector
+        // matching your search input
+        inputSelector: '#search-input',
+        // algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
+
+        // Set debug to true to inspect the dropdown
+        debug: false,
+      });
+    </script>
+<script type='module' src='/assets/js/index.js?1634839436' async crossorigin></script>
+<script type='module' src='/assets/js/versioning.js?1634839436' async crossorigin></script>
+
+<link rel="stylesheet" href="/assets/css/styles.css?1634839436" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="/assets/css/styles.css?1634839436"></noscript>
+
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" media="print" onload="this.media='all'">
+<noscript><link media="all" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"></noscript>
+
+  
+</body>
+
+</html>
