You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ab...@apache.org on 2020/07/24 12:21:03 UTC

[ignite] branch IGNITE-7595 updated: ported more content

This is an automated email from the ASF dual-hosted git repository.

abudnikov pushed a commit to branch IGNITE-7595
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/IGNITE-7595 by this push:
     new 0385f79  ported more content
0385f79 is described below

commit 0385f792a809d8b6a582adaeeaab3e02d50d1c99
Author: abudnikov <ab...@gridgain.com>
AuthorDate: Fri Jul 24 14:59:50 2020 +0300

    ported more content
---
 docs/README.adoc                                   |   4 +-
 docs/_config.yml                                   |  26 ++---
 docs/_data/toc.yaml                                |   2 +
 .../monitoring-metrics/intro.adoc                  |   1 -
 docs/_docs/code-snippets/k8s/setup.sh              |   1 -
 docs/_docs/code-snippets/xml/lifecycle.xml         |  27 ++++++
 docs/_docs/code-snippets/xml/tde.xml               |  45 +++++++++
 docs/_docs/developers-guide/baseline-topology.adoc |   9 +-
 .../developers-guide/clustering/clustering.adoc    |  61 ------------
 docs/_docs/developers-guide/preface.adoc           |   7 ++
 docs/_docs/developers-guide/setup.adoc             |  22 +++--
 docs/_docs/developers-guide/starting-nodes.adoc    | 105 +++++++++++++++++++--
 docs/_docs/images/cache_table.png                  | Bin 0 -> 166752 bytes
 docs/_docs/images/checkpointing-persistence.png    | Bin 0 -> 58508 bytes
 docs/_docs/images/client-to-aws.png                | Bin 0 -> 71068 bytes
 docs/_docs/images/collocated_joins.png             | Bin 0 -> 110276 bytes
 docs/_docs/images/defragmented.png                 | Bin 0 -> 45437 bytes
 docs/_docs/images/durable-memory-diagram.png       | Bin 0 -> 311833 bytes
 docs/_docs/images/durable-memory-overview.png      | Bin 0 -> 197852 bytes
 docs/_docs/images/fragmented.png                   | Bin 0 -> 26245 bytes
 docs/_docs/images/k8s/aks-node-number.png          | Bin 0 -> 43709 bytes
 docs/_docs/images/k8s/create-aks-cluster.png       | Bin 0 -> 60411 bytes
 docs/_docs/images/memory-segment.png               | Bin 0 -> 28735 bytes
 docs/_docs/images/off_heap_memory_eviction.png     | Bin 0 -> 168793 bytes
 docs/_docs/images/partitioning.png                 | Bin 0 -> 160390 bytes
 docs/_docs/images/persistent_store_structure.png   | Bin 0 -> 96783 bytes
 docs/_docs/installation-guide/deb-rpm.adoc         |  17 ++++
 .../kubernetes/amazon-eks-deployment.adoc          |   6 +-
 .../kubernetes/azure-deployment.adoc               |   6 +-
 .../kubernetes/generic-configuration.adoc          |   8 +-
 .../kubernetes/gke-deployment.adoc                 |   6 +-
 docs/_includes/left-nav.html                       |   9 +-
 docs/_includes/section-toc.html                    |   4 +-
 docs/_layouts/default.html                         |   2 +-
 docs/_plugins/asciidoctor-extensions.rb            |   4 +-
 docs/run.sh                                        |   3 +-
 36 files changed, 253 insertions(+), 122 deletions(-)

diff --git a/docs/README.adoc b/docs/README.adoc
index 185be3c..e2cb63e 100644
--- a/docs/README.adoc
+++ b/docs/README.adoc
@@ -13,8 +13,8 @@ The Asciidoc files are compiled into HTML pages and published to https://ignite.
 .Content of the “docs” directory
 [cols="1,4",opts="stretch"]
 |===
-| _docs  | The directory with .adoc files and code-snippets.
-| _config.yml | Jekyll configuration file.
+| pass:[_]docs  | The directory with .adoc files and code-snippets.
+| pass:[_]config.yml | Jekyll configuration file.
 |===
 
 
diff --git a/docs/_config.yml b/docs/_config.yml
index cf7e748..8a2263d 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -1,8 +1,17 @@
 exclude: [guidelines.md,  "Gemfile", "Gemfile.lock", README.adoc, "_docs/code-snippets", "_docs/includes", '*.sh']
