Akshay Manchale has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1334

Change subject: Fixed issues with Replication tests - Changed the way the log 
reader writes the newValue - Fixed bug with creating recovery plan
......................................................................

Fixed issues with Replication tests
- Changed the way the log reader writes the newValue
- Fixed bug with creating recovery plan

Change-Id: I204a41311012dc348d4d41ae8bf6ec8554ab3dc3
---
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
M 
asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
M 
asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
M 
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/util/ClusterStateManager.java
4 files changed, 263 insertions(+), 10 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/34/1334/1

diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
index 306b888..361ac7c 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
@@ -208,12 +208,7 @@
     }
 
     private void writeTuple(ByteBuffer buffer, ITupleReference tuple, int 
size) {
-        if (logSource == LogSource.LOCAL) {
-            SimpleTupleWriter.INSTANCE.writeTuple(tuple, buffer.array(), 
buffer.position());
-        } else {
-            //since the tuple is already serialized in remote logs, just copy 
it from beginning to end.
-            System.arraycopy(tuple.getFieldData(0), 0, buffer.array(), 
buffer.position(), size);
-        }
+        SimpleTupleWriter.INSTANCE.writeTuple(tuple, buffer.array(), 
buffer.position());
         buffer.position(buffer.position() + size);
     }
 
diff --git 
a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
 
b/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
index 61322c9..2c3c039 100644
--- 
a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
+++ 
b/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
@@ -1 +1,131 @@
-{"State":"ACTIVE","Metadata_Node":"asterix_nc1","partition_0":"asterix_nc1","partition_1":"asterix_nc1","partition_2":"asterix_nc2","partition_3":"asterix_nc2"}
\ No newline at end of file
+{
+    "cc": {
+        "configUri": "http://10.10.0.2:19002/admin/cluster/cc/config";,
+        "statsUri": "http://10.10.0.2:19002/admin/cluster/cc/stats";,
+        "threadDumpUri": "http://10.10.0.2:19002/admin/cluster/cc/threaddump";
+    },
+    "config": {
+        "api.port": 19002,
+        "cluster.partitions": {
+            "0": "ID:0, Original Node: asterix_nc1, IODevice: 0, Active Node: 
asterix_nc1",
+            "1": "ID:1, Original Node: asterix_nc1, IODevice: 1, Active Node: 
asterix_nc1",
+            "2": "ID:2, Original Node: asterix_nc2, IODevice: 0, Active Node: 
asterix_nc2",
+            "3": "ID:3, Original Node: asterix_nc2, IODevice: 1, Active Node: 
asterix_nc2"
+        },
+        "compiler.framesize": 131072,
+        "compiler.groupmemory": 33554432,
+        "compiler.joinmemory": 33554432,
+        "compiler.pregelix.home": "~/pregelix",
+        "compiler.sortmemory": 33554432,
+        "core.dump.paths": {
+            "asterix_nc1": "/home/vagrant/asterix/logs//asterix_nc1",
+            "asterix_nc2": "/home/vagrant/asterix/logs//asterix_nc2"
+        },
+        "feed.central.manager.port": 4500,
+        "feed.max.threshold.period": 5,
+        "feed.memory.available.wait.timeout": 10,
+        "feed.memory.global.budget": 67108864,
+        "feed.pending.work.threshold": 50,
+        "feed.port": 19003,
+        "instance.name": "asterix",
+        "log.level": "INFO",
+        "max.wait.active.cluster": 60,
+        "metadata.callback.port": 0,
+        "metadata.node": "asterix_nc1",
+        "metadata.partition": "ID:0, Original Node: asterix_nc1, IODevice: 0, 
Active Node: asterix_nc1",
+        "metadata.port": 0,
+        "metadata.registration.timeout.secs": 60,
+        "node.partitions": {
+            "asterix_nc1": [
+                "ID:0, Original Node: asterix_nc1, IODevice: 0, Active Node: 
asterix_nc1",
+                "ID:1, Original Node: asterix_nc1, IODevice: 1, Active Node: 
asterix_nc1"
+            ],
+            "asterix_nc2": [
+                "ID:2, Original Node: asterix_nc2, IODevice: 0, Active Node: 
asterix_nc2",
+                "ID:3, Original Node: asterix_nc2, IODevice: 1, Active Node: 
asterix_nc2"
+            ]
+        },
+        "node.stores": {
+            "asterix_nc1": [
+                "/home/vagrant/asterix/p1/storage",
+                "/home/vagrant/asterix/p2/storage"
+            ],
+            "asterix_nc2": [
+                "/home/vagrant/asterix/p1/storage",
+                "/home/vagrant/asterix/p2/storage"
+            ]
+        },
+        "plot.activate": false,
+        "storage.buffercache.maxopenfiles": 214748364,
+        "storage.buffercache.pagesize": 131072,
+        "storage.buffercache.size": 536870912,
+        "storage.lsm.bloomfilter.falsepositiverate": 0.01,
+        "storage.memorycomponent.globalbudget": 1073741824,
+        "storage.memorycomponent.numcomponents": 2,
+        "storage.memorycomponent.numpages": 256,
+        "storage.memorycomponent.pagesize": 131072,
+        "storage.metadata.memorycomponent.numpages": 64,
+        "transaction.log.dirs": {
+            "asterix_nc1": "/home/vagrant/asterix/tx_logs",
+            "asterix_nc2": "/home/vagrant/asterix/tx_logs"
+        },
+        "txn.commitprofiler.reportinterval": 5,
+        "txn.job.recovery.memorysize": 67108864,
+        "txn.lock.escalationthreshold": 1000,
+        "txn.lock.shrinktimer": 5000,
+        "txn.lock.timeout.sweepthreshold": 10000,
+        "txn.lock.timeout.waitthreshold": 60000,
+        "txn.log.buffer.numpages": 8,
+        "txn.log.buffer.pagesize": 524288,
+        "txn.log.checkpoint.history": 0,
+        "txn.log.checkpoint.lsnthreshold": 67108864,
+        "txn.log.checkpoint.pollfrequency": 120,
+        "txn.log.partitionsize": 2147483648,
+        "web.port": 19001,
+        "web.queryinterface.port": 19006,
+        "web.secondary.port": 19005
+    },
+    "diagnosticsUri": "http://10.10.0.2:19002/admin/diagnostics";,
+    "fullShutdownUri": "http://10.10.0.2:19002/admin/shutdown?all=true";,
+    "metadata_node": "asterix_nc1",
+    "ncs": [
+        {
+            "configUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc1/config";,
+            "node_id": "asterix_nc1",
+            "partitions": [
+                {
+                    "active": true,
+                    "partition_id": "partition_0"
+                },
+                {
+                    "active": true,
+                    "partition_id": "partition_1"
+                }
+            ],
+            "state": "ACTIVE",
+            "statsUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc1/stats";,
+            "threadDumpUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc1/threaddump";
+        },
+        {
+            "configUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc2/config";,
+            "node_id": "asterix_nc2",
+            "partitions": [
+                {
+                    "active": true,
+                    "partition_id": "partition_2"
+                },
+                {
+                    "active": true,
+                    "partition_id": "partition_3"
+                }
+            ],
+            "state": "ACTIVE",
+            "statsUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc2/stats";,
+            "threadDumpUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc2/threaddump";
+        }
+    ],
+    "replicationUri": "http://10.10.0.2:19002/admin/cluster/replication";,
+    "shutdownUri": "http://10.10.0.2:19002/admin/shutdown";,
+    "state": "ACTIVE",
+    "versionUri": "http://10.10.0.2:19002/admin/version";
+}
diff --git 
a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
 
