Repository: giraph Updated Branches: refs/heads/trunk acd532373 -> f9dc6b59e
GIRAPH-1018: Improving PartitionStore API to better match its expected behaviour (heslami via aching) Summary: Currently for statistics operations on each partition, entire partition is loaded using getOrCreatePartition method of PartitionStore. This diff improves the API of PartitionStore by adding required methods to only return the statistics. Test Plan: mvn clean verify Reviewers: dionysis.logothetis, maja.kabiljo, avery.ching Reviewed By: avery.ching Differential Revision: https://reviews.facebook.net/D40731 Project: http://git-wip-us.apache.org/repos/asf/giraph/repo Commit: http://git-wip-us.apache.org/repos/asf/giraph/commit/f9dc6b59 Tree: http://git-wip-us.apache.org/repos/asf/giraph/tree/f9dc6b59 Diff: http://git-wip-us.apache.org/repos/asf/giraph/diff/f9dc6b59 Branch: refs/heads/trunk Commit: f9dc6b59eeb9b80f1cea47f504b6c969e5c560a3 Parents: acd5323 Author: Hassan Eslami <[email protected]> Authored: Mon Jun 29 15:47:12 2015 -0700 Committer: Avery Ching <[email protected]> Committed: Mon Jun 29 16:29:01 2015 -0700 ---------------------------------------------------------------------- CHANGELOG | 3 ++ .../primitives/IdByteArrayMessageStore.java | 8 ++--- .../primitives/IdOneMessagePerVertexStore.java | 7 ++--- .../primitives/IntByteArrayMessageStore.java | 7 ++--- .../primitives/IntFloatMessageStore.java | 12 ++------ .../primitives/LongDoubleMessageStore.java | 9 ++---- .../long_id/LongAbstractMessageStore.java | 10 ++---- .../apache/giraph/graph/GraphTaskManager.java | 10 ++---- .../partition/DiskBackedPartitionStore.java | 32 ++++++++++++++++++++ .../apache/giraph/partition/PartitionStore.java | 14 +++++++++ .../giraph/partition/SimplePartitionStore.java | 20 ++++++++++++ .../apache/giraph/worker/BspServiceWorker.java | 17 ++++------- .../giraph/partition/TestPartitionStores.java | 20 ++++-------- 13 files changed, 99 insertions(+), 70 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/CHANGELOG ---------------------------------------------------------------------- diff --git a/CHANGELOG b/CHANGELOG index 2077a2d..c8c80df 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,9 @@ Giraph Change Log Release 1.2.0 - unreleased + GIRAPH-1018: Improving PartitionStore API to better match its expected behaviour + (heslami via aching) + GIRAPH-1012: Remove giraph-hive (majakabiljo) GIRAPH-1009: Spammy 'lost reservation' messages from ZooKeeper in workers' log at the end of http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdByteArrayMessageStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdByteArrayMessageStore.java b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdByteArrayMessageStore.java index 5342593..0732079 100644 --- a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdByteArrayMessageStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdByteArrayMessageStore.java @@ -30,7 +30,6 @@ import org.apache.giraph.comm.messages.MessageStore; import org.apache.giraph.comm.messages.MessagesIterable; import org.apache.giraph.conf.ImmutableClassesGiraphConfiguration; import org.apache.giraph.factories.MessageValueFactory; -import org.apache.giraph.partition.Partition; import org.apache.giraph.types.ops.PrimitiveIdTypeOps; import org.apache.giraph.types.ops.TypeOpsUtils; import org.apache.giraph.types.ops.collections.Basic2ObjectMap; @@ -102,15 +101,14 @@ public class IdByteArrayMessageStore<I extends WritableComparable, map = new Int2ObjectOpenHashMap<Basic2ObjectMap<I, DataInputOutput>>(); for (int partitionId : service.getPartitionStore().getPartitionIds()) { - Partition<I, ?, ?> partition = - service.getPartitionStore().getOrCreatePartition(partitionId); Basic2ObjectMap<I, DataInputOutput> partitionMap = idTypeOps.create2ObjectOpenHashMap( - Math.max(10, (int) partition.getVertexCount()), + Math.max(10, + (int) service.getPartitionStore() + .getPartitionVertexCount(partitionId)), dataInputOutputWriter); map.put(partitionId, partitionMap); - service.getPartitionStore().putPartition((Partition) partition); } } http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdOneMessagePerVertexStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdOneMessagePerVertexStore.java b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdOneMessagePerVertexStore.java index 373389d..a61536f 100644 --- a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdOneMessagePerVertexStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IdOneMessagePerVertexStore.java @@ -31,7 +31,6 @@ import org.apache.giraph.combiner.MessageCombiner; import org.apache.giraph.comm.messages.MessageStore; import org.apache.giraph.conf.ImmutableClassesGiraphConfiguration; import org.apache.giraph.factories.MessageValueFactory; -import org.apache.giraph.partition.Partition; import org.apache.giraph.types.ops.PrimitiveIdTypeOps; import org.apache.giraph.types.ops.TypeOpsUtils; import org.apache.giraph.types.ops.collections.Basic2ObjectMap; @@ -106,12 +105,10 @@ public class IdOneMessagePerVertexStore<I extends WritableComparable, map = new Int2ObjectOpenHashMap<>(); for (int partitionId : service.getPartitionStore().getPartitionIds()) { - Partition<I, ?, ?> partition = - service.getPartitionStore().getOrCreatePartition(partitionId); Basic2ObjectMap<I, M> partitionMap = idTypeOps.create2ObjectOpenHashMap( - Math.max(10, (int) partition.getVertexCount()), messageWriter); + Math.max(10, (int) service.getPartitionStore() + .getPartitionVertexCount(partitionId)), messageWriter); map.put(partitionId, partitionMap); - service.getPartitionStore().putPartition((Partition) partition); } } http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntByteArrayMessageStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntByteArrayMessageStore.java b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntByteArrayMessageStore.java index 0012bf0..a8c19be 100644 --- a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntByteArrayMessageStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntByteArrayMessageStore.java @@ -23,7 +23,6 @@ import org.apache.giraph.comm.messages.MessageStore; import org.apache.giraph.comm.messages.MessagesIterable; import org.apache.giraph.conf.ImmutableClassesGiraphConfiguration; import org.apache.giraph.factories.MessageValueFactory; -import org.apache.giraph.partition.Partition; import org.apache.giraph.utils.VertexIdMessageBytesIterator; import org.apache.giraph.utils.VertexIdMessageIterator; import org.apache.giraph.utils.VertexIdMessages; @@ -84,13 +83,11 @@ public class IntByteArrayMessageStore<M extends Writable> map = new Int2ObjectOpenHashMap<Int2ObjectOpenHashMap<DataInputOutput>>(); for (int partitionId : service.getPartitionStore().getPartitionIds()) { - Partition<IntWritable, Writable, Writable> partition = - service.getPartitionStore().getOrCreatePartition(partitionId); Int2ObjectOpenHashMap<DataInputOutput> partitionMap = new Int2ObjectOpenHashMap<DataInputOutput>( - (int) partition.getVertexCount()); + (int) service.getPartitionStore() + .getPartitionVertexCount(partitionId)); map.put(partitionId, partitionMap); - service.getPartitionStore().putPartition(partition); } } http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntFloatMessageStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntFloatMessageStore.java b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntFloatMessageStore.java index 8095ad6..7a4ed09 100644 --- a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntFloatMessageStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/IntFloatMessageStore.java @@ -33,8 +33,6 @@ import java.util.List; import org.apache.giraph.bsp.CentralizedServiceWorker; import org.apache.giraph.combiner.MessageCombiner; import org.apache.giraph.comm.messages.MessageStore; -import org.apache.giraph.partition.Partition; -import org.apache.giraph.partition.PartitionStore; import org.apache.giraph.utils.EmptyIterable; import org.apache.giraph.utils.VertexIdMessageIterator; import org.apache.giraph.utils.VertexIdMessages; @@ -74,14 +72,10 @@ public class IntFloatMessageStore map = new Int2ObjectOpenHashMap<Int2FloatOpenHashMap>(); for (int partitionId : service.getPartitionStore().getPartitionIds()) { - PartitionStore<IntWritable, Writable, Writable> partitionStore = - service.getPartitionStore(); - Partition<IntWritable, Writable, Writable> partition = - partitionStore.getOrCreatePartition(partitionId); - Int2FloatOpenHashMap partitionMap = - new Int2FloatOpenHashMap((int) partition.getVertexCount()); + Int2FloatOpenHashMap partitionMap = new Int2FloatOpenHashMap( + (int) service.getPartitionStore() + .getPartitionVertexCount(partitionId)); map.put(partitionId, partitionMap); - partitionStore.putPartition(partition); } } http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/LongDoubleMessageStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/LongDoubleMessageStore.java b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/LongDoubleMessageStore.java index dac98c9..069face 100644 --- a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/LongDoubleMessageStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/LongDoubleMessageStore.java @@ -33,7 +33,6 @@ import java.util.List; import org.apache.giraph.bsp.CentralizedServiceWorker; import org.apache.giraph.combiner.MessageCombiner; import org.apache.giraph.comm.messages.MessageStore; -import org.apache.giraph.partition.Partition; import org.apache.giraph.utils.EmptyIterable; import org.apache.giraph.utils.VertexIdMessageIterator; import org.apache.giraph.utils.VertexIdMessages; @@ -74,12 +73,10 @@ public class LongDoubleMessageStore map = new Int2ObjectOpenHashMap<Long2DoubleOpenHashMap>(); for (int partitionId : service.getPartitionStore().getPartitionIds()) { - Partition<LongWritable, Writable, Writable> partition = - service.getPartitionStore().getOrCreatePartition(partitionId); - Long2DoubleOpenHashMap partitionMap = - new Long2DoubleOpenHashMap((int) partition.getVertexCount()); + Long2DoubleOpenHashMap partitionMap = new Long2DoubleOpenHashMap( + (int) service.getPartitionStore() + .getPartitionVertexCount(partitionId)); map.put(partitionId, partitionMap); - service.getPartitionStore().putPartition(partition); } } http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/long_id/LongAbstractMessageStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/long_id/LongAbstractMessageStore.java b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/long_id/LongAbstractMessageStore.java index 9ee090e..50e8818 100644 --- a/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/long_id/LongAbstractMessageStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/comm/messages/primitives/long_id/LongAbstractMessageStore.java @@ -26,7 +26,6 @@ import org.apache.giraph.bsp.CentralizedServiceWorker; import org.apache.giraph.comm.messages.MessageStore; import org.apache.giraph.conf.ImmutableClassesGiraphConfiguration; import org.apache.giraph.factories.MessageValueFactory; -import org.apache.giraph.partition.Partition; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Writable; @@ -73,13 +72,10 @@ public abstract class LongAbstractMessageStore<M extends Writable, T> map = new Int2ObjectOpenHashMap<>(); for (int partitionId : service.getPartitionStore().getPartitionIds()) { - Partition<LongWritable, Writable, Writable> partition = - service.getPartitionStore().getOrCreatePartition(partitionId); - Long2ObjectOpenHashMap<T> partitionMap = - new Long2ObjectOpenHashMap<T>( - (int) partition.getVertexCount()); + Long2ObjectOpenHashMap<T> partitionMap = new Long2ObjectOpenHashMap<T>( + (int) service.getPartitionStore() + .getPartitionVertexCount(partitionId)); map.put(partitionId, partitionMap); - service.getPartitionStore().putPartition(partition); } } http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/graph/GraphTaskManager.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/graph/GraphTaskManager.java b/giraph-core/src/main/java/org/apache/giraph/graph/GraphTaskManager.java index 161e363..a75f62b 100644 --- a/giraph-core/src/main/java/org/apache/giraph/graph/GraphTaskManager.java +++ b/giraph-core/src/main/java/org/apache/giraph/graph/GraphTaskManager.java @@ -48,7 +48,6 @@ import org.apache.giraph.metrics.GiraphTimer; import org.apache.giraph.metrics.GiraphTimerContext; import org.apache.giraph.metrics.ResetSuperstepMetricsObserver; import org.apache.giraph.metrics.SuperstepMetricsRegistry; -import org.apache.giraph.partition.Partition; import org.apache.giraph.partition.PartitionOwner; import org.apache.giraph.partition.PartitionStats; import org.apache.giraph.partition.PartitionStore; @@ -737,15 +736,10 @@ end[PURE_YARN]*/ PartitionStore<I, V, E> partitionStore = serviceWorker.getPartitionStore(); for (Integer partitionId : partitionStore.getPartitionIds()) { computePartitionIdQueue.add(partitionId); - - Partition<I, V, E> partition = - partitionStore.getOrCreatePartition(partitionId); - verticesToCompute += partition.getVertexCount(); - partitionStore.putPartition(partition); + verticesToCompute += partitionStore.getPartitionVertexCount(partitionId); } WorkerProgress.get().startSuperstep( - serviceWorker.getSuperstep(), - verticesToCompute, + serviceWorker.getSuperstep(), verticesToCompute, serviceWorker.getPartitionStore().getNumPartitions()); GiraphTimerContext computeAllTimerContext = computeAll.time(); http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/partition/DiskBackedPartitionStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/partition/DiskBackedPartitionStore.java b/giraph-core/src/main/java/org/apache/giraph/partition/DiskBackedPartitionStore.java index 98b1fb0..7368420 100644 --- a/giraph-core/src/main/java/org/apache/giraph/partition/DiskBackedPartitionStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/partition/DiskBackedPartitionStore.java @@ -226,6 +226,26 @@ public class DiskBackedPartitionStore<I extends WritableComparable, } @Override + public long getPartitionVertexCount(int partitionId) { + MetaPartition meta = partitions.get(partitionId); + if (meta.getState() == State.ONDISK) { + return meta.getVertexCount(); + } else { + return meta.getPartition().getVertexCount(); + } + } + + @Override + public long getPartitionEdgeCount(int partitionId) { + MetaPartition meta = partitions.get(partitionId); + if (meta.getState() == State.ONDISK) { + return meta.getEdgeCount(); + } else { + return meta.getPartition().getEdgeCount(); + } + } + + @Override public Partition<I, V, E> getOrCreatePartition(Integer id) { MetaPartition meta = new MetaPartition(id); MetaPartition temp; @@ -1093,6 +1113,8 @@ public class DiskBackedPartitionStore<I extends WritableComparable, private long vertexCount; /** Previous number of vertices contained in the partition */ private long prevVertexCount; + /** Number of edges contained in the partition */ + private long edgeCount; /** * Sticky bit; if set, this partition is never supposed to be * written to disk @@ -1115,6 +1137,7 @@ public class DiskBackedPartitionStore<I extends WritableComparable, this.references = 0; this.vertexCount = 0; this.prevVertexCount = 0; + this.edgeCount = 0; this.isSticky = false; this.partition = null; @@ -1143,6 +1166,7 @@ public class DiskBackedPartitionStore<I extends WritableComparable, this.state = State.ONDISK; this.partition = null; this.vertexCount = partition.getVertexCount(); + this.edgeCount = partition.getEdgeCount(); } /** @@ -1213,6 +1237,13 @@ public class DiskBackedPartitionStore<I extends WritableComparable, } /** + * @return the edgeCount + */ + public long getEdgeCount() { + return edgeCount; + } + + /** * @param inc amount to add to the vertex count */ public void addToVertexCount(long inc) { @@ -1259,6 +1290,7 @@ public class DiskBackedPartitionStore<I extends WritableComparable, sb.append("Number of References: " + references + "; "); sb.append("Number of Vertices: " + vertexCount + "; "); sb.append("Previous number of Vertices: " + prevVertexCount + "; "); + sb.append("Number of edges: " + edgeCount + "; "); sb.append("Is Sticky: " + isSticky + "; "); sb.append("Partition: " + partition + "; }"); http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/partition/PartitionStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/partition/PartitionStore.java b/giraph-core/src/main/java/org/apache/giraph/partition/PartitionStore.java index fdc20a5..bbcdcba 100644 --- a/giraph-core/src/main/java/org/apache/giraph/partition/PartitionStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/partition/PartitionStore.java @@ -96,6 +96,20 @@ public abstract class PartitionStore<I extends WritableComparable, public abstract int getNumPartitions(); /** + * Return the number of vertices in a partition. + * @param partitionId Partition id + * @return The number of vertices in the specified partition + */ + public abstract long getPartitionVertexCount(int partitionId); + + /** + * Return the number of edges in a partition. + * @param partitionId Partition id + * @return The number of edges in the specified partition + */ + public abstract long getPartitionEdgeCount(int partitionId); + + /** * Whether the partition store is empty. * * @return True iff there are no partitions in the store http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/partition/SimplePartitionStore.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/partition/SimplePartitionStore.java b/giraph-core/src/main/java/org/apache/giraph/partition/SimplePartitionStore.java index 79c18c3..8ed6081 100644 --- a/giraph-core/src/main/java/org/apache/giraph/partition/SimplePartitionStore.java +++ b/giraph-core/src/main/java/org/apache/giraph/partition/SimplePartitionStore.java @@ -110,5 +110,25 @@ public class SimplePartitionStore<I extends WritableComparable, } @Override + public long getPartitionVertexCount(int partitionId) { + Partition partition = partitions.get(partitionId); + if (partition == null) { + return 0; + } else { + return partition.getVertexCount(); + } + } + + @Override + public long getPartitionEdgeCount(int partitionId) { + Partition partition = partitions.get(partitionId); + if (partition == null) { + return 0; + } else { + return partition.getEdgeCount(); + } + } + + @Override public void putPartition(Partition<I, V, E> partition) { } } http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/main/java/org/apache/giraph/worker/BspServiceWorker.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/main/java/org/apache/giraph/worker/BspServiceWorker.java b/giraph-core/src/main/java/org/apache/giraph/worker/BspServiceWorker.java index 6b74478..ed9a492 100644 --- a/giraph-core/src/main/java/org/apache/giraph/worker/BspServiceWorker.java +++ b/giraph-core/src/main/java/org/apache/giraph/worker/BspServiceWorker.java @@ -704,17 +704,15 @@ else[HADOOP_NON_SECURE]*/ // if necessary List<PartitionStats> partitionStatsList = new ArrayList<PartitionStats>(); - for (Integer partitionId : getPartitionStore().getPartitionIds()) { - Partition<I, V, E> partition = - getPartitionStore().getOrCreatePartition(partitionId); + PartitionStore<I, V, E> partitionStore = getPartitionStore(); + for (Integer partitionId : partitionStore.getPartitionIds()) { PartitionStats partitionStats = - new PartitionStats(partition.getId(), - partition.getVertexCount(), + new PartitionStats(partitionId, + partitionStore.getPartitionVertexCount(partitionId), 0, - partition.getEdgeCount(), + partitionStore.getPartitionEdgeCount(partitionId), 0, 0); partitionStatsList.add(partitionStats); - getPartitionStore().putPartition(partition); } workerGraphPartitioner.finalizePartitionStats( partitionStatsList, getPartitionStore()); @@ -1121,10 +1119,7 @@ else[HADOOP_NON_SECURE]*/ long verticesToStore = 0; PartitionStore<I, V, E> partitionStore = getPartitionStore(); for (int partitionId : partitionStore.getPartitionIds()) { - Partition<I, V, E> partition = - partitionStore.getOrCreatePartition(partitionId); - verticesToStore += partition.getVertexCount(); - partitionStore.putPartition(partition); + verticesToStore += partitionStore.getPartitionVertexCount(partitionId); } WorkerProgress.get().startStoring( verticesToStore, getPartitionStore().getNumPartitions()); http://git-wip-us.apache.org/repos/asf/giraph/blob/f9dc6b59/giraph-core/src/test/java/org/apache/giraph/partition/TestPartitionStores.java ---------------------------------------------------------------------- diff --git a/giraph-core/src/test/java/org/apache/giraph/partition/TestPartitionStores.java b/giraph-core/src/test/java/org/apache/giraph/partition/TestPartitionStores.java index 7605fb5..88e66a6 100644 --- a/giraph-core/src/test/java/org/apache/giraph/partition/TestPartitionStores.java +++ b/giraph-core/src/test/java/org/apache/giraph/partition/TestPartitionStores.java @@ -288,10 +288,8 @@ public class TestPartitionStores { int totalEdges = 0; Partition<IntWritable, IntWritable, NullWritable> partition; for (int i = 0; i < NUM_OF_PARTITIONS; ++i) { - partition = store.getOrCreatePartition(i); - totalVertexes += partition.getVertexCount(); - totalEdges += partition.getEdgeCount(); - store.putPartition(partition); + totalVertexes += store.getPartitionVertexCount(i); + totalEdges += store.getPartitionEdgeCount(i); } assert vertexCounter.get() == NUM_OF_THREADS * NUM_OF_VERTEXES_PER_THREAD; assert totalVertexes == NUM_OF_THREADS * NUM_OF_VERTEXES_PER_THREAD; @@ -412,16 +410,10 @@ public class TestPartitionStores { assertTrue(partitionStore.hasPartition(2)); assertFalse(partitionStore.hasPartition(3)); assertTrue(partitionStore.hasPartition(4)); - partition = partitionStore.getOrCreatePartition(1); - assertEquals(3, partition.getVertexCount()); - partitionStore.putPartition(partition); - partition = partitionStore.getOrCreatePartition(2); - assertEquals(2, partition.getVertexCount()); - partitionStore.putPartition(partition); - partition = partitionStore.getOrCreatePartition(4); - assertEquals(1, partition.getVertexCount()); - assertEquals(2, partition.getEdgeCount()); - partitionStore.putPartition(partition); + assertEquals(3, partitionStore.getPartitionVertexCount(1)); + assertEquals(2, partitionStore.getPartitionVertexCount(2)); + assertEquals(1, partitionStore.getPartitionVertexCount(4)); + assertEquals(2, partitionStore.getPartitionEdgeCount(4)); partitionStore.deletePartition(2); assertEquals(2, partitionStore.getNumPartitions()); }