-base_url: /docs
+attrs: &asciidoc_attributes
+  version: '2.8.1'
+  base_url: /docs
+  stylesdir: /docs/assets/css
+  imagesdir: /docs/{version}
+  source-highlighter: rouge
+  table-stripes: even
+  javadoc_base_url: https://ignite.apache.org/releases/{version}/javadoc
+  javaCodeDir: code-snippets/java/src/main/java/org/apache/ignite/snippets
+  githubUrl: https://github.com/apache/ignite/tree/master
 collections:
   docs:
-    #    permalink: /docs/{version}/:path:output_ext
+    permalink: /docs/2.8.1/:path:output_ext
     output: true
 defaults:
   -
@@ -17,14 +26,5 @@ defaults:
       toc: ignite 
 asciidoctor:
   base_dir: _docs/ 
-  attributes:
-    source-highlighter: rouge
-    stylesdir: assets/css
-    version: "2.8.1" 
-    base_url: /docs
-    imagesdir: /docs
-    table-stripes: even
-    javadoc_base_url: https://ignite.apache.org/releases/{version}/javadoc
-    javaCodeDir: /code-snippets/java/src/main/java/org/apache/ignite/snippets
-    githubUrl: https://github.com/apache/ignite/tree/master
-
+  attributes: *asciidoc_attributes
+   
diff --git a/docs/_data/toc.yaml b/docs/_data/toc.yaml
index 011acd6..b1fca4d 100644
--- a/docs/_data/toc.yaml
+++ b/docs/_data/toc.yaml
@@ -27,6 +27,8 @@
       url: /installation-guide/installing-using-zip
     - title: Installing Using Docker
       url: /installation-guide/installing-using-docker
+    - title:  Installing DEB or RPM package
+      url: /installation-guide/dem-rpm
     - title: Kubernetes
       items: 
         - title: Amazon EKS 
diff --git a/docs/_docs/administrators-guide/monitoring-metrics/intro.adoc b/docs/_docs/administrators-guide/monitoring-metrics/intro.adoc
index a55cd88..ebd860a 100644
--- a/docs/_docs/administrators-guide/monitoring-metrics/intro.adoc
+++ b/docs/_docs/administrators-guide/monitoring-metrics/intro.adoc
@@ -5,7 +5,6 @@ This chapter covers monitoring and metrics for Ignite. We'll start with an overv
 == Overview
 The basic task of monitoring in Ignite involves metrics. You have several approaches for accessing metrics:
 
--  via link:{wc_base_url}/web-console-getting-started[Web Console, window=_blank]
 -  via link:administrators-guide/monitoring-metrics/metrics[JMX]
 -  Programmatically
 -  link:administrators-guide/monitoring-metrics/system-views[System views]
diff --git a/docs/_docs/code-snippets/k8s/setup.sh b/docs/_docs/code-snippets/k8s/setup.sh
index 132ef4b..8186b61 100755
--- a/docs/_docs/code-snippets/k8s/setup.sh
+++ b/docs/_docs/code-snippets/k8s/setup.sh
@@ -26,7 +26,6 @@ kubectl delete clusterrolebinding ignite -n ignite --ignore-not-found
 
 kubectl delete namespace ignite --ignore-not-found
 
-exit 0
 
 # tag::create-namespace[]
 kubectl create namespace ignite
