public static final int NUMBER_OF_TESTS = 1000;
- public static void main(String[] args) {
+ public static void main(String[] args) throws ServerException {
if (args[0].equals("2")) {
test2();
} else if (args[0].equals("3")) {
test6();
} else if (args[0].equals("7")) {
test7();
- } else if (args[0].equals("8")) {
- test8();
- } else if (args[0].equals("9")) {
- test9();
}
+ // else if (args[0].equals("8")) {
+ // test8();
+ // } else if (args[0].equals("9")) {
+ // test9();
+ // }
}
- static void test9() {
-
- // Setup the 2 clients
- Table t1 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 321);
- t1.initTable();
- Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
- t2.update();
-
-
- // Make the Keys
- System.out.println("Setting up keys");
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
- String a = "a" + i;
- String b = "b" + i;
- String c = "c" + i;
- String d = "d" + i;
- IoTString ia = new IoTString(a);
- IoTString ib = new IoTString(b);
- IoTString ic = new IoTString(c);
- IoTString id = new IoTString(d);
- t1.createNewKey(ia, 321);
- t1.createNewKey(ib, 351);
- t2.createNewKey(ic, 321);
- t2.createNewKey(id, 351);
- }
-
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
- String a = "a" + i;
- String b = "b" + i;
- String c = "c" + i;
- String d = "d" + i;
- IoTString ia = new IoTString(a);
- IoTString ib = new IoTString(b);
- IoTString ic = new IoTString(c);
- IoTString id = new IoTString(d);
- t1.createNewKey(ia, 1000);
- t1.createNewKey(ib, 1000);
- t2.createNewKey(ic, 1000);
- t2.createNewKey(id, 1000);
- }
-
- System.out.println("Updating Clients...");
- t1.update();
- t2.update();
- t1.update();
- t2.update();
-
- boolean foundError = false;
-
- System.out.println("Checking Key-Values...");
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
-
- String keyA = "a" + i;
- String keyB = "b" + i;
- String keyC = "c" + i;
- String keyD = "d" + i;
-
- IoTString iKeyA = new IoTString(keyA);
- IoTString iKeyB = new IoTString(keyB);
- IoTString iKeyC = new IoTString(keyC);
- IoTString iKeyD = new IoTString(keyD);
-
-
- Long testValA1 = t1.getArbitrator(iKeyA);
- Long testValB1 = t1.getArbitrator(iKeyB);
- Long testValC1 = t1.getArbitrator(iKeyC);
- Long testValD1 = t1.getArbitrator(iKeyD);
-
- Long testValA2 = t2.getArbitrator(iKeyA);
- Long testValB2 = t2.getArbitrator(iKeyB);
- Long testValC2 = t2.getArbitrator(iKeyC);
- Long testValD2 = t2.getArbitrator(iKeyD);
-
- if ((testValA1 == null) || (testValA1 != 321)) {
- System.out.println("Key-Value t1 incorrect: " + keyA + " " + testValA1);
- foundError = true;
- }
-
- if ((testValB1 == null) || (testValB1 != 351)) {
- System.out.println("Key-Value t1 incorrect: " + keyB + " " + testValB1);
- foundError = true;
- }
-
- if ((testValC1 == null) || (testValC1 != 321)) {
- System.out.println("Key-Value t1 incorrect: " + keyC + " " + testValC1);
- foundError = true;
- }
-
- if ((testValD1 == null) || (testValD1 != 351)) {
- System.out.println("Key-Value t1 incorrect: " + keyD + " " + testValD1);
- foundError = true;
- }
-
- if ((testValA2 == null) || (testValA2 != 321)) {
- System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
- foundError = true;
- }
-
- if ((testValB2 == null) || (testValB2 != 351)) {
- System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
- foundError = true;
- }
-
- if ((testValC2 == null) || (testValC2 != 321)) {
- System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
- foundError = true;
- }
-
- if ((testValD2 == null) || (testValD2 != 351)) {
- System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
- foundError = true;
- }
- }
-
- if (foundError) {
- System.out.println("Found Errors...");
- } else {
- System.out.println("No Errors Found...");
- }
- }
-
- static void test8() {
+ // static void test9() throws ServerException {
+ // // Setup the 2 clients
+ // Table t1 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 321);
+ // t1.initTable();
+ // Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
+ // t2.update();
+
+
+ // // Make the Keys
+ // System.out.println("Setting up keys");
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ // String a = "a" + i;
+ // String b = "b" + i;
+ // String c = "c" + i;
+ // String d = "d" + i;
+ // IoTString ia = new IoTString(a);
+ // IoTString ib = new IoTString(b);
+ // IoTString ic = new IoTString(c);
+ // IoTString id = new IoTString(d);
+ // t1.createNewKey(ia, 321);
+ // t1.createNewKey(ib, 351);
+ // t2.createNewKey(ic, 321);
+ // t2.createNewKey(id, 351);
+ // }
+
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ // String a = "a" + i;
+ // String b = "b" + i;
+ // String c = "c" + i;
+ // String d = "d" + i;
+ // IoTString ia = new IoTString(a);
+ // IoTString ib = new IoTString(b);
+ // IoTString ic = new IoTString(c);
+ // IoTString id = new IoTString(d);
+ // t1.createNewKey(ia, 1000);
+ // t1.createNewKey(ib, 1000);
+ // t2.createNewKey(ic, 1000);
+ // t2.createNewKey(id, 1000);
+ // }
+
+ // System.out.println("Updating Clients...");
+ // t1.update();
+ // t2.update();
+ // t1.update();
+ // t2.update();
+
+ // boolean foundError = false;
+
+ // System.out.println("Checking Key-Values...");
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+
+ // String keyA = "a" + i;
+ // String keyB = "b" + i;
+ // String keyC = "c" + i;
+ // String keyD = "d" + i;
+
+ // IoTString iKeyA = new IoTString(keyA);
+ // IoTString iKeyB = new IoTString(keyB);
+ // IoTString iKeyC = new IoTString(keyC);
+ // IoTString iKeyD = new IoTString(keyD);
+
+
+ // Long testValA1 = t1.getArbitrator(iKeyA);
+ // Long testValB1 = t1.getArbitrator(iKeyB);
+ // Long testValC1 = t1.getArbitrator(iKeyC);
+ // Long testValD1 = t1.getArbitrator(iKeyD);
+
+ // Long testValA2 = t2.getArbitrator(iKeyA);
+ // Long testValB2 = t2.getArbitrator(iKeyB);
+ // Long testValC2 = t2.getArbitrator(iKeyC);
+ // Long testValD2 = t2.getArbitrator(iKeyD);
+
+ // if ((testValA1 == null) || (testValA1 != 321)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyA + " " + testValA1);
+ // foundError = true;
+ // }
+
+ // if ((testValB1 == null) || (testValB1 != 351)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyB + " " + testValB1);
+ // foundError = true;
+ // }
+
+ // if ((testValC1 == null) || (testValC1 != 321)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyC + " " + testValC1);
+ // foundError = true;
+ // }
+
+ // if ((testValD1 == null) || (testValD1 != 351)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyD + " " + testValD1);
+ // foundError = true;
+ // }
+
+ // if ((testValA2 == null) || (testValA2 != 321)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
+ // foundError = true;
+ // }
+
+ // if ((testValB2 == null) || (testValB2 != 351)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
+ // foundError = true;
+ // }
+
+ // if ((testValC2 == null) || (testValC2 != 321)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ // foundError = true;
+ // }
+
+ // if ((testValD2 == null) || (testValD2 != 351)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
+ // foundError = true;
+ // }
+ // }
+
+ // if (foundError) {
+ // System.out.println("Found Errors...");
+ // } else {
+ // System.out.println("No Errors Found...");
+ // }
+ // }
+
+ // static void test8() throws ServerException {
+
+ // boolean foundError = false;
+
+ // // Setup the 2 clients
+ // Table t1 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 321);
+ // t1.initTable();
+ // Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
+ // t2.update();
+
+ // // t1.rebuild();
+ // // t2.rebuild();
+
+ // // Make the Keys
+ // System.out.println("Setting up keys");
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ // String a = "a" + i;
+ // String b = "b" + i;
+ // String c = "c" + i;
+ // String d = "d" + i;
+ // IoTString ia = new IoTString(a);
+ // IoTString ib = new IoTString(b);
+ // IoTString ic = new IoTString(c);
+ // IoTString id = new IoTString(d);
+ // t1.createNewKey(ia, 321);
+ // t1.createNewKey(ib, 351);
+ // t2.createNewKey(ic, 321);
+ // t2.createNewKey(id, 351);
+ // }
+
+
+ // // Do Updates for the keys
+ // System.out.println("Setting Key-Values...");
+
+
+ // String keyA0 = "a0";
+ // String keyB0 = "b0";
+ // String keyC0 = "c0";
+ // String keyD0 = "d0";
+ // String valueA0 = "a0";
+ // String valueB0 = "b0";
+ // String valueC0 = "c0";
+ // String valueD0 = "d0";
+
+ // IoTString iKeyA0 = new IoTString(keyA0);
+ // IoTString iKeyB0 = new IoTString(keyB0);
+ // IoTString iKeyC0 = new IoTString(keyC0);
+ // IoTString iKeyD0 = new IoTString(keyD0);
+ // IoTString iValueA0 = new IoTString(valueA0);
+ // IoTString iValueB0 = new IoTString(valueB0);
+ // IoTString iValueC0 = new IoTString(valueC0);
+ // IoTString iValueD0 = new IoTString(valueD0);
+
+ // t1.startTransaction();
+ // t1.addKV( iKeyA0, iValueA0);
+ // t1.commitTransaction();
+
+ // t1.startTransaction();
+ // t1.addKV(iKeyB0, iValueB0);
+ // t1.commitTransaction();
+
+ // t2.startTransaction();
+ // t2.addKV(iKeyC0, iValueC0);
+ // t2.commitTransaction();
+
+ // t2.startTransaction();
+ // t2.addKV(iKeyD0, iValueD0);
+ // t2.commitTransaction();
+
+ // for (int i = 1; i < NUMBER_OF_TESTS; i++) {
+ // String keyB = "b" + i;
+ // String valueB = "b" + i;
+ // IoTString iKeyB = new IoTString(keyB);
+ // IoTString iValueB = new IoTString(valueB);
+
+ // String keyBOld = "b" + (i - 1);
+ // String valueBOld = "b" + (i - 1);
+ // IoTString iKeyBOld = new IoTString(keyBOld);
+ // IoTString iValueBOld = new IoTString(valueBOld);
+
+
+ // t1.startTransaction();
+ // t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyBOld, iValueBOld, Guard.Equal))));
+ // t1.addKV(iKeyB, iValueB);
+ // t1.commitTransaction();
+ // }
+
+ // System.out.println("Checking Key-Values...");
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+
+ // String keyB = "b" + i;
+ // String valueB = "b" + i;
+
+ // IoTString iKeyB = new IoTString(keyB);
+ // IoTString iValueB = new IoTString(valueB);
+
+ // IoTString testValB1 = t1.getSpeculative(iKeyB);
+
+ // if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyB);
+ // foundError = true;
+
+ // }
+ // }
+
+
+ // System.out.println("Updating Clients...");
+ // t1.update();
+ // t2.update();
+ // t1.update();
+ // t2.update();
+
+ // System.out.println("Checking Key-Values...");
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+
+ // String keyA = "a" + i;
+ // String keyB = "b" + i;
+ // String keyC = "c" + i;
+ // String keyD = "d" + i;
+ // String valueA = "a" + i;
+ // String valueB = "b" + i;
+ // String valueC = "c" + i;
+ // String valueD = "d" + i;
+
+ // IoTString iKeyA = new IoTString(keyA);
+ // IoTString iKeyB = new IoTString(keyB);
+ // IoTString iKeyC = new IoTString(keyC);
+ // IoTString iKeyD = new IoTString(keyD);
+ // IoTString iValueA = new IoTString(valueA);
+ // IoTString iValueB = new IoTString(valueB);
+ // IoTString iValueC = new IoTString(valueC);
+ // IoTString iValueD = new IoTString(valueD);
+
+
+ // IoTString testValA1 = t1.getCommitted(iKeyA);
+ // IoTString testValB1 = t1.getCommitted(iKeyB);
+ // IoTString testValC1 = t1.getCommitted(iKeyC);
+ // IoTString testValD1 = t1.getCommitted(iKeyD);
+
+ // IoTString testValA2 = t2.getCommitted(iKeyA);
+ // IoTString testValB2 = t2.getCommitted(iKeyB);
+ // IoTString testValC2 = t2.getCommitted(iKeyC);
+ // IoTString testValD2 = t2.getCommitted(iKeyD);
+
+
+ // if (i == 0) {
+ // if ((testValA1 == null) || (testValA1.equals(iValueA) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyA);
+ // foundError = true;
+ // }
+
+ // if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyB);
+ // foundError = true;
+ // }
+
+ // if ((testValC1 == null) || (testValC1.equals(iValueC) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyC);
+ // foundError = true;
+ // }
+
+ // if ((testValD1 == null) || (testValD1.equals(iValueD) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyD);
+ // foundError = true;
+ // }
+
+
+ // if ((testValA2 == null) || (testValA2.equals(iValueA) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
+ // foundError = true;
+ // }
+
+ // if ((testValB2 == null) || (testValB2.equals(iValueB) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
+ // foundError = true;
+ // }
+
+ // if ((testValC2 == null) || (testValC2.equals(iValueC) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ // foundError = true;
+ // }
+
+ // if ((testValD2 == null) || (testValD2.equals(iValueD) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
+ // foundError = true;
+ // }
+ // } else {
+ // if (testValA1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyA);
+ // foundError = true;
+ // }
+
+ // if (testValB1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyB);
+ // foundError = true;
+ // }
+
+ // if (testValC1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyC);
+ // foundError = true;
+ // }
+
+ // if (testValD1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyD);
+ // foundError = true;
+ // }
+
+ // if (testValA2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
+ // foundError = true;
+ // }
+
+ // if (testValB2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
+ // foundError = true;
+ // }
+
+ // if (testValC2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ // foundError = true;
+ // }
+
+ // if (testValD2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
+ // foundError = true;
+ // }
+ // }
+ // }
+
+ // if (foundError) {
+ // System.out.println("Found Errors...");
+ // } else {
+ // System.out.println("No Errors Found...");
+ // }
+ // }
+
+ // static void test7() throws ServerException {
+
+ // long startTime = 0;
+ // long endTime = 0;
+
+ // // Setup the 2 clients
+ // Table t1 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 321);
+ // t1.initTable();
+ // Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
+ // t2.update();
+
+ // // t1.rebuild();
+ // // t2.rebuild();
+
+ // // Make the Keys
+ // System.out.println("Setting up keys");
+ // startTime = System.currentTimeMillis();
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ // String a = "a" + i;
+ // String b = "b" + i;
+ // String c = "c" + i;
+ // String d = "d" + i;
+ // IoTString ia = new IoTString(a);
+ // IoTString ib = new IoTString(b);
+ // IoTString ic = new IoTString(c);
+ // IoTString id = new IoTString(d);
+ // t1.createNewKey(ia, 321);
+ // t1.createNewKey(ib, 351);
+ // t2.createNewKey(ic, 321);
+ // t2.createNewKey(id, 351);
+ // }
+ // endTime = System.currentTimeMillis();
+
+ // System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
+ // System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 4)) );
+ // System.out.println();
+
+
+ // // Do Updates for the keys
+ // System.out.println("Setting Key-Values...");
+ // startTime = System.currentTimeMillis();
+
+
+
+ // String keyA0 = "a0";
+ // String keyB0 = "b0";
+ // String keyC0 = "c0";
+ // String keyD0 = "d0";
+ // String valueA0 = "a0";
+ // String valueB0 = "b0";
+ // String valueC0 = "c0";
+ // String valueD0 = "d0";
+
+ // IoTString iKeyA0 = new IoTString(keyA0);
+ // IoTString iKeyB0 = new IoTString(keyB0);
+ // IoTString iKeyC0 = new IoTString(keyC0);
+ // IoTString iKeyD0 = new IoTString(keyD0);
+ // IoTString iValueA0 = new IoTString(valueA0);
+ // IoTString iValueB0 = new IoTString(valueB0);
+ // IoTString iValueC0 = new IoTString(valueC0);
+ // IoTString iValueD0 = new IoTString(valueD0);
+
+ // t1.startTransaction();
+ // t1.addKV( iKeyA0, iValueA0);
+ // t1.commitTransaction();
+
+ // t1.startTransaction();
+ // t1.addKV(iKeyB0, iValueB0);
+ // t1.commitTransaction();
+
+ // t2.startTransaction();
+ // t2.addKV(iKeyC0, iValueC0);
+ // t2.commitTransaction();
+
+ // t2.startTransaction();
+ // t2.addKV(iKeyD0, iValueD0);
+ // t2.commitTransaction();
+
+ // for (int i = 1; i < NUMBER_OF_TESTS; i++) {
+ // String keyB = "b" + i;
+ // String valueB = "b" + i;
+ // IoTString iKeyB = new IoTString(keyB);
+ // IoTString iValueB = new IoTString(valueB);
+
+ // String keyBOld = "b" + (i - 1);
+ // String valueBOld = "b" + (i - 2);
+ // IoTString iKeyBOld = new IoTString(keyBOld);
+ // IoTString iValueBOld = new IoTString(valueBOld);
+
+
+ // t1.startTransaction();
+ // t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyBOld, iValueBOld, Guard.Equal))));
+ // t1.addKV(iKeyB, iValueB);
+ // t1.commitTransaction();
+ // }
+
+ // for (int i = 1; i < NUMBER_OF_TESTS; i++) {
+ // String keyC = "c" + i;
+ // String valueC = "c" + i;
+ // IoTString iKeyC = new IoTString(keyC);
+ // IoTString iValueC = new IoTString(valueC);
+
+ // String keyCOld = "c" + (i - 1);
+ // String valueCOld = "c" + (i - 2);
+ // IoTString iKeyCOld = new IoTString(keyCOld);
+ // IoTString iValueCOld = new IoTString(valueCOld);
+
+
+ // t2.startTransaction();
+ // t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyCOld, iValueCOld, Guard.Equal))));
+ // t2.addKV(iKeyC, iValueC);
+ // t2.commitTransaction();
+ // }
+
+ // for (int i = 1; i < NUMBER_OF_TESTS; i++) {
+ // String keyA = "a" + i;
+ // String keyD = "d" + i;
+ // String valueA = "a" + i;
+ // String valueD = "d" + i;
+
+ // IoTString iKeyA = new IoTString(keyA);
+ // IoTString iKeyD = new IoTString(keyD);
+ // IoTString iValueA = new IoTString(valueA);
+ // IoTString iValueD = new IoTString(valueD);
+
+
+ // String keyAOld = "a" + (i - 1);
+ // String keyDOld = "d" + (i - 1);
+ // String valueAOld = "a" + (i - 2);
+ // String valueDOld = "d" + (i - 2);
+ // IoTString iKeyAOld = new IoTString(keyAOld);
+ // IoTString iKeyDOld = new IoTString(keyDOld);
+ // IoTString iValueAOld = new IoTString(valueAOld);
+ // IoTString iValueDOld = new IoTString(valueDOld);
+
+
+ // t1.startTransaction();
+ // t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyAOld, iValueAOld, Guard.Equal))));
+ // t1.addKV(iKeyA, iValueA);
+ // t1.commitTransaction();
+
+ // t2.startTransaction();
+ // t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyDOld, iValueDOld, Guard.Equal))));
+ // t2.addKV(iKeyD, iValueD);
+ // t2.commitTransaction();
+ // }
+
+ // endTime = System.currentTimeMillis();
+
+ // System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
+ // System.out.println("Time Taken Per Update: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 4)) );
+ // System.out.println();
+
+
+ // System.out.println("Updating Clients...");
+ // t1.update();
+ // t2.update();
+ // t1.update();
+ // t2.update();
+
+ // boolean foundError = false;
+
+ // System.out.println("Checking Key-Values...");
+ // for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+
+ // String keyA = "a" + i;
+ // String keyB = "b" + i;
+ // String keyC = "c" + i;
+ // String keyD = "d" + i;
+ // String valueA = "a" + i;
+ // String valueB = "b" + i;
+ // String valueC = "c" + i;
+ // String valueD = "d" + i;
+
+ // IoTString iKeyA = new IoTString(keyA);
+ // IoTString iKeyB = new IoTString(keyB);
+ // IoTString iKeyC = new IoTString(keyC);
+ // IoTString iKeyD = new IoTString(keyD);
+ // IoTString iValueA = new IoTString(valueA);
+ // IoTString iValueB = new IoTString(valueB);
+ // IoTString iValueC = new IoTString(valueC);
+ // IoTString iValueD = new IoTString(valueD);
+
+
+ // IoTString testValA1 = t1.getCommitted(iKeyA);
+ // IoTString testValB1 = t1.getCommitted(iKeyB);
+ // IoTString testValC1 = t1.getCommitted(iKeyC);
+ // IoTString testValD1 = t1.getCommitted(iKeyD);
+
+ // IoTString testValA2 = t2.getCommitted(iKeyA);
+ // IoTString testValB2 = t2.getCommitted(iKeyB);
+ // IoTString testValC2 = t2.getCommitted(iKeyC);
+ // IoTString testValD2 = t2.getCommitted(iKeyD);
+
+
+ // if (i == 0) {
+ // if ((testValA1 == null) || (testValA1.equals(iValueA) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyA);
+ // foundError = true;
+ // }
+
+ // if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyB);
+ // foundError = true;
+ // }
+
+ // if ((testValC1 == null) || (testValC1.equals(iValueC) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyC);
+ // foundError = true;
+ // }
+
+ // if ((testValD1 == null) || (testValD1.equals(iValueD) == false)) {
+ // System.out.println("Key-Value t1 incorrect: " + keyD);
+ // foundError = true;
+ // }
+
+
+ // if ((testValA2 == null) || (testValA2.equals(iValueA) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
+ // foundError = true;
+ // }
+
+ // if ((testValB2 == null) || (testValB2.equals(iValueB) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
+ // foundError = true;
+ // }
+
+ // if ((testValC2 == null) || (testValC2.equals(iValueC) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ // foundError = true;
+ // }
+
+ // if ((testValD2 == null) || (testValD2.equals(iValueD) == false)) {
+ // System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
+ // foundError = true;
+ // }
+ // } else {
+ // if (testValA1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyA);
+ // foundError = true;
+ // }
+
+ // if (testValB1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyB);
+ // foundError = true;
+ // }
+
+ // if (testValC1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyC);
+ // foundError = true;
+ // }
+
+ // if (testValD1 != null) {
+ // System.out.println("Key-Value t1 incorrect: " + keyD);
+ // foundError = true;
+ // }
+
+ // if (testValA2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
+ // foundError = true;
+ // }
+
+ // if (testValB2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
+ // foundError = true;
+ // }
+
+ // if (testValC2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ // foundError = true;
+ // }
+
+ // if (testValD2 != null) {
+ // System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
+ // foundError = true;
+ // }
+ // }
+ // }
+
+ // if (foundError) {
+ // System.out.println("Found Errors...");
+ // } else {
+ // System.out.println("No Errors Found...");
+ // }
+ // }
+
+ static void test7() throws ServerException {
+ long startTime = 0;
+ long endTime = 0;
boolean foundError = false;
// Setup the 2 clients
Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
t2.update();
- // t1.rebuild();
- // t2.rebuild();
-
+ startTime = System.currentTimeMillis();
// Make the Keys
System.out.println("Setting up keys");
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ for (int i = 0; i < 4; i++) {
String a = "a" + i;
String b = "b" + i;
String c = "c" + i;
t2.createNewKey(ic, 321);
t2.createNewKey(id, 351);
}
-
+ endTime = System.currentTimeMillis();
+ System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
+ System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (4)) );
+ System.out.println();
// Do Updates for the keys
System.out.println("Setting Key-Values...");
+ startTime = System.currentTimeMillis();
+ System.out.println("Setting b...");
+ for (int t = 0; t < NUMBER_OF_TESTS; t++) {
+ for (int i = 0; i < 4; i++) {
+ String keyB = "b" + i;
+ String valueB = "b" + (i + t);
- String keyA0 = "a0";
- String keyB0 = "b0";
- String keyC0 = "c0";
- String keyD0 = "d0";
- String valueA0 = "a0";
- String valueB0 = "b0";
- String valueC0 = "c0";
- String valueD0 = "d0";
-
- IoTString iKeyA0 = new IoTString(keyA0);
- IoTString iKeyB0 = new IoTString(keyB0);
- IoTString iKeyC0 = new IoTString(keyC0);
- IoTString iKeyD0 = new IoTString(keyD0);
- IoTString iValueA0 = new IoTString(valueA0);
- IoTString iValueB0 = new IoTString(valueB0);
- IoTString iValueC0 = new IoTString(valueC0);
- IoTString iValueD0 = new IoTString(valueD0);
-
- t1.startTransaction();
- t1.addKV( iKeyA0, iValueA0);
- t1.commitTransaction();
-
- t1.startTransaction();
- t1.addKV(iKeyB0, iValueB0);
- t1.commitTransaction();
-
- t2.startTransaction();
- t2.addKV(iKeyC0, iValueC0);
- t2.commitTransaction();
-
- t2.startTransaction();
- t2.addKV(iKeyD0, iValueD0);
- t2.commitTransaction();
-
- for (int i = 1; i < NUMBER_OF_TESTS; i++) {
- String keyB = "b" + i;
- String valueB = "b" + i;
- IoTString iKeyB = new IoTString(keyB);
- IoTString iValueB = new IoTString(valueB);
+ IoTString iKeyB = new IoTString(keyB);
+ IoTString iValueB = new IoTString(valueB);
- String keyBOld = "b" + (i - 1);
- String valueBOld = "b" + (i - 1);
- IoTString iKeyBOld = new IoTString(keyBOld);
- IoTString iValueBOld = new IoTString(valueBOld);
+ t1.startTransaction();
+ t1.getSpeculativeAtomic(iKeyB);
+ t1.addKV(iKeyB, iValueB);
+ t1.commitTransaction();
+ }
+ }
+ endTime = System.currentTimeMillis();
+ System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
+ System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (4 * NUMBER_OF_TESTS)) );
+ System.out.println();
- t1.startTransaction();
- t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyBOld, iValueBOld, Guard.Equal))));
- t1.addKV(iKeyB, iValueB);
- t1.commitTransaction();
- }
- System.out.println("Checking Key-Values...");
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ System.out.println("Checking b");
+ for (int i = 0; i < 4; i++) {
String keyB = "b" + i;
- String valueB = "b" + i;
-
+ String valueB = "b" + (i + NUMBER_OF_TESTS - 1);
IoTString iKeyB = new IoTString(keyB);
IoTString iValueB = new IoTString(valueB);
IoTString testValB1 = t1.getSpeculative(iKeyB);
+ IoTString testValB2 = t2.getSpeculative(iKeyB);
if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyB);
+ System.out.println("Key-Value t1 incorrect: " + keyB + " " + testValB1);
foundError = true;
-
}
- }
-
-
- System.out.println("Updating Clients...");
- t1.update();
- t2.update();
- t1.update();
- t2.update();
- System.out.println("Checking Key-Values...");
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
-
- String keyA = "a" + i;
- String keyB = "b" + i;
- String keyC = "c" + i;
- String keyD = "d" + i;
- String valueA = "a" + i;
- String valueB = "b" + i;
- String valueC = "c" + i;
- String valueD = "d" + i;
-
- IoTString iKeyA = new IoTString(keyA);
- IoTString iKeyB = new IoTString(keyB);
- IoTString iKeyC = new IoTString(keyC);
- IoTString iKeyD = new IoTString(keyD);
- IoTString iValueA = new IoTString(valueA);
- IoTString iValueB = new IoTString(valueB);
- IoTString iValueC = new IoTString(valueC);
- IoTString iValueD = new IoTString(valueD);
-
-
- IoTString testValA1 = t1.getCommitted(iKeyA);
- IoTString testValB1 = t1.getCommitted(iKeyB);
- IoTString testValC1 = t1.getCommitted(iKeyC);
- IoTString testValD1 = t1.getCommitted(iKeyD);
-
- IoTString testValA2 = t2.getCommitted(iKeyA);
- IoTString testValB2 = t2.getCommitted(iKeyB);
- IoTString testValC2 = t2.getCommitted(iKeyC);
- IoTString testValD2 = t2.getCommitted(iKeyD);
-
-
- if (i == 0) {
- if ((testValA1 == null) || (testValA1.equals(iValueA) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyA);
- foundError = true;
- }
-
- if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyB);
- foundError = true;
- }
-
- if ((testValC1 == null) || (testValC1.equals(iValueC) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyC);
- foundError = true;
- }
-
- if ((testValD1 == null) || (testValD1.equals(iValueD) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyD);
- foundError = true;
- }
-
-
- if ((testValA2 == null) || (testValA2.equals(iValueA) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
- foundError = true;
- }
-
- if ((testValB2 == null) || (testValB2.equals(iValueB) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
- foundError = true;
- }
-
- if ((testValC2 == null) || (testValC2.equals(iValueC) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
- foundError = true;
- }
-
- if ((testValD2 == null) || (testValD2.equals(iValueD) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
- foundError = true;
- }
- } else {
- if (testValA1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyA);
- foundError = true;
- }
-
- if (testValB1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyB);
- foundError = true;
- }
-
- if (testValC1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyC);
- foundError = true;
- }
-
- if (testValD1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyD);
- foundError = true;
- }
-
- if (testValA2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
- foundError = true;
- }
-
- if (testValB2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
- foundError = true;
- }
-
- if (testValC2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
- foundError = true;
- }
-
- if (testValD2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
- foundError = true;
- }
+ if ((testValB2 != null)) {
+ System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
+ foundError = true;
}
}
- if (foundError) {
- System.out.println("Found Errors...");
- } else {
- System.out.println("No Errors Found...");
- }
- }
-
- static void test7() {
-
- long startTime = 0;
- long endTime = 0;
-
- // Setup the 2 clients
- Table t1 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 321);
- t1.initTable();
- Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
- t2.update();
-
- // t1.rebuild();
- // t2.rebuild();
-
- // Make the Keys
- System.out.println("Setting up keys");
- startTime = System.currentTimeMillis();
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
- String a = "a" + i;
- String b = "b" + i;
- String c = "c" + i;
- String d = "d" + i;
- IoTString ia = new IoTString(a);
- IoTString ib = new IoTString(b);
- IoTString ic = new IoTString(c);
- IoTString id = new IoTString(d);
- t1.createNewKey(ia, 321);
- t1.createNewKey(ib, 351);
- t2.createNewKey(ic, 321);
- t2.createNewKey(id, 351);
- }
- endTime = System.currentTimeMillis();
-
- System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
- System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 4)) );
- System.out.println();
-
-
- // Do Updates for the keys
- System.out.println("Setting Key-Values...");
startTime = System.currentTimeMillis();
+ System.out.println("Setting c...");
+ for (int t = 0; t < NUMBER_OF_TESTS; t++) {
+ for (int i = 0; i < 4; i++) {
+ String keyC = "c" + i;
+ String valueC = "c" + (i + t);
+ IoTString iKeyC = new IoTString(keyC);
+ IoTString iValueC = new IoTString(valueC);
-
- String keyA0 = "a0";
- String keyB0 = "b0";
- String keyC0 = "c0";
- String keyD0 = "d0";
- String valueA0 = "a0";
- String valueB0 = "b0";
- String valueC0 = "c0";
- String valueD0 = "d0";
-
- IoTString iKeyA0 = new IoTString(keyA0);
- IoTString iKeyB0 = new IoTString(keyB0);
- IoTString iKeyC0 = new IoTString(keyC0);
- IoTString iKeyD0 = new IoTString(keyD0);
- IoTString iValueA0 = new IoTString(valueA0);
- IoTString iValueB0 = new IoTString(valueB0);
- IoTString iValueC0 = new IoTString(valueC0);
- IoTString iValueD0 = new IoTString(valueD0);
-
- t1.startTransaction();
- t1.addKV( iKeyA0, iValueA0);
- t1.commitTransaction();
-
- t1.startTransaction();
- t1.addKV(iKeyB0, iValueB0);
- t1.commitTransaction();
-
- t2.startTransaction();
- t2.addKV(iKeyC0, iValueC0);
- t2.commitTransaction();
-
- t2.startTransaction();
- t2.addKV(iKeyD0, iValueD0);
- t2.commitTransaction();
-
- for (int i = 1; i < NUMBER_OF_TESTS; i++) {
- String keyB = "b" + i;
- String valueB = "b" + i;
- IoTString iKeyB = new IoTString(keyB);
- IoTString iValueB = new IoTString(valueB);
-
- String keyBOld = "b" + (i - 1);
- String valueBOld = "b" + (i - 2);
- IoTString iKeyBOld = new IoTString(keyBOld);
- IoTString iValueBOld = new IoTString(valueBOld);
-
-
- t1.startTransaction();
- t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyBOld, iValueBOld, Guard.Equal))));
- t1.addKV(iKeyB, iValueB);
- t1.commitTransaction();
- }
-
- for (int i = 1; i < NUMBER_OF_TESTS; i++) {
- String keyC = "c" + i;
- String valueC = "c" + i;
- IoTString iKeyC = new IoTString(keyC);
- IoTString iValueC = new IoTString(valueC);
-
- String keyCOld = "c" + (i - 1);
- String valueCOld = "c" + (i - 2);
- IoTString iKeyCOld = new IoTString(keyCOld);
- IoTString iValueCOld = new IoTString(valueCOld);
-
-
- t2.startTransaction();
- t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyCOld, iValueCOld, Guard.Equal))));
- t2.addKV(iKeyC, iValueC);
- t2.commitTransaction();
+ t2.startTransaction();
+ t2.getSpeculativeAtomic(iKeyC);
+ t2.addKV(iKeyC, iValueC);
+ t2.commitTransaction();
+ }
}
-
- for (int i = 1; i < NUMBER_OF_TESTS; i++) {
- String keyA = "a" + i;
- String keyD = "d" + i;
- String valueA = "a" + i;
- String valueD = "d" + i;
-
- IoTString iKeyA = new IoTString(keyA);
- IoTString iKeyD = new IoTString(keyD);
- IoTString iValueA = new IoTString(valueA);
- IoTString iValueD = new IoTString(valueD);
+ endTime = System.currentTimeMillis();
+ System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
+ System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (4 * NUMBER_OF_TESTS)) );
+ System.out.println();
- String keyAOld = "a" + (i - 1);
- String keyDOld = "d" + (i - 1);
- String valueAOld = "a" + (i - 2);
- String valueDOld = "d" + (i - 2);
- IoTString iKeyAOld = new IoTString(keyAOld);
- IoTString iKeyDOld = new IoTString(keyDOld);
- IoTString iValueAOld = new IoTString(valueAOld);
- IoTString iValueDOld = new IoTString(valueDOld);
+ System.out.println("Checking c");
+ for (int i = 0; i < 4; i++) {
+ String keyC = "c" + i;
+ String valueC = "c" + (i + NUMBER_OF_TESTS - 1);
+ IoTString iKeyC = new IoTString(keyC);
+ IoTString iValueC = new IoTString(valueC);
+ IoTString testValC1 = t1.getSpeculative(iKeyC);
+ IoTString testValC2 = t2.getSpeculative(iKeyC);
- t1.startTransaction();
- t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyAOld, iValueAOld, Guard.Equal))));
- t1.addKV(iKeyA, iValueA);
- t1.commitTransaction();
+ if ((testValC1 != null)) {
+ System.out.println("Key-Value t1 incorrect: " + keyC + " " + testValC1);
+ foundError = true;
+ }
- t2.startTransaction();
- t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyDOld, iValueDOld, Guard.Equal))));
- t2.addKV(iKeyD, iValueD);
- t2.commitTransaction();
+ if ((testValC2 == null) || (testValC2.equals(iValueC) == false)) {
+ System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ foundError = true;
+ }
}
- endTime = System.currentTimeMillis();
+ System.out.println("Setting a and b...");
+ for (int t = 0; t < NUMBER_OF_TESTS; t++) {
+ for (int i = 0; i < 4; i++) {
+ String keyA = "a" + i;
+ String keyD = "d" + i;
+ String valueA = "a" + (i + t);
+ String valueD = "d" + (i + t);
- System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
- System.out.println("Time Taken Per Update: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 4)) );
- System.out.println();
+ IoTString iKeyA = new IoTString(keyA);
+ IoTString iKeyD = new IoTString(keyD);
+ IoTString iValueA = new IoTString(valueA);
+ IoTString iValueD = new IoTString(valueD);
+
+ t1.startTransaction();
+ t1.addKV(iKeyA, iValueA);
+ t1.commitTransaction();
+ t2.startTransaction();
+ t2.addKV(iKeyD, iValueD);
+ t2.commitTransaction();
+ }
+ }
System.out.println("Updating Clients...");
t1.update();
t1.update();
t2.update();
- boolean foundError = false;
-
System.out.println("Checking Key-Values...");
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ for (int i = 0; i < 4; i++) {
String keyA = "a" + i;
String keyB = "b" + i;
String keyC = "c" + i;
String keyD = "d" + i;
- String valueA = "a" + i;
- String valueB = "b" + i;
- String valueC = "c" + i;
- String valueD = "d" + i;
+ String valueA = "a" + (i + NUMBER_OF_TESTS - 1);
+ String valueB = "b" + (i + NUMBER_OF_TESTS - 1);
+ String valueC = "c" + (i + NUMBER_OF_TESTS - 1);
+ String valueD = "d" + (i + NUMBER_OF_TESTS - 1);
IoTString iKeyA = new IoTString(keyA);
IoTString iKeyB = new IoTString(keyB);
IoTString testValC2 = t2.getCommitted(iKeyC);
IoTString testValD2 = t2.getCommitted(iKeyD);
+ if ((testValA1 == null) || (testValA1.equals(iValueA) == false)) {
+ System.out.println("Key-Value t1 incorrect: " + keyA + " " + testValA1);
+ foundError = true;
+ }
+
+ if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
+ System.out.println("Key-Value t1 incorrect: " + keyB + " " + testValB1);
+ foundError = true;
+ }
+
+ if ((testValC1 == null) || (testValC1.equals(iValueC) == false)) {
+ System.out.println("Key-Value t1 incorrect: " + keyC + " " + testValC1);
+ foundError = true;
+ }
+
+ if ((testValD1 == null) || (testValD1.equals(iValueD) == false)) {
+ System.out.println("Key-Value t1 incorrect: " + keyD + " " + testValD1);
+ foundError = true;
+ }
+
+ if ((testValA2 == null) || (testValA2.equals(iValueA) == false)) {
+ System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
+ foundError = true;
+ }
+
+ if ((testValB2 == null) || (testValB2.equals(iValueB) == false)) {
+ System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
+ foundError = true;
+ }
+
+ if ((testValC2 == null) || (testValC2.equals(iValueC) == false)) {
+ System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ foundError = true;
+ }
- if (i == 0) {
- if ((testValA1 == null) || (testValA1.equals(iValueA) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyA);
- foundError = true;
- }
-
- if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyB);
- foundError = true;
- }
-
- if ((testValC1 == null) || (testValC1.equals(iValueC) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyC);
- foundError = true;
- }
-
- if ((testValD1 == null) || (testValD1.equals(iValueD) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyD);
- foundError = true;
- }
-
-
- if ((testValA2 == null) || (testValA2.equals(iValueA) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
- foundError = true;
- }
-
- if ((testValB2 == null) || (testValB2.equals(iValueB) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
- foundError = true;
- }
-
- if ((testValC2 == null) || (testValC2.equals(iValueC) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
- foundError = true;
- }
-
- if ((testValD2 == null) || (testValD2.equals(iValueD) == false)) {
- System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
- foundError = true;
- }
- } else {
- if (testValA1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyA);
- foundError = true;
- }
-
- if (testValB1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyB);
- foundError = true;
- }
-
- if (testValC1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyC);
- foundError = true;
- }
-
- if (testValD1 != null) {
- System.out.println("Key-Value t1 incorrect: " + keyD);
- foundError = true;
- }
-
- if (testValA2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyA + " " + testValA2);
- foundError = true;
- }
-
- if (testValB2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyB + " " + testValB2);
- foundError = true;
- }
-
- if (testValC2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
- foundError = true;
- }
-
- if (testValD2 != null) {
- System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
- foundError = true;
- }
+ if ((testValD2 == null) || (testValD2.equals(iValueD) == false)) {
+ System.out.println("Key-Value t2 incorrect: " + keyD + " " + testValD2);
+ foundError = true;
}
}
}
}
- static void test6() {
-
+ static void test6() throws ServerException {
long startTime = 0;
long endTime = 0;
Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
t2.update();
- // t1.rebuild();
- // t2.rebuild();
// Make the Keys
System.out.println("Setting up keys");
}
endTime = System.currentTimeMillis();
+
+
System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 4)) );
System.out.println();
// Do Updates for the keys
System.out.println("Setting Key-Values...");
startTime = System.currentTimeMillis();
-
-
- t1.startTransaction();
- t1.addKV( new IoTString("a0"), new IoTString("a0"));
- t1.commitTransaction();
-
- t1.startTransaction();
- t1.addKV(new IoTString("b0"), new IoTString("b0"));
- t1.commitTransaction();
-
- t2.startTransaction();
- t2.addKV(new IoTString("c0"), new IoTString("c0"));
- t2.commitTransaction();
-
- t2.startTransaction();
- t2.addKV(new IoTString("d0"), new IoTString("d0"));
- t2.commitTransaction();
-
- for (int i = 1; i < NUMBER_OF_TESTS; i++) {
+ for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ String keyA = "a" + i;
String keyB = "b" + i;
- String valueB = "b" + i;
- IoTString iKeyB = new IoTString(keyB);
- IoTString iValueB = new IoTString(valueB);
-
- String keyBOld = "b" + (i - 1);
- String valueBOld = "b" + (i - 1);
- IoTString iKeyBOld = new IoTString(keyBOld);
- IoTString iValueBOld = new IoTString(valueBOld);
-
-
- t1.startTransaction();
- t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyBOld, iValueBOld, Guard.Equal))));
- t1.addKV(iKeyB, iValueB);
- t1.commitTransaction();
- }
-
- for (int i = 1; i < NUMBER_OF_TESTS; i++) {
String keyC = "c" + i;
- String valueC = "c" + i;
- IoTString iKeyC = new IoTString(keyC);
- IoTString iValueC = new IoTString(valueC);
-
- String keyCOld = "c" + (i - 1);
- String valueCOld = "c" + (i - 1);
- IoTString iKeyCOld = new IoTString(keyCOld);
- IoTString iValueCOld = new IoTString(valueCOld);
-
-
- t2.startTransaction();
- t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyCOld, iValueCOld, Guard.Equal))));
- t2.addKV(iKeyC, iValueC);
- t2.commitTransaction();
- }
-
- for (int i = 1; i < NUMBER_OF_TESTS; i++) {
- String keyA = "a" + i;
String keyD = "d" + i;
String valueA = "a" + i;
+ String valueB = "b" + i;
+ String valueC = "c" + i;
String valueD = "d" + i;
IoTString iKeyA = new IoTString(keyA);
+ IoTString iKeyB = new IoTString(keyB);
+ IoTString iKeyC = new IoTString(keyC);
IoTString iKeyD = new IoTString(keyD);
IoTString iValueA = new IoTString(valueA);
+ IoTString iValueB = new IoTString(valueB);
+ IoTString iValueC = new IoTString(valueC);
IoTString iValueD = new IoTString(valueD);
-
- String keyAOld = "a" + (i - 1);
- String keyDOld = "d" + (i - 1);
- String valueAOld = "a" + (i - 1);
- String valueDOld = "d" + (i - 1);
- IoTString iKeyAOld = new IoTString(keyAOld);
- IoTString iKeyDOld = new IoTString(keyDOld);
- IoTString iValueAOld = new IoTString(valueAOld);
- IoTString iValueDOld = new IoTString(valueDOld);
-
-
t1.startTransaction();
- t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyAOld, iValueAOld, Guard.Equal))));
+ t1.getCommittedAtomic(iKeyA);
t1.addKV(iKeyA, iValueA);
t1.commitTransaction();
+ t1.startTransaction();
+ t1.getCommittedAtomic(iKeyB);
+ t1.addKV(iKeyB, iValueB);
+ t1.commitTransaction();
+
+ t2.startTransaction();
+ t2.getCommittedAtomic(iKeyC);
+ t2.addKV(iKeyC, iValueC);
+ t2.commitTransaction();
+
t2.startTransaction();
- t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyDOld, iValueDOld, Guard.Equal))));
+ t2.getCommittedAtomic(iKeyD);
t2.addKV(iKeyD, iValueD);
t2.commitTransaction();
}
-
endTime = System.currentTimeMillis();
System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
} else {
System.out.println("No Errors Found...");
}
+
+ // System.out.println();
+ // System.out.println();
+ // System.out.println();
+ // t1.printSlots();
+ // System.out.println();
+ // System.out.println();
+ // System.out.println();
+ // t2.printSlots();
}
- static void test5() {
+ static void test5() throws ServerException {
long startTime = 0;
long endTime = 0;
+ boolean foundError = false;
// Setup the 2 clients
Table t1 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 321);
Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
t2.update();
- // t1.rebuild();
- // t2.rebuild();
-
-
// Make the Keys
System.out.println("Setting up keys");
- startTime = System.currentTimeMillis();
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ for (int i = 0; i < 4; i++) {
String a = "a" + i;
String b = "b" + i;
String c = "c" + i;
System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
- System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 4)) );
+ System.out.println("Time Taken Per Key: " + (double) (((endTime - startTime) / 1000.0) / (4)) );
System.out.println();
// Do Updates for the keys
System.out.println("Setting Key-Values...");
- startTime = System.currentTimeMillis();
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
- String keyA = "a" + i;
- String keyB = "b" + i;
- String keyC = "c" + i;
- String keyD = "d" + i;
- String valueA = "a" + i;
- String valueB = "b" + i;
- String valueC = "c" + i;
- String valueD = "d" + i;
- IoTString iKeyA = new IoTString(keyA);
+ for (int t = 0; t < NUMBER_OF_TESTS; t++) {
+ for (int i = 0; i < 4; i++) {
+ String keyB = "b" + i;
+ String valueB = "b" + (i + t);
+
+ IoTString iKeyB = new IoTString(keyB);
+ IoTString iValueB = new IoTString(valueB);
+
+ t1.startTransaction();
+ t1.addKV(iKeyB, iValueB);
+ t1.commitTransaction();
+ }
+ }
+
+ for (int i = 0; i < 4; i++) {
+
+ String keyB = "b" + i;
+ String valueB = "b" + (i + NUMBER_OF_TESTS - 1);
IoTString iKeyB = new IoTString(keyB);
- IoTString iKeyC = new IoTString(keyC);
- IoTString iKeyD = new IoTString(keyD);
- IoTString iValueA = new IoTString(valueA);
IoTString iValueB = new IoTString(valueB);
- IoTString iValueC = new IoTString(valueC);
- IoTString iValueD = new IoTString(valueD);
-
+ IoTString testValB1 = t1.getSpeculative(iKeyB);
+ IoTString testValB2 = t2.getSpeculative(iKeyB);
- if (i != 0) {
- String keyAOld = "a" + (i - 1);
- String keyBOld = "b" + (i - 1);
- String keyCOld = "c" + (i - 1);
- String keyDOld = "d" + (i - 1);
- String valueAOld = "a" + (i - 1);
- String valueBOld = "b" + (i - 1);
- String valueCOld = "c" + (i - 1);
- String valueDOld = "d" + (i - 1);
+ if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
+ System.out.println("Key-Value t1 incorrect: " + keyB);
+ foundError = true;
+ }
- IoTString iKeyAOld = new IoTString(keyAOld);
- IoTString iKeyBOld = new IoTString(keyBOld);
- IoTString iKeyCOld = new IoTString(keyCOld);
- IoTString iKeyDOld = new IoTString(keyDOld);
- IoTString iValueAOld = new IoTString(valueAOld);
- IoTString iValueBOld = new IoTString(valueBOld);
- IoTString iValueCOld = new IoTString(valueCOld);
- IoTString iValueDOld = new IoTString(valueDOld);
+ if ((testValB2 != null)) {
+ System.out.println("Key-Value t2 incorrect: " + keyB);
+ foundError = true;
+ }
+ }
- t1.startTransaction();
- t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyAOld, iValueAOld, Guard.Equal))));
- t1.addKV(iKeyA, iValueA);
- t1.commitTransaction();
+ for (int t = 0; t < NUMBER_OF_TESTS; t++) {
+ for (int i = 0; i < 4; i++) {
+ String keyC = "c" + i;
+ String valueC = "c" + (i + t);
- t1.startTransaction();
- t1.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyBOld, iValueBOld, Guard.Equal))));
- t1.addKV(iKeyB, iValueB);
- t1.commitTransaction();
+ IoTString iKeyC = new IoTString(keyC);
+ IoTString iValueC = new IoTString(valueC);
t2.startTransaction();
- t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyCOld, iValueCOld, Guard.Equal))));
t2.addKV(iKeyC, iValueC);
t2.commitTransaction();
+ }
+ }
- t2.startTransaction();
- t2.addGuard(new Guard(new IoTString(Guard.createExpression(iKeyDOld, iValueDOld, Guard.Equal))));
- t2.addKV(iKeyD, iValueD);
- t2.commitTransaction();
+ for (int i = 0; i < 4; i++) {
+ String keyC = "c" + i;
+ String valueC = "c" + (i + NUMBER_OF_TESTS - 1);
+ IoTString iKeyC = new IoTString(keyC);
+ IoTString iValueC = new IoTString(valueC);
+ IoTString testValC1 = t1.getSpeculative(iKeyC);
+ IoTString testValC2 = t2.getSpeculative(iKeyC);
- } else {
- t1.startTransaction();
- t1.addKV(iKeyA, iValueA);
- t1.commitTransaction();
+ if ((testValC1 != null)) {
+ System.out.println("Key-Value t1 incorrect: " + keyC + " " + testValC1);
+ foundError = true;
+ }
+
+ if ((testValC2 == null) || (testValC2.equals(iValueC) == false)) {
+ System.out.println("Key-Value t2 incorrect: " + keyC + " " + testValC2);
+ foundError = true;
+ }
+ }
+
+ for (int t = 0; t < NUMBER_OF_TESTS; t++) {
+ for (int i = 0; i < 4; i++) {
+ String keyA = "a" + i;
+ String keyD = "d" + i;
+ String valueA = "a" + (i + t);
+ String valueD = "d" + (i + t);
+
+ IoTString iKeyA = new IoTString(keyA);
+ IoTString iKeyD = new IoTString(keyD);
+ IoTString iValueA = new IoTString(valueA);
+ IoTString iValueD = new IoTString(valueD);
t1.startTransaction();
- t1.addKV(iKeyB, iValueB);
+ t1.addKV(iKeyA, iValueA);
t1.commitTransaction();
- t2.startTransaction();
- t2.addKV(iKeyC, iValueC);
- t2.commitTransaction();
-
t2.startTransaction();
t2.addKV(iKeyD, iValueD);
t2.commitTransaction();
}
}
- endTime = System.currentTimeMillis();
-
- System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
- System.out.println("Time Taken Per Update: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 4)) );
- System.out.println();
-
System.out.println("Updating Clients...");
t1.update();
t1.update();
t2.update();
- boolean foundError = false;
System.out.println("Checking Key-Values...");
- for (int i = 0; i < NUMBER_OF_TESTS; i++) {
+ for (int i = 0; i < 4; i++) {
String keyA = "a" + i;
String keyB = "b" + i;
String keyC = "c" + i;
String keyD = "d" + i;
- String valueA = "a" + i;
- String valueB = "b" + i;
- String valueC = "c" + i;
- String valueD = "d" + i;
+ String valueA = "a" + (i + NUMBER_OF_TESTS - 1);
+ String valueB = "b" + (i + NUMBER_OF_TESTS - 1);
+ String valueC = "c" + (i + NUMBER_OF_TESTS - 1);
+ String valueD = "d" + (i + NUMBER_OF_TESTS - 1);
IoTString iKeyA = new IoTString(keyA);
IoTString iKeyB = new IoTString(keyB);
IoTString testValD2 = t2.getCommitted(iKeyD);
if ((testValA1 == null) || (testValA1.equals(iValueA) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyA);
+ System.out.println("Key-Value t1 incorrect: " + keyA + " " + testValA1);
foundError = true;
}
if ((testValB1 == null) || (testValB1.equals(iValueB) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyB);
+ System.out.println("Key-Value t1 incorrect: " + keyB + " " + testValB1);
foundError = true;
}
if ((testValC1 == null) || (testValC1.equals(iValueC) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyC);
+ System.out.println("Key-Value t1 incorrect: " + keyC + " " + testValC1);
foundError = true;
}
if ((testValD1 == null) || (testValD1.equals(iValueD) == false)) {
- System.out.println("Key-Value t1 incorrect: " + keyD);
+ System.out.println("Key-Value t1 incorrect: " + keyD + " " + testValD1);
foundError = true;
}
}
}
- static void test4() {
+ static void test4() throws ServerException {
long startTime = 0;
long endTime = 0;
endTime = System.currentTimeMillis();
System.out.println("Time Taken: " + (double) ((endTime - startTime) / 1000.0) );
- System.out.println("Time Taken Per Update: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 8)) );
+ System.out.println("Time Taken Per Update: " + (double) (((endTime - startTime) / 1000.0) / (NUMBER_OF_TESTS * 16)) );
System.out.println();
}
}
- static void test3() {
+ static void test3() throws ServerException {
long startTime = 0;
long endTime = 0;
+ boolean foundError = false;
// Setup the 2 clients
Table t1 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 321);
t1.update();
t2.update();
- boolean foundError = false;
System.out.println("Checking Key-Values...");
for (int i = 0; i < NUMBER_OF_TESTS; i++) {
}
}
- static void test2() {
+ static void test2() throws ServerException {
long startTime = 0;
long endTime = 0;
Table t2 = new Table("http://127.0.0.1/test.iotcloud/", "reallysecret", 351);
t2.update();
- // t1.rebuild();
- // t2.rebuild();
-
-
-
// Make the Keys
System.out.println("Setting up keys");
startTime = System.currentTimeMillis();