Repository: ignite
Updated Branches:
  refs/heads/ignite-10639 52671649a -> d463e6ff0


IGNITE-10639 Proof of concept for internal description for packages: Speed 
based throttling.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d463e6ff
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d463e6ff
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d463e6ff

Branch: refs/heads/ignite-10639
Commit: d463e6ff0cdf42957201bc4de78ea9761b1f42cf
Parents: 5267164
Author: Dmitriy Pavlov <[email protected]>
Authored: Tue Dec 11 15:06:10 2018 +0300
Committer: Dmitriy Pavlov <[email protected]>
Committed: Tue Dec 11 15:06:10 2018 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/package-info.java    |  4 +-
 .../cache/persistence/pagemem/README.md         | 18 ++++++
 .../cache/persistence/pagemem/package-info.java | 30 ++++++++++
 modules/direct-io/README.md                     | 62 ++++++++++++++++++++
 modules/direct-io/src/README.md                 | 62 --------------------
 5 files changed, 113 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d463e6ff/modules/core/src/main/java/org/apache/ignite/internal/package-info.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/package-info.java 
b/modules/core/src/main/java/org/apache/ignite/internal/package-info.java
index d488e32..9d4c786 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/package-info.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/package-info.java
@@ -17,6 +17,8 @@
 
 /**
  * <!-- Package description. -->
- * Contains main implementation.
+ * Contains main implementation. All classes and interfaces are not public API.
+ * API Compatibility is not maintained.
+ *
  */
 package org.apache.ignite.internal;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/d463e6ff/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md
new file mode 100644
index 0000000..16692ff
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md
@@ -0,0 +1,18 @@
+
+Speed Based Throttling
+----------------------
+
+If throttling is enabled in User configuration then Speed based throttlign is 
applied.
+
+Speed based throttling is implemented by
+[PagesWriteSpeedBasedThrottle.java](PagesWriteSpeedBasedThrottle.java)
+
+This approach estimates current number of page written and pages to be written.
+
+<img 
src="https://docs.google.com/drawings/d/e/2PACX-1vT1u2fuSdIItg67J02ukUGx3cY1tc9B-eebRSa0Hu4zwzkzpJdNSmSCpRD1EmGhYTCxa-kYqSDKOt-v/pub?w=425&amp;h=589";>
+
+
+From source data remained estimated time of checkpoint is calculated. Then we 
apply this time estimation to our progress of marking pages as dirty.
+
+<img 
src="https://docs.google.com/drawings/d/e/2PACX-1vTr9mhBts4rLzoqcRWOy78qPEL2UHMaJLIXGu4_1TlinbdLdtz5aGbhPMzy4uxLWup8dZdDsnZeOUxR/pub?w=441&amp;h=575";>
+

http://git-wip-us.apache.org/repos/asf/ignite/blob/d463e6ff/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/package-info.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/package-info.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/package-info.java
new file mode 100644
index 0000000..7697969
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/package-info.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This package contains page memory implementation for case persitence is 
enabled.
+ * Contained clasees with <ul>
+ *  <li>Page Memory implementation {@link 
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl}.</li>
+ *  <li>Page write throttling.</li>
+ *  <li>Mapping of full Page IDs to place in memory segment.</li>
+ *  <li>Pages replacement with disk.</li>
+ * </ul>
+ *
+ * See also
+ * <a 
href="https://github.com/apache/ignite/tree/master/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem";>Package
 description</a>
+ */
+package org.apache.ignite.internal.processors.cache.persistence.pagemem;