diff --git a/docs/_docs/code-snippets/xml/lifecycle.xml b/docs/_docs/code-snippets/xml/lifecycle.xml
new file mode 100644
index 0000000..1907137
--- /dev/null
+++ b/docs/_docs/code-snippets/xml/lifecycle.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="         http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans.xsd         http://www.springframework.org/schema/util         http://www.springframework.org/schema/util/spring-util.xsd">
+    <!-- tag::ignite-config[] -->
+    <bean class="org.apache.ignite.configuration.IgniteConfiguration">
+        <property name="lifecycleBeans">
+            <list>
+                <bean class="org.apache.ignite.snippets.MyLifecycleBean"/>
+            </list>
+        </property>
+        <!-- tag::discovery[] -->
+        <property name="discoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
+                <property name="ipFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                        <property name="addresses">
+                            <list>
+                                <value>127.0.0.1:47500..47509</value>
+                            </list>
+                        </property>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+        <!-- end::discovery[] -->
+    </bean>
+    <!-- end::ignite-config[] -->
+</beans>
\ No newline at end of file
diff --git a/docs/_docs/code-snippets/xml/tde.xml b/docs/_docs/code-snippets/xml/tde.xml
new file mode 100644
index 0000000..5c27aac
--- /dev/null
+++ b/docs/_docs/code-snippets/xml/tde.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="         http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans.xsd         http://www.springframework.org/schema/util         http://www.springframework.org/schema/util/spring-util.xsd">
+    <!-- tag::ignite-config[] -->
+    <bean class="org.apache.ignite.configuration.IgniteConfiguration">
+        <!-- We need to configure EncryptionSpi to enable encryption feature. -->
+        <property name="encryptionSpi">
+            <!-- Using EncryptionSpi implementation based on java keystore. -->
+            <bean class="org.apache.ignite.spi.encryption.keystore.KeystoreEncryptionSpi">
+                <!-- Path to the keystore file. -->
+                <property name="keyStorePath" value="ignite_keystore.jks"/>
+                <!-- Password for keystore file. -->
+                <property name="keyStorePassword" value="mypassw0rd"/>
+                <!-- Name of the key in keystore to be used as a master key. -->
+                <property name="masterKeyName" value="ignite.master.key"/>
+                <!-- Size of the cache encryption keys in bits. Can be 128, 192, or 256 bits.-->
+                <property name="keySize" value="256"/>
+            </bean>
+        </property>
+        <!-- tag::cache[] -->
+        <property name="cacheConfiguration">
+            <bean class="org.apache.ignite.configuration.CacheConfiguration">
+                <property name="name" value="encrypted-cache"/>
+                <property name="encryptionEnabled" value="true"/>
+            </bean>
+        </property>
+        <!-- end::cache[] -->
+
+        <!-- tag::discovery[] -->
+        <property name="discoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
+                <property name="ipFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                        <property name="addresses">
+                            <list>
+                                <value>127.0.0.1:47500..47509</value>
+                            </list>
+                        </property>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+        <!-- end::discovery[] -->
+    </bean>
+    <!-- end::ignite-config[] -->
+</beans>
\ No newline at end of file
diff --git a/docs/_docs/developers-guide/baseline-topology.adoc b/docs/_docs/developers-guide/baseline-topology.adoc
index 3628e35..e7428f6 100644
--- a/docs/_docs/developers-guide/baseline-topology.adoc
+++ b/docs/_docs/developers-guide/baseline-topology.adoc
@@ -39,11 +39,11 @@ for you because, by default, the baseline topology changes automatically when a
 
 == Baseline Topology in Persistent Clusters
 
-If your cluster has at least one data region in which persistence is enabled, the cluster is inactive when you start it for the first time. 
-In the inactive state, all operations are prohibited. 
-The cluster must be activated before you can create caches and upload data. 
+If your cluster has at least one data region in which persistence is enabled, the cluster is inactive when you start it for the first time.
+In the inactive state, all operations are prohibited.
+The cluster must be activated before you can create caches and upload data.
 Cluster activation sets the current set of server nodes as the baseline topology.
-When you restart the cluster, it is activated automatically as soon as all nodes that are registered in the baseline topology join in. 
+When you restart the cluster, it is activated automatically as soon as all nodes that are registered in the baseline topology join in.
 However, if some nodes do not join after a restart, you must to activate the cluster manually.
 
 You can activate the cluster using one of the following tools:
@@ -129,5 +129,4 @@ You can use the following tools to monitor and/or manage the baseline topology:
 
 * link:administrators-guide/control-script[Control Script]
 * link:administrators-guide/monitoring-metrics/metrics#monitoring-topology[JMX Beans]
-* link:{wc_base_url}/baseline-topology[Web Console]
 
diff --git a/docs/_docs/developers-guide/clustering/clustering.adoc b/docs/_docs/developers-guide/clustering/clustering.adoc
index 7c2d3c9..950e860 100644
--- a/docs/_docs/developers-guide/clustering/clustering.adoc
+++ b/docs/_docs/developers-guide/clustering/clustering.adoc
@@ -16,68 +16,7 @@ Learn more about the thin clients in the link:developers-guide/thin-clients/gett
 
 image::images/ignite_clustering.png[Ignite Cluster]
 
-== Servers and Clients
-There are two types of nodes: _server nodes_ and _client nodes_. Server nodes participate in caching, compute execution, stream processing, etc. Native client nodes provide the ability to connect to the
-servers remotely.
-Ignite native clients allow using the whole set of `Ignite APIs`, including near caching, transactions, compute, streaming, services, etc. from the client side.
 
