You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/10/27 05:18:28 UTC

[1/2] ignite git commit: IGNITE-1200 Code generation of IGFS caches.

Repository: ignite
Updated Branches:
  refs/heads/ignite-843-rc1 8b9a57148 -> 0ebd7a567


IGNITE-1200 Code generation of IGFS caches.


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

Branch: refs/heads/ignite-843-rc1
Commit: ccbb34ad546faf1d2648e43e688f004cc1dcecf9
Parents: 31c502b
Author: vsisko <vs...@gridgain.com>
Authored: Tue Oct 27 11:18:14 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Tue Oct 27 11:18:14 2015 +0700

----------------------------------------------------------------------
 .../main/js/controllers/caches-controller.js    |  2 ++
 .../src/main/js/controllers/igfs-controller.js  | 11 +++-------
 .../src/main/js/controllers/models/caches.json  | 12 +++++++++++
 .../src/main/js/controllers/models/igfs.json    | 14 +++++++++++++
 modules/control-center-web/src/main/js/db.js    |  3 +++
 .../js/routes/generator/generator-common.js     | 22 ++++++++++++++++++++
 .../main/js/routes/generator/generator-java.js  | 19 +++++++++++------
 .../main/js/routes/generator/generator-xml.js   | 17 +++++++++++----
 8 files changed, 82 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/controllers/caches-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/caches-controller.js b/modules/control-center-web/src/main/js/controllers/caches-controller.js
index 5152c13..8abe83e 100644
--- a/modules/control-center-web/src/main/js/controllers/caches-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/caches-controller.js
@@ -74,6 +74,8 @@ consoleModule.controller('cachesController', [
 
             $scope.atomicWriteOrderModes = $common.mkOptions(['CLOCK', 'PRIMARY']);
 
+            $scope.writeSynchronizationMode = $common.mkOptions(['FULL_SYNC', 'FULL_ASYNC', 'PRIMARY_SYNC']);
+
             $scope.memoryModes = $common.mkOptions(['ONHEAP_TIERED', 'OFFHEAP_TIERED', 'OFFHEAP_VALUES']);
 
             $scope.evictionPolicies = [

http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/controllers/igfs-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/igfs-controller.js b/modules/control-center-web/src/main/js/controllers/igfs-controller.js
index c8855b7..b201cdf 100644
--- a/modules/control-center-web/src/main/js/controllers/igfs-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/igfs-controller.js
@@ -93,14 +93,6 @@ consoleModule.controller('igfsController', [
                 misc: {xml: '', java: '', allDefaults: true}
             };
 
-            $scope.required = function (field) {
-                return false;
-            };
-
-            $scope.tableSimpleValid = function (item, field, fx, index) {
-                return true;
-            };
-
             $scope.tablePairValid = function (item, field, index) {
                 return true;
             };
@@ -250,6 +242,9 @@ consoleModule.controller('igfsController', [
                 if ($common.isEmptyString(item.name))
                     return showPopoverMessage($scope.panels, 'general', 'igfsName', 'Name should not be empty');
 
+                if (!item.affinnityGroupSize || item.affinnityGroupSize < 1)
+                    return showPopoverMessage($scope.panels, 'general', 'affinnityGroupSize', 'Group size should be specified and more or equal to 1');
+
                 if (!$common.isEmptyString(item.dualModePutExecutorService) &&
                     !$common.isValidJavaClass('Put executor service', item.dualModePutExecutorService, false, 'dualModePutExecutorService', false, $scope.panels, 'dualMode'))
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/controllers/models/caches.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/models/caches.json b/modules/control-center-web/src/main/js/controllers/models/caches.json
index 93a6ef3..133ecbf 100644
--- a/modules/control-center-web/src/main/js/controllers/models/caches.json
+++ b/modules/control-center-web/src/main/js/controllers/models/caches.json
@@ -736,6 +736,18 @@
             "  <li>PRIMARY - in this mode version is assigned only on primary node. This means that sender will only send write request to primary node, which in turn will assign write version and forward it to backups</li>",
             "</ul>"
           ]
+        },
+        {
+          "label": "Write synchronization mode",
+          "id": "writeSynchronizationMode",
+          "type": "dropdown",
+          "model": "writeSynchronizationMode",
+          "placeholder": "Choose write synchronization mode",
+          "items": "writeSynchronizationMode",
+          "tip": [
+            "Write synchronization mode",
+            "This mode controls whether the main caller should wait for update on other nodes to complete or not"
+          ]
         }
       ]
     },

http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/controllers/models/igfs.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/models/igfs.json b/modules/control-center-web/src/main/js/controllers/models/igfs.json
index a22b720..6d1ad1c 100644
--- a/modules/control-center-web/src/main/js/controllers/models/igfs.json
+++ b/modules/control-center-web/src/main/js/controllers/models/igfs.json
@@ -50,6 +50,19 @@
             "label": "Add cluster(s)",
             "ref": "/configuration/clusters?new"
           }
+        },
+        {
+          "label": "Group size",
+          "id": "affinnityGroupSize",
+          "type": "number",
+          "model": "affinnityGroupSize",
+          "required": true,
+          "placeholder": "512",
+          "min": 1,
+          "tip": [
+            "Size of the group in blocks",
+            "Required for construction of affinity mapper in IGFS data cache"
+          ]
         }
       ]
     }
