changeset 318:5c4f8a7b4468

minor change
author tatsuki
date Fri, 03 Feb 2017 03:55:43 +0900
parents d6b81870216b
children b606b727dc2b
files src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/index/CreateIndexBenchMark.java src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/tree/CreateListTreeBenchMark.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/manager/DefaultTransactionManager.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/core/NetworkDefaultJungle.java
diffstat 4 files changed, 69 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/index/CreateIndexBenchMark.java	Wed Feb 01 04:04:17 2017 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/index/CreateIndexBenchMark.java	Fri Feb 03 03:55:43 2017 +0900
@@ -8,16 +8,23 @@
 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.RedBlackTreeNodePath;
 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Error.Error;
+
+import java.nio.ByteBuffer;
+
+import static java.lang.Thread.sleep;
 
 /**
  * Created by e115731 on 2016/12/30.
  */
 public class CreateIndexBenchMark {
-    public static void main(String args[]) {
+    public static void main(String args[]) throws InterruptedException {
         if (args.length == 0) {
             System.out.println("args default or difference");
             System.exit(0);
         }
+
         if (args[0].equals("default")) {
             System.out.println("create default tree");
         } else {
@@ -26,17 +33,17 @@
 
         String key = "key";
         String indexKey = "indexKey";
-
-        for (int i = 0; i <= 3000; ) {
+        warmUp();
+        for (int i = 0; i <= 1000; ) {
             Jungle jungle = new DefaultJungle(null, "hogehoge");
             Long t1 = System.currentTimeMillis();
             JungleTree tree;
             NodePath path;
             if (args[0].equals("default")) {
-                tree = jungle.createNewTree("Tree" + i);
+                tree = jungle.createNewTree("Tree");
                 path = new DefaultNodePath();
             } else {
-                tree = jungle.createNewRedBlackTree("Tree" + i, key);
+                tree = jungle.createNewRedBlackTree("Tree", key);
                 path = new RedBlackTreeNodePath();
             }
             JungleTreeEditor editor = tree.getJungleTreeEditor();
@@ -47,6 +54,19 @@
             System.out.println((i) + " " + (t2 - t1));
             i = i + 100;
             System.gc(); //GCしないとクソみたいに重くなる
+            sleep(1000);
         }
     }
+
+    private static void warmUp(){
+        Jungle jungle = new DefaultJungle(null, "hogehoge");
+        JungleTree tree = jungle.createNewDifferenceTree("Tree");
+        NodePath path = new DefaultNodePath();
+        JungleTreeEditor editor = tree.getJungleTreeEditor();
+        Either<Error, JungleTreeEditor> either = editor.putAttribute(path, "key", ByteBuffer.wrap("value".getBytes()));
+        if (either.isA())
+            return;
+        editor = either.b();
+        either = editor.success();
+    }
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/tree/CreateListTreeBenchMark.java	Wed Feb 01 04:04:17 2017 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/tree/CreateListTreeBenchMark.java	Fri Feb 03 03:55:43 2017 +0900
@@ -11,33 +11,45 @@
 
 import java.nio.ByteBuffer;
 
+import static java.lang.Thread.sleep;
+
 public class CreateListTreeBenchMark {
 
-    public static void main(String args[]) {
+    public static void main(String args[]) throws InterruptedException {
         if (args.length == 0) {
             System.out.println("args default or difference");
             System.exit(0);
         }
-
+        WarmUp(); //初めの一回がやたら遅いのでWarmUpさせる。
         if (args[0].equals("default"))
             defaultJungleTreeBenchMark();
-        else
-            if (args[0].equals("difference"))
-                DifferenceJungleTreeBenchMark();
-            else {
-                System.out.println("args default or difference");
-                System.exit(0);
-            }
+        else if (args[0].equals("difference"))
+            DifferenceJungleTreeBenchMark();
+        else {
+            System.out.println("args default or difference");
+            System.exit(0);
+        }
     }
 
-    private static void DifferenceJungleTreeBenchMark() {
+    private static void WarmUp(){
+        Jungle jungle = new DefaultJungle(null, "hogehoge");
+        JungleTree tree = jungle.createNewDifferenceTree("Tree");
+        NodePath path = new DefaultNodePath();
+        JungleTreeEditor editor = tree.getJungleTreeEditor();
+        Either<Error, JungleTreeEditor> either = editor.putAttribute(path, "key", ByteBuffer.wrap("value".getBytes()));
+        if (either.isA())
+            return;
+        editor = either.b();
+        either = editor.success();
+    }
+    private static void DifferenceJungleTreeBenchMark() throws InterruptedException {
         System.out.println("differencialTree");
-        for (int i = 1; i <= 150; i++) {
+        for (int i = 30; i <= 300; ) {
             Jungle jungle = new DefaultJungle(null, "hogehoge");
-            JungleTree tree = jungle.createNewDifferenceTree("Tree" + i);
+            JungleTree tree = jungle.createNewDifferenceTree("Tree");
             Long t1 = System.currentTimeMillis();
             NodePath path = new DefaultNodePath();
-            for (int j = 0; j < (1 * i); j++) {
+            for (int j = 0; j < i; j++) {
                 JungleTreeEditor editor = tree.getJungleTreeEditor();
                 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, "key", ByteBuffer.wrap("value".getBytes()));
                 if (either.isA())
@@ -48,21 +60,23 @@
                     return;
             }
             Long t2 = System.currentTimeMillis();
-            System.out.println((i * 1) + " " + (t2 - t1));
+            System.out.println(i + " " + (t2 - t1));
             System.gc();
+            sleep(1000);
+            i += 30;
         }
     }
 
-    private static void defaultJungleTreeBenchMark() {
+    private static void defaultJungleTreeBenchMark() throws InterruptedException {
         System.out.println("defaultTree");
-        for (int i = 1; i <= 150; i++) {
+        for (int i = 30; i <= 300; ) {
             Jungle jungle = new DefaultJungle(null, "hogehoge");
             JungleTree tree = jungle.createNewTree("Tree" + i);
             Long t1 = System.currentTimeMillis();
             NodePath path = new DefaultNodePath();
-            for (int j = 0; j < (1 * i); j++) {
+            for (int j = 0; j < i; j++) {
                 JungleTreeEditor editor = tree.getJungleTreeEditor();
-                Either<Error, JungleTreeEditor> either = editor.addNewChildAndPutAttribute(path, 0,"key", ByteBuffer.wrap("value".getBytes()));
+                Either<Error, JungleTreeEditor> either = editor.addNewChildAndPutAttribute(path, 0, "key", ByteBuffer.wrap("value".getBytes()));
                 if (either.isA())
                     return;
                 editor = either.b();
@@ -73,8 +87,10 @@
             }
 
             Long t2 = System.currentTimeMillis();
-            System.out.println((i * 1) + " " + (t2 - t1));
+            System.out.println(i + " " + (t2 - t1));
             System.gc();
+            sleep(1000);
+            i += 30;
         }
     }
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/manager/DefaultTransactionManager.java	Wed Feb 01 04:04:17 2017 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/manager/DefaultTransactionManager.java	Fri Feb 03 03:55:43 2017 +0900
@@ -73,8 +73,8 @@
         Index index = tip.getIndex();
         ParentIndex parentIndex = tip.getParentIndex();
         InterfaceTraverser traverser = new DefaultInterfaceTraverser(newRoot, index, parentIndex, true);
-        //traverser.updateIndex(editNodeList);
-        traverser.createIndex();
+        traverser.updateIndex(editNodeList);
+        //traverser.createIndex();
         TreeContext newTreeContext = new DefaultTreeContext(newRoot, tip, list, uuid, _treeName, nextRevision, traverser);
 
         if (repository.compareAndSet(newTreeContext.prev(), newTreeContext)) {
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/core/NetworkDefaultJungle.java	Wed Feb 01 04:04:17 2017 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/core/NetworkDefaultJungle.java	Fri Feb 03 03:55:43 2017 +0900
@@ -5,16 +5,19 @@
 import jp.ac.u_ryukyu.ie.cr.jungle.data.list.List;
 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeList;
 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.Journal;
+import jp.ac.u_ryukyu.ie.cr.jungle.query.traverser.DefaultInterfaceTraverser;
 import jp.ac.u_ryukyu.ie.cr.jungle.query.traverser.InterfaceTraverser;
 import jp.ac.u_ryukyu.ie.cr.jungle.store.TreeContext;
 import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.DefaultTreeOperationLog;
 import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.TreeOperationLog;
 import jp.ac.u_ryukyu.ie.cr.jungle.store.operations.TreeOperation;
 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.context.DefaultTreeContext;
+import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.treeEditor.DefaultTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.treeEditor.TreeEditor;
 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.Default.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.jungle.query.traverser.DefaultInterfaceTraverser;
+import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser;
+import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traverser;
 import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree;
 import jp.ac.u_ryukyu.ie.cr.jungle.tree.TreeType;
 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.transaction.NetworkDefaultJungleTree;
@@ -29,11 +32,12 @@
     private String uuid;
     private TreeEditor editor;
 
-    public NetworkDefaultJungle(Journal _journal, String _uuid, TreeEditor _editor) {
+    public NetworkDefaultJungle(Journal _journal, String _uuid) {
         journal = _journal;
         trees = new ConcurrentHashMap<String, JungleTree>();
         uuid = _uuid;
-        editor = _editor;
+        Traverser defaultTreverser = new DefaultTraverser();
+        editor = new DefaultTreeEditor(defaultTreverser);
     }
 
     @Override