-By default, all Ignite nodes are started as server nodes, and you should explicitly enable the client mode.
-
-IMPORTANT: Once a distributed cache is created, it is automatically deployed on all the existing and future _server_ nodes.
-
-You can configure a node to be either a client or a server via the `IgniteConfiguration.setClientMode(...)` property.
-
-[tabs]
---
-tab:XML[]
-
-[source,xml]
-----
-<bean class="org.apache.ignite.configuration.IgniteConfiguration">
-    <!-- Enable client mode. -->
-    <property name="clientMode" value="true"/>
-
-</bean>
-----
-tab:Java[]
-
-[source,java]
-----
-include::{javaCodeDir}/ClusteringOverview.java[tag=clientCfg,indent=0]
-----
-
-tab:C#/.NET[]
-
-[source,csharp]
-----
-include::code-snippets/dotnet/ClusteringOverview.cs[tag=ClientCfg,indent=0]
-----
-tab:C++[unsupported]
---
-
-Alternatively, for convenience, you can also enable or disable the
-client mode though the `Ignition` class to allow clients and servers to
-reuse the same configuration.
-
-[tabs]
---
-tab:Java[]
-
-[source,java]
-----
-include::{javaCodeDir}/ClusteringOverview.java[tag=clientModeIgnition,indent=0]
-----
-
-tab:C#/.NET[]
-
-[source,csharp]
-----
-include::code-snippets/dotnet/ClusteringOverview.cs[tag=ClientsAndServers,indent=0]
-----
-
-tab:C++[unsupported]
-
---
 
 == Discovery Mechanisms
 
diff --git a/docs/_docs/developers-guide/preface.adoc b/docs/_docs/developers-guide/preface.adoc
index 5ea6f56..22b443b 100644
--- a/docs/_docs/developers-guide/preface.adoc
+++ b/docs/_docs/developers-guide/preface.adoc
@@ -4,3 +4,10 @@ This guide is targeted at developers and architects who create applications on t
 
 == Programming Languages
 include::includes/intro-languages.adoc[]
+
+
+== Ignite Examples
+
+The Apache Ignite github repository contains a number of runnable examples that illustrate various Ignite functionality.
+Refer to the link:{githubUrl}/examples[Examples] folder in the Ignite code base.
+The examples are also available in the binary distribution.
diff --git a/docs/_docs/developers-guide/setup.adoc b/docs/_docs/developers-guide/setup.adoc
index e6353c3..70fd986 100644
--- a/docs/_docs/developers-guide/setup.adoc
+++ b/docs/_docs/developers-guide/setup.adoc
@@ -110,6 +110,22 @@ your application.
 ----
 
 
+The following modules have LGPL dependencies and, therefore, can't be deployed on the Maven Central repository:
+
+* ignite-hibernate
+* ignite-geospatial
+* ignite-schedule
+
+To use these modules, you will need to build them from sources and add to your project.
+For example, to install ignite-hibernate into your local repository, run this command in the Ignite source package:
+
+
+[source, shell]
+----
+mvn clean install -DskipTests -Plgpl -pl modules/hibernate -am
+----
+
+
 
 The following modules are available:
 
@@ -133,12 +149,6 @@ adding @Gridify annotation to it.
 
 |ignite-gce | Ignite GCE provides Google Cloud Storage based implementations of IP finder for TCP discovery.
 
-|ignite-hibernate-core |
-
-|ignite-hibernate_4.2 | Ignite Hibernate provides Hibernate L2 cache implementation.
-
-|ignite-hibernate_5.1 | Ignite Hibernate provides Hibernate L2 cache implementation.
-
 |ignite-indexing | link:SQL/indexes[SQL querying and indexing]
 
 |ignite-jcl |Support for the Jakarta Common Logging (JCL) framework.
diff --git a/docs/_docs/developers-guide/starting-nodes.adoc b/docs/_docs/developers-guide/starting-nodes.adoc
index 7f9fdde..40c6d74 100644
--- a/docs/_docs/developers-guide/starting-nodes.adoc
+++ b/docs/_docs/developers-guide/starting-nodes.adoc
@@ -1,11 +1,18 @@
 = Starting and Stopping Nodes
 
+This chapter explains how to start server and client nodes.
 
-This chapter explains how to start server nodes and client nodes.
+There are two types of nodes: _server nodes_ and _client nodes_.
+Server nodes participate in caching, compute execution, stream processing, etc.
+Client nodes provide the ability to connect to the servers remotely.
+Client nodes provide the whole set of Ignite APIs, including near caching, transactions, compute, streaming, services, etc. from the client side.
+
+By default, all Ignite nodes are started as server nodes, and you should explicitly enable the client mode.
 
 //You can start a node by running the `ignite.sh` script.
 
 :javaFile: {javaCodeDir}/IgniteLifecycle.java