b/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
index 587a97a..076c05b 100644
--- 
a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
+++ 
b/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
@@ -1 +1,131 @@
-{"State":"ACTIVE","Metadata_Node":"asterix_nc2","partition_0":"asterix_nc2","partition_1":"asterix_nc2","partition_2":"asterix_nc2","partition_3":"asterix_nc2"}
\ No newline at end of file
+{
+    "cc": {
+        "configUri": "http://10.10.0.2:19002/admin/cluster/cc/config";,
+        "statsUri": "http://10.10.0.2:19002/admin/cluster/cc/stats";,
+        "threadDumpUri": "http://10.10.0.2:19002/admin/cluster/cc/threaddump";
+    },
+    "config": {
+        "api.port": 19002,
+        "cluster.partitions": {
+            "0": "ID:0, Original Node: asterix_nc1, IODevice: 0, Active Node: 
asterix_nc2",
+            "1": "ID:1, Original Node: asterix_nc1, IODevice: 1, Active Node: 
asterix_nc2",
+            "2": "ID:2, Original Node: asterix_nc2, IODevice: 0, Active Node: 
asterix_nc2",
+            "3": "ID:3, Original Node: asterix_nc2, IODevice: 1, Active Node: 
asterix_nc2"
+        },
+        "compiler.framesize": 131072,
+        "compiler.groupmemory": 33554432,
+        "compiler.joinmemory": 33554432,
+        "compiler.pregelix.home": "~/pregelix",
+        "compiler.sortmemory": 33554432,
+        "core.dump.paths": {
+            "asterix_nc1": "/home/vagrant/asterix/logs//asterix_nc1",
+            "asterix_nc2": "/home/vagrant/asterix/logs//asterix_nc2"
+        },
+        "feed.central.manager.port": 4500,
+        "feed.max.threshold.period": 5,
+        "feed.memory.available.wait.timeout": 10,
+        "feed.memory.global.budget": 67108864,
+        "feed.pending.work.threshold": 50,
+        "feed.port": 19003,
+        "instance.name": "asterix",
+        "log.level": "INFO",
+        "max.wait.active.cluster": 60,
+        "metadata.callback.port": 0,
+        "metadata.node": "asterix_nc1",
+        "metadata.partition": "ID:0, Original Node: asterix_nc1, IODevice: 0, 
Active Node: asterix_nc2",
+        "metadata.port": 0,
+        "metadata.registration.timeout.secs": 60,
+        "node.partitions": {
+            "asterix_nc1": [
+                "ID:0, Original Node: asterix_nc1, IODevice: 0, Active Node: 
asterix_nc2",
+                "ID:1, Original Node: asterix_nc1, IODevice: 1, Active Node: 
asterix_nc2"
+            ],
+            "asterix_nc2": [
+                "ID:2, Original Node: asterix_nc2, IODevice: 0, Active Node: 
asterix_nc2",
+                "ID:3, Original Node: asterix_nc2, IODevice: 1, Active Node: 
asterix_nc2"
+            ]
+        },
+        "node.stores": {
+            "asterix_nc1": [
+                "/home/vagrant/asterix/p1/storage",
+                "/home/vagrant/asterix/p2/storage"
+            ],
+            "asterix_nc2": [
+                "/home/vagrant/asterix/p1/storage",
+                "/home/vagrant/asterix/p2/storage"
+            ]
+        },
+        "plot.activate": false,
+        "storage.buffercache.maxopenfiles": 214748364,
+        "storage.buffercache.pagesize": 131072,
+        "storage.buffercache.size": 536870912,
+        "storage.lsm.bloomfilter.falsepositiverate": 0.01,
+        "storage.memorycomponent.globalbudget": 1073741824,
+        "storage.memorycomponent.numcomponents": 2,
+        "storage.memorycomponent.numpages": 256,
+        "storage.memorycomponent.pagesize": 131072,
+        "storage.metadata.memorycomponent.numpages": 64,
+        "transaction.log.dirs": {
+            "asterix_nc1": "/home/vagrant/asterix/tx_logs",
+            "asterix_nc2": "/home/vagrant/asterix/tx_logs"
+        },
+        "txn.commitprofiler.reportinterval": 5,
+        "txn.job.recovery.memorysize": 67108864,
+        "txn.lock.escalationthreshold": 1000,
+        "txn.lock.shrinktimer": 5000,
+        "txn.lock.timeout.sweepthreshold": 10000,
+        "txn.lock.timeout.waitthreshold": 60000,
+        "txn.log.buffer.numpages": 8,
+        "txn.log.buffer.pagesize": 524288,
+        "txn.log.checkpoint.history": 0,
+        "txn.log.checkpoint.lsnthreshold": 67108864,
+        "txn.log.checkpoint.pollfrequency": 120,
+        "txn.log.partitionsize": 2147483648,
+        "web.port": 19001,
+        "web.queryinterface.port": 19006,
+        "web.secondary.port": 19005
+    },
+    "diagnosticsUri": "http://10.10.0.2:19002/admin/diagnostics";,
+    "fullShutdownUri": "http://10.10.0.2:19002/admin/shutdown?all=true";,
+    "metadata_node": "asterix_nc2",
+    "ncs": [
+        {
+            "configUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc1/config";,
+            "node_id": "asterix_nc1",
+            "partitions": [
+                {
+                    "active": true,
+                    "partition_id": "partition_0"
+                },
+                {
+                    "active": true,
+                    "partition_id": "partition_1"
+                }
+            ],
+            "state": "FAILED",
+            "statsUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc1/stats";,
+            "threadDumpUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc1/threaddump";
+        },
+        {
+            "configUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc2/config";,
+            "node_id": "asterix_nc2",
+            "partitions": [
+                {
+                    "active": true,
+                    "partition_id": "partition_2"
+                },
+                {
+                    "active": true,
+                    "partition_id": "partition_3"
+                }
+            ],
+            "state": "ACTIVE",
+            "statsUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc2/stats";,
+            "threadDumpUri": 
"http://10.10.0.2:19002/admin/cluster/node/asterix_nc2/threaddump";
+        }
+    ],
+    "replicationUri": "http://10.10.0.2:19002/admin/cluster/replication";,
+    "shutdownUri": "http://10.10.0.2:19002/admin/shutdown";,
+    "state": "ACTIVE",
+    "versionUri": "http://10.10.0.2:19002/admin/version";
+}
diff --git 
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/util/ClusterStateManager.java
 
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/util/ClusterStateManager.java
index 942abe3..dd1f350 100644
--- 
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/util/ClusterStateManager.java
+++ 
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/util/ClusterStateManager.java
@@ -320,8 +320,6 @@
                     //TODO (mhubail) currently this assigns the partition to 
the first found active replica.
                     //It needs to be modified to consider load balancing.
                     addActiveReplica(replica, partition, 
partitionRecoveryPlan);
-                    // bug? will always break on first loop execution
-                    break;
                 }
             }
 

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1334
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I204a41311012dc348d4d41ae8bf6ec8554ab3dc3
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Akshay Manchale <akshaym...@gmail.com>

Reply via email to