http://git-wip-us.apache.org/repos/asf/ignite/blob/d463e6ff/modules/direct-io/README.md
----------------------------------------------------------------------
diff --git a/modules/direct-io/README.md b/modules/direct-io/README.md
new file mode 100644
index 0000000..1bbd22d
--- /dev/null
+++ b/modules/direct-io/README.md
@@ -0,0 +1,62 @@
+Apache Ignite Direct IO Module
+------------------------------
+
+Apache Ignite Direct IO is plugin, which provides page store with ability to 
write and read cache partitions
+in O_DIRECT mode.
+
+
+OS gets the data and stores it in a file buffer cache (Page Cache).
+
+<!-- To edit picture please use
+https://docs.google.com/drawings/d/19xXbaWC2F2EBcd7F0T9wJ7wZO3DDR0PFR0tBqqIXjUI/edit?usp=sharing
+-->
+<img 
src="https://docs.google.com/drawings/d/e/2PACX-1vQBR0OoKFeQ1AOMyDK9QoQEBLDs4kbs7EY6Ed48HnRjlM0J1Ao3g_glD7AR3KZRtUcAVL6hQut6IPVw/pub?w=638&amp;h=499";>
+
+Similarly, for every write operation,
+the OS first writes the data in a cache and then transfers to the disk. To 
eliminate this process you can enable
+Direct I/O in which case the data is read and written directly from/to the 
disk bypassing the file buffer cache.
+
+Direct I/O plugin in Ignite is used for the checkpointing process where the 
dirty pages in RAM are written to the disk.
+
+Importing Direct I/O Pluging In Maven Project
+-------------------------------------
+
+If you are using Maven to manage dependencies of your project, you can add 
Direct IO Module
+dependency like this (replace '${ignite.version}' with actual Ignite version 
you are
+interested in):
+
+```xml
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    ...
+    <dependencies>
+        ...
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-direct-io</artifactId>
+            <version>${ignite.version}</version>
+        </dependency>
+        ...
+    </dependencies>
+    ...
+</project>
+```
+
+Importing Direct I/O Pluging In Gradle Project
+-------------------------------------
+For gradle you can add compile dependency, where igniteVersion is actual 
Ignite version:
+
+```groovy
+compile group: 'org.apache.ignite', name: 'ignite-direct-io', version: 
igniteVersion
+```
+
+Additional setup is not required. Once plugin is available in classpath, it 
will be used for Durable Memory IO.
+
+-------------------------------------
+See more information in Apache Ignite documentation:
+https://apacheignite.readme.io/docs/durable-memory-tuning#section-enabling-direct-i-o
+
+and description of internal desing can be found in Wiki:
+https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood#IgnitePersistentStore-underthehood-DirectI/O

http://git-wip-us.apache.org/repos/asf/ignite/blob/d463e6ff/modules/direct-io/src/README.md
----------------------------------------------------------------------
diff --git a/modules/direct-io/src/README.md b/modules/direct-io/src/README.md
deleted file mode 100644
index 1bbd22d..0000000
--- a/modules/direct-io/src/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
-Apache Ignite Direct IO Module
-------------------------------
-
-Apache Ignite Direct IO is plugin, which provides page store with ability to 
write and read cache partitions
-in O_DIRECT mode.
-
-
-OS gets the data and stores it in a file buffer cache (Page Cache).
-
-<!-- To edit picture please use
-https://docs.google.com/drawings/d/19xXbaWC2F2EBcd7F0T9wJ7wZO3DDR0PFR0tBqqIXjUI/edit?usp=sharing
--->
-<img 
src="https://docs.google.com/drawings/d/e/2PACX-1vQBR0OoKFeQ1AOMyDK9QoQEBLDs4kbs7EY6Ed48HnRjlM0J1Ao3g_glD7AR3KZRtUcAVL6hQut6IPVw/pub?w=638&amp;h=499";>
-
-Similarly, for every write operation,
-the OS first writes the data in a cache and then transfers to the disk. To 
eliminate this process you can enable
-Direct I/O in which case the data is read and written directly from/to the 
disk bypassing the file buffer cache.
-
-Direct I/O plugin in Ignite is used for the checkpointing process where the 
dirty pages in RAM are written to the disk.
-
-Importing Direct I/O Pluging In Maven Project
--------------------------------------
-
-If you are using Maven to manage dependencies of your project, you can add 
Direct IO Module
-dependency like this (replace '${ignite.version}' with actual Ignite version 
you are
-interested in):
-
-```xml
-<project xmlns="http://maven.apache.org/POM/4.0.0";
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
-                        http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    ...
-    <dependencies>
-        ...
-        <dependency>
-            <groupId>org.apache.ignite</groupId>
-            <artifactId>ignite-direct-io</artifactId>
-            <version>${ignite.version}</version>
-        </dependency>
-        ...
-    </dependencies>
-    ...
-</project>
-```
-
-Importing Direct I/O Pluging In Gradle Project
--------------------------------------
-For gradle you can add compile dependency, where igniteVersion is actual 
Ignite version:
-
-```groovy
-compile group: 'org.apache.ignite', name: 'ignite-direct-io', version: 
igniteVersion
-```
-
-Additional setup is not required. Once plugin is available in classpath, it 
will be used for Durable Memory IO.
-
--------------------------------------
-See more information in Apache Ignite documentation:
-https://apacheignite.readme.io/docs/durable-memory-tuning#section-enabling-direct-i-o
-
-and description of internal desing can be found in Wiki:
-https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood#IgnitePersistentStore-underthehood-DirectI/O

Reply via email to