+:csharpFile: {csharpCodeDir}/IgniteLifecycle.cs
 
 == Starting Server Nodes
 
@@ -27,7 +34,7 @@ tab:Java[]
 include::{javaFile}[tag=start,indent=0]
 ----
 
-`Ignite` is an `AutoCloseable` object. You can use the _try-with-resource_ statement to automatically close it:
+`Ignite` is an `AutoCloseable` object. You can use the _try-with-resource_ statement to close it automatically:
 
 [source, java]
 -------------------------------------------------------------------------------
@@ -35,12 +42,23 @@ include::{javaFile}[tags=autoclose,indent=0]
 -------------------------------------------------------------------------------
 
 tab:C#/.NET[]
+[source, csharp]
+----
+include::{csharpFile}[tag=start,indent=0]
+----
+
+`Ignite` is an `IDisposable` object. You can use the _using_ statement to close it automatically:
+
+[source, csharp]
+-------------------------------------------------------------------------------
+include::{csharpFile}[tags=disposable,indent=0]
+-------------------------------------------------------------------------------
 tab:C++[]
 --
 
 == Starting Client Nodes
 
-To start a client node, simply enable the client mode in the node's configuration:
+To start a client node, simply enable the client mode in the node configuration:
 
 [tabs]
 --
@@ -57,9 +75,36 @@ include::{javaFile}[tag=client-node,indent=0]
 ----
 
 tab:C#/.NET[]
+[source,csharp]
+----
+include::{csharpFile}[tag=start-client,indent=0]
+----
 tab:C++[]
 --
 
+Alternatively, for convenience, you can also enable or disable the client mode though the Ignition class to allow clients and servers to reuse the same configuration.
+
+
+[tabs]
+--
+tab:Java[]
+
+[source,java]
+----
+include::{javaCodeDir}/ClusteringOverview.java[tag=clientModeIgnition,indent=0]
+----
+
+tab:C#/.NET[]
+
+[source,csharp]
+----
+include::code-snippets/dotnet/ClusteringOverview.cs[tag=ClientsAndServers,indent=0]
+----
+
+tab:C++[unsupported]
+
+--
+
 == Shutting Down Nodes
 
 When you perform a hard (forced) shutdown on a node, it can lead to data loss or data inconsistency and can even prevent the node from restarting.
@@ -79,12 +124,7 @@ If you start the node by running `ignite.sh` and don't detach it from the termin
 //end::stop-commands[]
 . Remove the node from the link:developers-guide/baseline-topology[baseline topology]. This step may not be necessary if link:developers-guide/baseline-topology#baseline-topology-autoadjustment[baseline auto-adjustment] is enabled.
 
-////
-If you use these commands on a node that _is_ in the baseline topology,
-the node shuts down without waiting for the completion of the rebalancing process.
-You can set the `IGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN` system property to `true` if you want to wait for backup partitions to be moved to other nodes before the shutdown.
-See the <<Preventing Partition Loss on Shutdown,next section>> for details.
-////
+
 
 Removing the node from the baseline topology starts the rebalancing process on the remaining nodes.
 If you plan to restart the node shortly after shutdown, you don't have to do the rebalancing.
@@ -158,3 +198,50 @@ You can also pass JVM options by using the `-J` prefix:
 ----
 ./ignite.sh -J-Xmx6G -J-DIGNITE_TO_STRING_INCLUDE_SENSITIVE=false
 ----