@@ -213,6 +226,7 @@
           "id": "dualModePutExecutorServiceShutdown",
           "type": "check",
           "model": "dualModePutExecutorServiceShutdown",
+          "placeholder": "Enter fully qualified class name",
           "tip": [
             "DUAL mode put operation executor service shutdown flag"
           ]

http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/db.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/db.js b/modules/control-center-web/src/main/js/db.js
index f9cacb4..eecc34c 100644
--- a/modules/control-center-web/src/main/js/db.js
+++ b/modules/control-center-web/src/main/js/db.js
@@ -173,6 +173,8 @@ var CacheSchema = new Schema({
 
     invalidate: Boolean,
     defaultLockTimeout: Number,
+    atomicWriteOrderMode: {type: String, enum: ['CLOCK', 'PRIMARY']},
+    writeSynchronizationMode: {type: String, enum: ['FULL_SYNC', 'FULL_ASYNC', 'PRIMARY_SYNC']},
 
     sqlEscapeAll: Boolean,
     sqlOnheapRowCacheSize: Number,
@@ -223,6 +225,7 @@ var IgfsSchema = new Schema({
     space: {type: ObjectId, ref: 'Space'},
     name: String,
     clusters: [{type: ObjectId, ref: 'Cluster'}],
+    affinnityGroupSize: Number,
     blockSize: Number,
     streamBufferSize: Number,
     dataCacheName: String,

http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/routes/generator/generator-common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-common.js b/modules/control-center-web/src/main/js/routes/generator/generator-common.js
index 866ebbd..d9dc14e 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-common.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-common.js
@@ -242,6 +242,28 @@ $generatorCommon.jdbcDialectClassName = function(db) {
     return dialectClsName ? dialectClsName : 'Unknown database: ' + db;
 };
 
+// Generate default data cache for specified igfs instance.
+$generatorCommon.igfsDataCache = function(igfs) {
+    return {
+        name: igfs.name + '-data',
+        cacheMode: 'PARTITIONED',
+        atomicityMode: 'TRANSACTIONAL',
+        writeSynchronizationMode: 'FULL_SYNC',
+        backups: 0,
+        igfsAffinnityGroupSize: igfs.affinnityGroupSize
+    };
+};
+
+// Generate default meta cache for specified igfs instance.
+$generatorCommon.igfsMetaCache = function(igfs) {
+    return {
+        name: igfs.name + '-meta',
+        cacheMode: 'REPLICATED',
+        atomicityMode: 'TRANSACTIONAL',
+        writeSynchronizationMode: 'FULL_SYNC'
+    };
+};
+
 // Pairs of supported databases and their data sources.
 $generatorCommon.DATA_SOURCES = {
     Oracle: 'oracle.jdbc.pool.OracleDataSource',

http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/routes/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-java.js b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
index f34dedc..9ec4a68 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
@@ -921,7 +921,8 @@ $generatorJava.cacheConcurrency = function (cache, varName, res) {
 
     $generatorJava.property(res, varName, cache, 'maxConcurrentAsyncOperations');
     $generatorJava.property(res, varName, cache, 'defaultLockTimeout');
-    $generatorJava.property(res, varName, cache, 'atomicWriteOrderMode');
+    $generatorJava.property(res, varName, cache, 'atomicWriteOrderMode', res.importClass('org.apache.ignite.cache.CacheAtomicWriteOrderMode'));
+    $generatorJava.property(res, varName, cache, 'writeSynchronizationMode', res.importClass('org.apache.ignite.cache.CacheWriteSynchronizationMode'));
 
     res.needEmptyLine = true;
 
@@ -945,6 +946,12 @@ $generatorJava.cacheRebalance = function (cache, varName, res) {
         res.needEmptyLine = true;
     }
 
+    if (cache.igfsAffinnityGroupSize) {
+        res.line(varName + '.setAffinityMapper(new ' + res.importClass('org.apache.ignite.igfs.IgfsGroupDataBlocksKeyMapper') + '(' + cache.igfsAffinnityGroupSize + '));');
+
+        res.needEmptyLine = true;
+    }
+
     return res;
 };
 
@@ -1224,8 +1231,8 @@ $generatorJava.clusterCaches = function (caches, igfss, res) {
         res.emptyLineIfNeeded();
 
         _.forEach(igfss, function (igfs) {
-            clusterCache(res, {name: igfs.name + '-data', cacheMode: 'PARTITIONED', atomicityMode: 'TRANSACTIONAL'}, names);
-            clusterCache(res, {name: igfs.name + '-meta', cacheMode: 'REPLICATED', atomicityMode: 'TRANSACTIONAL'}, names);
+            clusterCache(res, $generatorCommon.igfsDataCache(igfs), names);
+            clusterCache(res, $generatorCommon.igfsMetaCache(igfs), names);
         });
 
         res.needEmptyLine = true;
@@ -1606,8 +1613,8 @@ $generatorJava.igfsGeneral = function(igfs, varName, res) {
         res = $generatorCommon.builder();
 
     if ($commonUtils.isDefinedAndNotEmpty(igfs.name)) {
-        igfs.dataCacheName = igfs.name + '-data';
-        igfs.metaCacheName = igfs.name + '-meta';
+        igfs.dataCacheName = $generatorCommon.igfsDataCache(igfs).name;
+        igfs.metaCacheName = $generatorCommon.igfsMetaCache(igfs).name;
 
         $generatorJava.property(res, varName, igfs, 'name');
         $generatorJava.property(res, varName, igfs, 'dataCacheName');
@@ -1633,7 +1640,7 @@ $generatorJava.igfsMisc = function(igfs, varName, res) {
     if (igfs.pathModes && igfs.pathModes.length > 0) {
         res.needEmptyLine = true;
 
-        $generatorJava.declareVariable(res, true, 'pathModes', 'java.util.HashMap<String, ' + res.importClass('org.apache.ignite.igfs.IgfsMode') + '>');
+        $generatorJava.declareVariable(res, true, 'pathModes', 'java.util.Map', 'java.util.HashMap', 'String', 'org.apache.ignite.igfs.IgfsMode');
 
         _.forEach(igfs.pathModes, function (pair) {
             res.line('pathModes.put("' + pair.path + '", IgfsMode.' + pair.mode +');');

http://git-wip-us.apache.org/repos/asf/ignite/blob/ccbb34ad/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
index 1ba43ee..8f26676 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
@@ -767,6 +767,7 @@ $generatorXml.cacheConcurrency = function(cache, res) {
     $generatorXml.property(res, cache, 'maxConcurrentAsyncOperations');
     $generatorXml.property(res, cache, 'defaultLockTimeout');
     $generatorXml.property(res, cache, 'atomicWriteOrderMode');
+    $generatorXml.property(res, cache, 'writeSynchronizationMode');
 
     res.needEmptyLine = true;
 
@@ -790,6 +791,14 @@ $generatorXml.cacheRebalance = function(cache, res) {
         res.needEmptyLine = true;
     }
 
+    if (cache.igfsAffinnityGroupSize) {
+        res.startBlock('<property name="affinityMapper">');
+        res.startBlock('<bean class="org.apache.ignite.igfs.IgfsGroupDataBlocksKeyMapper">');
+        res.line('<constructor-arg value="' + cache.igfsAffinnityGroupSize + '"/>');
+        res.endBlock('</bean>');
+        res.endBlock('</property>');
+    }
+
     return res;
 };
 
@@ -1074,11 +1083,11 @@ $generatorXml.clusterCaches = function(caches, igfss, res) {
         });
 
         _.forEach(igfss, function(igfs) {
-            $generatorXml.cache({name: igfs.name + '-data', cacheMode: 'PARTITIONED', atomicityMode: 'TRANSACTIONAL'}, res);
+            $generatorXml.cache($generatorCommon.igfsDataCache(igfs), res);
 
             res.needEmptyLine = true;
 
-            $generatorXml.cache({name: igfs.name + '-meta', cacheMode: 'REPLICATED', atomicityMode: 'TRANSACTIONAL'}, res);
+            $generatorXml.cache($generatorCommon.igfsMetaCache(igfs), res);
 
             res.needEmptyLine = true;
         });
@@ -1177,8 +1186,8 @@ $generatorXml.igfsGeneral = function(igfs, res) {
         res = $generatorCommon.builder();
 
     if ($commonUtils.isDefinedAndNotEmpty(igfs.name)) {
-        igfs.dataCacheName = igfs.name + '-data';
-        igfs.metaCacheName = igfs.name + '-meta';
+        igfs.dataCacheName = $generatorCommon.igfsDataCache(igfs).name;
+        igfs.metaCacheName = $generatorCommon.igfsMetaCache(igfs).name;
 
         $generatorXml.property(res, igfs, 'name');
         $generatorXml.property(res, igfs, 'dataCacheName');


[2/2] ignite git commit: Merge remote-tracking branch 'origin/ignite-843-rc1' into ignite-843-rc1

Posted by ak...@apache.org.
Merge remote-tracking branch 'origin/ignite-843-rc1' into ignite-843-rc1


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

Branch: refs/heads/ignite-843-rc1
Commit: 0ebd7a5676af1aa7d977c87271a1c95636c247a0
Parents: ccbb34a 8b9a571
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Tue Oct 27 11:18:33 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Tue Oct 27 11:18:33 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/public/stylesheets/style.scss   | 25 ++++++++++++++------
 .../src/main/js/views/includes/controls.jade    |  2 +-
 2 files changed, 19 insertions(+), 8 deletions(-)
----------------------------------------------------------------------