+== Node Lifecycle Events
+
+
+Lifecycle events give you an opportunity to execute custom code at different stages of the node lifecycle.
+
+There are 4 lifecycle events:
+
+[cols="1,3",opts="header"]
+|===
+|Event Type |  Description
+|BEFORE_NODE_START |  Invoked before the node's startup routine is initiated.
+|AFTER_NODE_START  |  Invoked right after then node has started.
+|BEFORE_NODE_STOP |    Invoked right before the node's stop routine is initiated.
+|AFTER_NODE_STOP | Invoked right after then node has stopped.
+
+|===
+
+The following steps describe how to add a custom lifecycle event listener.
+
+. Create a custom lifecycle bean by implementing the `LifecycleBean` interface.
+The interface has the `onLifecycleEvent()` method, which is called for any lifecycle event.
++
+[source, java]
+----
+include::{javaFile}[tags=bean, indent=0]
+----
+
+. Register the implementation in the node configuration.
++
+[tabs]
+--
+tab:XML[]
+
+[source, xml]
+----
+include::code-snippets/xml/lifecycle.xml[tags=ignite-config;!discovery, indent=0]
+----
+tab:Java[]
+[source, java]
+----
+include::{javafile}[tags=lifecycle, indent=0]
+----
+
+tab:C#/.NET[]
+tab:C++[]
+--
+
diff --git a/docs/_docs/images/cache_table.png b/docs/_docs/images/cache_table.png
new file mode 100644
index 0000000..383502d
Binary files /dev/null and b/docs/_docs/images/cache_table.png differ
diff --git a/docs/_docs/images/checkpointing-persistence.png b/docs/_docs/images/checkpointing-persistence.png
new file mode 100644
index 0000000..887301a
Binary files /dev/null and b/docs/_docs/images/checkpointing-persistence.png differ
diff --git a/docs/_docs/images/client-to-aws.png b/docs/_docs/images/client-to-aws.png
new file mode 100644
index 0000000..8694dd5
Binary files /dev/null and b/docs/_docs/images/client-to-aws.png differ
diff --git a/docs/_docs/images/collocated_joins.png b/docs/_docs/images/collocated_joins.png
new file mode 100644
index 0000000..6568f9d
Binary files /dev/null and b/docs/_docs/images/collocated_joins.png differ
diff --git a/docs/_docs/images/defragmented.png b/docs/_docs/images/defragmented.png
new file mode 100644
index 0000000..1079cfa
Binary files /dev/null and b/docs/_docs/images/defragmented.png differ
diff --git a/docs/_docs/images/durable-memory-diagram.png b/docs/_docs/images/durable-memory-diagram.png
new file mode 100644
index 0000000..0ee572a
Binary files /dev/null and b/docs/_docs/images/durable-memory-diagram.png differ
diff --git a/docs/_docs/images/durable-memory-overview.png b/docs/_docs/images/durable-memory-overview.png
new file mode 100644
index 0000000..e329e53
Binary files /dev/null and b/docs/_docs/images/durable-memory-overview.png differ
diff --git a/docs/_docs/images/fragmented.png b/docs/_docs/images/fragmented.png
new file mode 100644
index 0000000..01a5488
Binary files /dev/null and b/docs/_docs/images/fragmented.png differ
diff --git a/docs/_docs/images/k8s/aks-node-number.png b/docs/_docs/images/k8s/aks-node-number.png
new file mode 100644
index 0000000..9959e28
Binary files /dev/null and b/docs/_docs/images/k8s/aks-node-number.png differ
diff --git a/docs/_docs/images/k8s/create-aks-cluster.png b/docs/_docs/images/k8s/create-aks-cluster.png
new file mode 100644
index 0000000..1581c74
Binary files /dev/null and b/docs/_docs/images/k8s/create-aks-cluster.png differ
diff --git a/docs/_docs/images/memory-segment.png b/docs/_docs/images/memory-segment.png
new file mode 100644
index 0000000..d127bf1
Binary files /dev/null and b/docs/_docs/images/memory-segment.png differ
diff --git a/docs/_docs/images/off_heap_memory_eviction.png b/docs/_docs/images/off_heap_memory_eviction.png
new file mode 100644
index 0000000..25b9b8e
Binary files /dev/null and b/docs/_docs/images/off_heap_memory_eviction.png differ
diff --git a/docs/_docs/images/partitioning.png b/docs/_docs/images/partitioning.png
new file mode 100644
index 0000000..bf4cd04
Binary files /dev/null and b/docs/_docs/images/partitioning.png differ
diff --git a/docs/_docs/images/persistent_store_structure.png b/docs/_docs/images/persistent_store_structure.png
new file mode 100644
index 0000000..02d7b3e
Binary files /dev/null and b/docs/_docs/images/persistent_store_structure.png differ
diff --git a/docs/_docs/installation-guide/deb-rpm.adoc b/docs/_docs/installation-guide/deb-rpm.adoc
new file mode 100644
index 0000000..5981551
--- /dev/null
+++ b/docs/_docs/installation-guide/deb-rpm.adoc
@@ -0,0 +1,17 @@
+= Installing using DEP and RPM package
+
+Apache Ignite can be installed from the official link:https://www.apache.org/dist/ignite/rpm[RPM] or link:https://www.apache.org/dist/ignite/deb[DEB] repositories.
+
+== Configuring Repositories
+
+Configure Apache Ignite's RPM or DEB repository, as follows (accept ​the ​GPG key import prompt if required), including specific Linux distribution settings:
+
+
+.Debian
+[source, shell]
+----
+# Install dirmngr (if not already installed) for apt-key ability to retrieve remote GPG keys
+sudo apt update
+sudo apt install dirmngr --no-install-recommends
+----
+
diff --git a/docs/_docs/installation-guide/kubernetes/amazon-eks-deployment.adoc b/docs/_docs/installation-guide/kubernetes/amazon-eks-deployment.adoc
index b52636e..5bc2e30 100644
--- a/docs/_docs/installation-guide/kubernetes/amazon-eks-deployment.adoc
+++ b/docs/_docs/installation-guide/kubernetes/amazon-eks-deployment.adoc
@@ -2,9 +2,9 @@
 :command: kubectl
 :soft_name: Kubernetes
 :serviceName: Amazon EKS
-:configDir: /code-snippets/k8s
-:script: /code-snippets/k8s/setup.sh
-:javaFile: /{javaCodeDir}/k8s/K8s.java
+:configDir: ../../code-snippets/k8s
+:script: ../../code-snippets/k8s/setup.sh
+:javaFile: ../../{javaCodeDir}/k8s/K8s.java
 
 
 This page is a step-by-step guide on how to deploy an Ignite cluster on Amazon EKS.
diff --git a/docs/_docs/installation-guide/kubernetes/azure-deployment.adoc b/docs/_docs/installation-guide/kubernetes/azure-deployment.adoc
index 47fcfa2..7be98d0 100644
--- a/docs/_docs/installation-guide/kubernetes/azure-deployment.adoc
+++ b/docs/_docs/installation-guide/kubernetes/azure-deployment.adoc
@@ -3,9 +3,9 @@
 :serviceName: AKS
 :soft_name: Kubernetes
 :command: kubectl
-:configDir: /code-snippets/k8s
-:script: /code-snippets/k8s/setup.sh
-:javaFile: {javaCodeDir}/k8s/K8s.java
+:configDir: ../../code-snippets/k8s
+:script: ../../code-snippets/k8s/setup.sh
+:javaFile: ../../{javaCodeDir}/k8s/K8s.java
 
 This page is a step-by-step guide on how to deploy an Ignite  cluster on Microsoft Azure Kubernetes Service.
 
diff --git a/docs/_docs/installation-guide/kubernetes/generic-configuration.adoc b/docs/_docs/installation-guide/kubernetes/generic-configuration.adoc
index c4d47d2..c7190b3 100644
--- a/docs/_docs/installation-guide/kubernetes/generic-configuration.adoc
+++ b/docs/_docs/installation-guide/kubernetes/generic-configuration.adoc
@@ -2,12 +2,13 @@
 published: false
 ---
 = Generic Kubernetes Instruction
+:safe: unsafe
 :command: kubectl
 :soft_name: Kubernetes
 :serviceName:
-:configDir: /code-snippets/k8s
-:script: /code-snippets/k8s/setup.sh
-javaFile: /{javaCodeDir}/k8s/K8s.java
+//:configDir: /code-snippets/k8s
+//:script: /code-snippets/k8s/setup.sh
+//javaFile: /{javaCodeDir}/k8s/K8s.java
 
 
 //tag::kube-version[]
@@ -35,7 +36,6 @@ CAUTION: This guide focuses on deploying server nodes on Kubernetes. If you want
 * A namespace
 * A cluster role
 * A ConfigMap for the node configuration file
-* A ConfigMap for the license file if you use Enterprise or Ultimate Edition
 * A service to be used for discovery and load balancing when external apps connect to the cluster
 * A configuration for pods running Ignite nodes
 
diff --git a/docs/_docs/installation-guide/kubernetes/gke-deployment.adoc b/docs/_docs/installation-guide/kubernetes/gke-deployment.adoc
index 671e0e5..45ffba8 100644
--- a/docs/_docs/installation-guide/kubernetes/gke-deployment.adoc
+++ b/docs/_docs/installation-guide/kubernetes/gke-deployment.adoc
@@ -3,9 +3,9 @@
 :serviceName: GKE
 :soft_name: Kubernetes
 :command: kubectl
-:configDir: /code-snippets/k8s
-:script: /code-snippets/k8s/setup.sh
-:javaFile: {javaCodeDir}/k8s/K8s.java
+:configDir: ../../code-snippets/k8s
+:script: ../../code-snippets/k8s/setup.sh
+:javaFile: ../../{javaCodeDir}/k8s/K8s.java
 
 
 This page explains how to deploy an Ignite  cluster on Google Kubernetes Engine.
diff --git a/docs/_includes/left-nav.html b/docs/_includes/left-nav.html
index 08aa121..919636a 100644
--- a/docs/_includes/left-nav.html
+++ b/docs/_includes/left-nav.html
@@ -1,5 +1,6 @@
 
-{% assign normalized_path = page.url | replace: ".html","" | remove_first: site.base_url %}
+{% assign prefix = site.attrs.base_url | append: "/" | append: site.attrs.version %}
+{% assign normalized_path = page.url | replace: ".html","" | remove_first: prefix %}
 {% if page.toc != false %}
 <nav class='left-nav' data-swiftype-index='false'>
 
@@ -35,11 +36,11 @@
                                      {% assign chapter_class = 'expanded' %}
                                   {% endif %}
 
-								  <li><a href="{{site.base_url}}{{subpage.url}}" class='{% if normalized_path == subpage.url %}active{% endif %}'>{{subpage.title}}</a></li>
+								  <li><a href="{{prefix}}/{{subpage.url}}" class='{% if normalized_path == subpage.url %}active{% endif %}'>{{subpage.title}}</a></li>
                             {% endfor %}
                             </nav>
                         {% else %}
-                            <a href="{{site.base_url}}{{chapter.url|relative_url}}"
+                            <a href="{{prefix}}{{chapter.url|relative_url}}"
 
                                 class='{% if normalized_path == chapter.url %}active{% endif %}'
                             >{{chapter.title}}</a>
@@ -55,7 +56,7 @@
              </nav>   
             {% else %}
 
-            <a href="{{site.base_url}}{{guide.url|relative_url}}" class='{% if guide.url == normalized_path %}active{% endif %}' >{{guide.title}}</a>
+            <a href="{{prefix}}{{guide.url|relative_url}}" class='{% if guide.url == normalized_path %}active{% endif %}' >{{guide.title}}</a>
             {% endif %}
         </li>
     {% endfor %}
diff --git a/docs/_includes/section-toc.html b/docs/_includes/section-toc.html
index f361b38..f8fd86f 100644
--- a/docs/_includes/section-toc.html
+++ b/docs/_includes/section-toc.html
@@ -1,13 +1,13 @@
 {% assign s = include.section %}
 
 {% if include.title %}
-<a {% if s.url %} href="{{site.base_url}}{{s.url}}" {% endif %}>{{s.title}}</a>
+<a {% if s.url %} href="{{site.attrs.base_url}}/{{site.attrs.version}}/{{s.url}}" {% endif %}>{{s.title}}</a>
 {% endif %}
 
 {% if s.items %}
     <ul class='sub_pages'>
     {% for subpage in s.items %}
-        <li><a href="{{site.base_url}}{{subpage.url}}" class=''>{{subpage.title}}</a></li>
+        <li><a href="{{site.attrs.base_url}}/{{site.attrs.version}}/{{subpage.url}}" class=''>{{subpage.title}}</a></li>
     {% endfor %}
     </ul>
 {% endif %}
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
index a514329f..e100b9d 100644
--- a/docs/_layouts/default.html
+++ b/docs/_layouts/default.html
@@ -21,7 +21,7 @@
 
     <meta charset="UTF-8">
     <title>{{page.title}} | Ignite Documentation</title>
-    {% if site.base_url contains "/latest" %}
+    {% if site.attrs.base_url contains "/latest" %}
     <link rel="canonical" href="{{page.id | replace_first: site.version, 'latest' }}" />
     {% else %}
     <link rel="canonical" href="{{page.id}}" />
diff --git a/docs/_plugins/asciidoctor-extensions.rb b/docs/_plugins/asciidoctor-extensions.rb
index b90fd35..d605e93 100644
--- a/docs/_plugins/asciidoctor-extensions.rb
+++ b/docs/_plugins/asciidoctor-extensions.rb
@@ -81,8 +81,8 @@ Extensions.register do
 #     end
      
 
-    base_url = parent.document.attributes['base_url'] 
-
+#    print parent.document.attributes
+    base_url = parent.document.attributes['base_url'] + '/' + parent.document.attributes['version']
    
      if (text = attrs['text']).empty?
        text = target
diff --git a/docs/run.sh b/docs/run.sh
index 1fd2054..6c4d154 100755
--- a/docs/run.sh
+++ b/docs/run.sh
@@ -1,8 +1,7 @@
 #!/bin/bash
 
-version=1.0.0
 
 rm -rf _site
 rm -rf .jekyll-cache
 
-bundle exec jekyll s -q -I 
+bundle exec jekyll s -I --trace