Permalink
Browse files

Merge branch 'master' of github.com:voldemort/voldemort

Conflicts:
	src/java/voldemort/store/mysql/MysqlStorageConfiguration.java
  • Loading branch information...
2 parents f5b8c7d + 31bab19 commit 63615ea08f4054bb5a797a05fe5f7c053a7ab27e @baepiff committed Sep 11, 2012
Showing with 7,683 additions and 1,564 deletions.
  1. +1 −0 .gitignore
  2. +87 −39 bin/generate_cluster_xml.py
  3. +3 −0 build.properties
  4. +24 −1 build.xml
  5. +4 −0 clients/python/voldemort/client.py
  6. +94 −5 clients/python/voldemort/protocol/voldemort_admin_pb2.py
  7. +0 −14 config/single_node_cluster/config/stores.xml
  8. +2 −1 ...hadoop-store-builder/perf/voldemort/contrib/batchindexer/performance/BdbBuildPerformanceTest.java
  9. +2 −1 ...doop-store-builder/perf/voldemort/contrib/batchindexer/performance/MysqlBuildPerformanceTest.java
  10. +6 −5 contrib/hadoop-store-builder/src/java/voldemort/store/readonly/fetcher/HdfsFetcher.java
  11. +10 −3 contrib/krati/src/java/voldemort/store/krati/KratiStorageConfiguration.java
  12. +1 −1 contrib/krati/src/java/voldemort/store/krati/KratiStorageEngine.java
  13. +354 −161 src/java/voldemort/VoldemortAdminTool.java
  14. +23 −14 src/java/voldemort/VoldemortClientShell.java
  15. +32 −15 src/java/voldemort/client/AbstractStoreClientFactory.java
  16. +59 −1 src/java/voldemort/client/ClientConfig.java
  17. +9 −9 src/java/voldemort/client/SocketStoreClientFactory.java
  18. +58 −0 src/java/voldemort/client/TimeoutConfig.java
  19. +14 −0 src/java/voldemort/client/VoldemortOperation.java
  20. +214 −26 src/java/voldemort/client/protocol/admin/AdminClient.java
  21. +809 −69 src/java/voldemort/client/protocol/pb/VAdminProto.java
  22. +1 −1 src/java/voldemort/client/protocol/vold/VoldemortNativeClientRequestFormat.java
  23. +3 −0 src/java/voldemort/client/rebalance/RebalanceController.java
  24. +6 −0 src/java/voldemort/cluster/Node.java
  25. +44 −8 src/java/voldemort/cluster/failuredetector/AbstractFailureDetector.java
  26. +6 −1 src/java/voldemort/cluster/failuredetector/FailureDetectorConfig.java
  27. +1 −1 src/java/voldemort/{serialization → common}/VoldemortOpCode.java
  28. +1 −0 src/java/voldemort/serialization/VoldemortOperation.java
  29. +72 −1 src/java/voldemort/server/VoldemortConfig.java
  30. +11 −3 src/java/voldemort/server/VoldemortServer.java
  31. +0 −9 src/java/voldemort/server/jmx/JmxService.java
  32. +47 −3 src/java/voldemort/server/niosocket/AsyncRequestHandler.java
  33. +26 −2 src/java/voldemort/server/niosocket/NioSelectorManager.java
  34. +25 −2 src/java/voldemort/server/niosocket/NioSocketService.java
  35. +129 −49 src/java/voldemort/server/protocol/admin/AdminServiceRequestHandler.java
  36. +123 −1 src/java/voldemort/server/protocol/vold/VoldemortNativeRequestHandler.java
  37. +1 −1 src/java/voldemort/server/rebalance/Rebalancer.java
  38. +69 −34 src/java/voldemort/server/rebalance/async/DonorBasedRebalanceAsyncOperation.java
  39. +58 −63 src/java/voldemort/server/rebalance/async/DonorBasedRebalancePusherSlave.java
  40. +25 −8 src/java/voldemort/server/scheduler/DataCleanupJob.java
  41. +18 −0 src/java/voldemort/server/scheduler/SchedulerService.java
  42. +5 −5 src/java/voldemort/server/scheduler/slop/BlockingSlopPusherJob.java
  43. +4 −4 src/java/voldemort/server/scheduler/slop/StreamingSlopPusherJob.java
  44. +13 −13 src/java/voldemort/server/storage/RepairJob.java
  45. +88 −0 src/java/voldemort/server/storage/ScanPermitWrapper.java
  46. +70 −15 src/java/voldemort/server/storage/StorageService.java
  47. +9 −2 src/java/voldemort/store/StorageConfiguration.java
  48. +40 −10 src/java/voldemort/store/StoreDefinition.java
  49. +48 −24 src/java/voldemort/store/StoreDefinitionBuilder.java
  50. +15 −3 src/java/voldemort/store/bdb/BdbRuntimeConfig.java
  51. +150 −23 src/java/voldemort/store/bdb/BdbStorageConfiguration.java
  52. +81 −2 src/java/voldemort/store/bdb/BdbStorageEngine.java
  53. +131 −35 src/java/voldemort/store/bdb/stats/BdbEnvironmentStats.java
  54. +70 −0 src/java/voldemort/store/bdb/stats/SpaceUtilizationStats.java
  55. +8 −2 src/java/voldemort/store/memory/CacheStorageConfiguration.java
  56. +8 −2 src/java/voldemort/store/memory/InMemoryStorageConfiguration.java
  57. +9 −3 src/java/voldemort/store/metadata/MetadataStore.java
  58. +10 −0 src/java/voldemort/store/mysql/MysqlStorageConfiguration.java
  59. +11 −4 src/java/voldemort/store/readonly/ReadOnlyStorageConfiguration.java
  60. +2 −2 src/java/voldemort/store/readonly/ReadOnlyStorageEngine.java
  61. +14 −0 src/java/voldemort/store/routed/PipelineData.java
  62. +110 −0 src/java/voldemort/store/routed/PipelineRoutedStats.java
  63. +213 −26 src/java/voldemort/store/routed/PipelineRoutedStore.java
  64. +4 −3 src/java/voldemort/store/routed/RoutedStore.java
  65. +33 −7 src/java/voldemort/store/routed/RoutedStoreFactory.java
  66. +24 −9 src/java/voldemort/store/routed/ThreadPoolRoutedStore.java
  67. +21 −4 src/java/voldemort/store/routed/action/AbstractReadRepair.java
  68. +4 −3 src/java/voldemort/store/routed/action/PerformParallelDeleteRequests.java
  69. +12 −8 src/java/voldemort/store/routed/action/PerformParallelGetAllRequests.java
  70. +8 −0 src/java/voldemort/store/routed/action/PerformParallelPutRequests.java
  71. +17 −0 src/java/voldemort/store/routed/action/PerformParallelRequests.java
  72. +43 −14 src/java/voldemort/store/routed/action/PerformSerialGetAllRequests.java
  73. +37 −5 src/java/voldemort/store/routed/action/PerformSerialPutRequests.java
  74. +35 −1 src/java/voldemort/store/routed/action/PerformSerialRequests.java
  75. +32 −11 src/java/voldemort/store/slop/HintedHandoff.java
  76. +119 −3 src/java/voldemort/store/socket/SocketStore.java
  77. +13 −4 src/java/voldemort/store/socket/clientrequest/ClientRequestExecutorFactory.java
  78. +65 −66 src/java/voldemort/store/socket/clientrequest/ClientRequestExecutorPool.java
  79. +244 −0 src/java/voldemort/store/stats/ClientSocketStats.java
  80. +101 −0 src/java/voldemort/store/stats/ClientSocketStatsJmx.java
  81. +22 −19 src/java/voldemort/store/stats/Histogram.java
  82. +93 −31 src/java/voldemort/store/stats/RequestCounter.java
  83. +31 −16 src/java/voldemort/store/stats/StoreStats.java
  84. +21 −13 src/java/voldemort/store/stats/StoreStatsJmx.java
  85. +6 −1 src/java/voldemort/store/views/ViewStorageConfiguration.java
  86. +14 −0 src/java/voldemort/utils/ByteArray.java
  87. +3 −0 src/java/voldemort/utils/ByteUtils.java
  88. +84 −0 src/java/voldemort/utils/JNAUtils.java
  89. +11 −2 src/java/voldemort/utils/JmxUtils.java
  90. +4 −0 src/java/voldemort/utils/Props.java
  91. +2 −1 src/java/voldemort/utils/Time.java
  92. +6 −3 src/java/voldemort/versioning/TimeBasedInconsistencyResolver.java
  93. +17 −0 src/java/voldemort/xml/StoreDefinitionsMapper.java
  94. +3 −0 src/java/voldemort/xml/stores.xsd
  95. +11 −0 src/proto/voldemort-admin.proto
  96. +15 −12 test/common/voldemort/ServerTestUtils.java
  97. +65 −0 test/common/voldemort/TestUtils.java
  98. +5 −0 test/common/voldemort/VoldemortTestConstants.java
  99. +39 −0 test/common/voldemort/config/two-stores.xml
  100. +2 −2 test/integration/voldemort/CatBdbStore.java
  101. +2 −1 test/integration/voldemort/performance/BdbGrowth.java
  102. +2 −1 test/integration/voldemort/performance/CacheStorageEnginePerformanceTest.java
  103. +19 −20 test/integration/voldemort/performance/ClientConnectionStressTest.java
  104. +6 −4 test/integration/voldemort/performance/RoutedStoreParallelismTest.java
  105. +1 −1 test/integration/voldemort/performance/StorageEnginePerformanceTest.java
  106. +2 −1 test/integration/voldemort/performance/benchmark/Benchmark.java
  107. +166 −166 test/integration/voldemort/performance/benchmark/Measurement.java
  108. +46 −46 test/integration/voldemort/performance/benchmark/generator/IntegerGenerator.java
  109. +67 −67 test/integration/voldemort/performance/benchmark/generator/ScrambledZipfianGenerator.java
  110. +40 −40 test/integration/voldemort/performance/benchmark/generator/UniformIntegerGenerator.java
  111. +133 −133 test/integration/voldemort/performance/benchmark/generator/ZipfianGenerator.java
  112. +9 −2 test/integration/voldemort/store/noop/NoopStorageConfiguration.java
  113. +8 −2 test/integration/voldemort/store/pausable/PausableStorageConfiguration.java
  114. +119 −0 test/long/voldemort/client/rebalance/RebalanceLongTest.java
  115. +1 −1 test/unit/voldemort/client/AbstractStoreClientFactoryTest.java
  116. +384 −5 test/unit/voldemort/client/AdminServiceBasicTest.java
  117. +213 −0 test/unit/voldemort/client/SocketStoreClientFactoryMbeanTest.java
  118. +74 −6 test/unit/voldemort/client/rebalance/AbstractRebalanceTest.java
  119. +3 −3 test/unit/voldemort/scheduled/BlockingSlopPusherTest.java
  120. +120 −13 test/unit/voldemort/scheduled/DataCleanupJobTest.java
  121. +31 −25 test/unit/voldemort/scheduled/StreamingSlopPusherTest.java
  122. +2 −3 test/unit/voldemort/server/EndToEndTest.java
  123. +16 −8 test/unit/voldemort/server/socket/ClientRequestExecutorPoolTest.java
  124. +115 −0 test/unit/voldemort/server/socket/NioStatsJmxTest.java
  125. +26 −15 test/unit/voldemort/store/AbstractStoreTest.java
  126. +337 −0 test/unit/voldemort/store/bdb/BdbCachePartitioningTest.java
  127. +15 −9 test/unit/voldemort/store/bdb/BdbSplitStorageEngineTest.java
  128. +2 −1 test/unit/voldemort/store/bdb/BdbStorageEngineTest.java
  129. +1 −1 test/unit/voldemort/store/memory/CacheStorageEngineTest.java
  130. +305 −0 test/unit/voldemort/store/routed/GetallNodeReachTest.java
  131. +7 −4 test/unit/voldemort/store/routed/HintedHandoffTest.java
  132. +9 −6 test/unit/voldemort/store/routed/ReadRepairerTest.java
  133. +152 −15 test/unit/voldemort/store/routed/RoutedStoreTest.java
  134. +233 −0 test/unit/voldemort/store/stats/ClientSocketStatsTest.java
  135. +28 −0 test/unit/voldemort/store/stats/RequestCounterTest.java
  136. +142 −0 test/unit/voldemort/versioning/ChainedInconsistencyResolverTest.java
View
@@ -13,3 +13,4 @@ server.state
.version
.temp
.idea
+data/
View
@@ -1,42 +1,90 @@
+#!/usr/bin/python
+
import sys
import random
+import argparse
+
+# Get a random seed
+rseed = int(random.randint(00000000001,99999999999))
+
+# Setup and argument parser
+parser = argparse.ArgumentParser(description='Build a voldemort cluster.xml.')
+# Add supported arguments
+parser.add_argument('-N', '--name', type=str, default='voldemort', dest='name',
+ help='the name you want to give the cluster')
+parser.add_argument('-n', '--nodes', type=int, default=2, dest='nodes',
+ help='the number of nodes in the cluster')
+parser.add_argument('-p', '--partitions', type=int, default=300,
+ dest='partitions', help='number of partitions per node')
+parser.add_argument('-s', '--socket-port', type=int, default=6666,
+ dest='sock_port', help='socket port number')
+parser.add_argument('-a', '--admin-port', type=int, default=6667,
+ dest='admin_port', help='admin port number')
+parser.add_argument('-H', '--http-port', type=int, default=6665,
+ dest='http_port', help='http port number')
+genType = parser.add_mutually_exclusive_group()
+genType.add_argument('-S', '--seed', type=int, default=rseed, dest='seed',
+ help='seed for randomizing partition distribution')
+genType.add_argument('-l', '--loops', type=int, default=1000, dest='loops',
+ help='loop n times, using a different random seed every \
+ time (Note: not currently supported)')
+parser.add_argument('-z', '--zones', type=int, dest='zones',
+ help='if using zones, the number of zones you will have\
+ (Note: you must add your own <zone> fields \
+ manually)')
+
+# Parse arguments
+args = parser.parse_args()
+
+# Check args
+if args.zones:
+ zones = args.zones
+ if (args.nodes % zones) != 0:
+ print "Number of nodes must be evenly divisible by number of zones"
+ sys.exit(1)
+
+# Store arguments
+nodes = args.nodes
+partitions = args.partitions
+name = args.name
+http_port = args.http_port
+sock_port = args.sock_port
+admin_port = args.admin_port
+seed = args.seed
+
+# Generate the full list of partition IDs
+part_ids = range(nodes * partitions)
+# Generate full list of zone IDs
+if args.zones:
+ zone_ids = range(zones)
+ zone_id = 0
+
+# Shuffle up the partitions
+random.seed(seed)
+random.shuffle(part_ids)
+
+# Printing cluster.xml
+print "<!-- Partition distribution generated using seed [%d] -->" % seed
+print "<cluster>"
+print " <name>%s</name>" % name
+
+for i in xrange(nodes):
+ node_partitions = ", ".join(str(p) for p in sorted(part_ids[i*partitions:(i+1)*partitions]))
+
+ print " <server>"
+ print " <id>%d</id>" % i
+ print " <host>host%d</host>" % i
+ print " <http-port>%d</http-port>" % http_port
+ print " <socket-port>%d</socket-port>" % sock_port
+ print " <admin-port>%d</admin-port>" % admin_port
+ print " <partitions>%s</partitions>" % node_partitions
+ # If zones are being used, assign a zone-id
+ if args.zones:
+ print " <zone-id>%d</zone-id>" % zone_id
+ if zone_id == (zones - 1):
+ zone_id = 0
+ else:
+ zone_id += 1
+ print " </server>"
-if len(sys.argv) != 3:
- print >> sys.stderr, "USAGE: python generate_partitions.py <nodes_file> <partitions_per_node>"
- sys.exit()
-
-FORMAT_WIDTH = 10
-
-nodes = 0
-for line in open(sys.argv[1],'r'):
- nodes+=1
-
-partitions = int(sys.argv[2])
-
-ids = range(nodes * partitions)
-
-# use known seed so this is repeatable
-random.seed(92873498274)
-random.shuffle(ids)
-
-print '<cluster>'
-print '<name>prodcluster</name>'
-id = 0
-for host in open(sys.argv[1],'r'):
- print '<server>'
- print " <id>%d</id>" % id
- print " <host>%s</host>" % host.strip()
- print ' <http-port>8081</http-port>'
- print ' <socket-port>6666</socket-port>'
- print ' <partitions>',
- node_ids = sorted(ids[id*partitions:(id+1)*partitions])
- for j in xrange(len(node_ids)):
- print str(node_ids[j]) + ',',
- if j % FORMAT_WIDTH == FORMAT_WIDTH - 1:
- print ' ',
- print ' </partitions>'
- print '</server>'
- id += 1
-print '</cluster>'
-
-
+print "</cluster>"
View
@@ -9,10 +9,13 @@ classes.dir=dist/classes
resources.dir=dist/resources
commontestsrc.dir=test/common
unittestsrc.dir=test/unit
+longtestsrc.dir=test/long
inttestsrc.dir=test/integration
testclasses.dir=dist/testclasses
testreport.dir=dist/junit-reports
testhtml.dir=dist/junit-reports/html
+longtestreport.dir=dist/junit-long-reports
+longtesthtml.dir=dist/junit-long-reports/html
## Contrib
contrib.root.dir=contrib
View
@@ -27,6 +27,7 @@
</condition>
<path id="contrib-classpath">
+ <pathelement path="${resources.dir}" />
<fileset dir="${dist.dir}">
<include name="${name}-${curr.release}.jar" />
</fileset>
@@ -37,6 +38,7 @@
</path>
<path id="test-classpath">
+ <pathelement path="${resources.dir}" />
<pathelement path="${env.VOLD_TEST_JARS}" />
<path refid="main-classpath" />
<pathelement path="${testclasses.dir}" />
@@ -103,6 +105,7 @@
<src path="${unittestsrc.dir}" />
<src path="${inttestsrc.dir}" />
<src path="${commontestsrc.dir}" />
+ <src path="${longtestsrc.dir}" />
<classpath refid="main-classpath" />
</javac>
</target>
@@ -387,14 +390,34 @@
</junitreport>
</target>
+ <target name="junit-long" depends="build, buildtest, junit" description="Run long junit tests that uses larger data sets than normal junit tests.">
+ <replace-dir dir="${longtestreport.dir}" />
+ <replace-dir dir="${longtesthtml.dir}" />
+ <junit printsummary="yes" showoutput="true" maxmemory="1024m">
+ <classpath refid="test-classpath" />
+ <formatter type="xml" />
+ <batchtest fork="yes" todir="${longtestreport.dir}">
+ <fileset dir="${longtestsrc.dir}">
+ <include name="**/*Test.java" />
+ </fileset>
+ </batchtest>
+ </junit>
+ <junitreport todir="${longtesthtml.dir}">
+ <fileset dir="${longtestreport.dir}">
+ <include name="TEST-*.xml" />
+ </fileset>
+ <report todir="${longtesthtml.dir}" format="frames" />
+ </junitreport>
+ </target>
+
<target name="junit-test" depends="build, buildtest, contrib-jar" description="Run single junit test with -Dtest.name=">
<junit printsummary="yes" showoutput="true" maxmemory="1024m">
<classpath refid="contrib-test-classpath" />
<test name="${test.name}" />
</junit>
</target>
- <target name="junit-all" depends="junit, contrib-junit" description="Run All junit tests including contrib.">
+ <target name="junit-all" depends="junit-long, contrib-junit" description="Run All junit tests including contrib.">
</target>
<macrodef name="make-javadocs">
@@ -239,6 +239,9 @@ def _send_request(self, connection, req_bytes):
## read a response from the connection
def _receive_response(self, connection):
size_bytes = connection.recv(4)
+ if not size_bytes:
+ raise VoldemortException('Connection closed')
+
size = struct.unpack('>i', size_bytes)[0]
bytes_read = 0
@@ -252,6 +255,7 @@ def _receive_response(self, connection):
return ''.join(data)
+
## Bootstrap cluster metadata from a list of urls of nodes in the cluster.
## The urls are tuples in the form (host, port).
## A dictionary of node_id => node is returned.

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -15,18 +15,4 @@
<type>string</type>
</value-serializer>
</store>
- <view>
- <name>test-view</name>
- <view-of>test</view-of>
- <owners> ron@hogwarts.edu </owners>
- <view-class>
- voldemort.store.views.UpperCaseView
- </view-class>
- <value-serializer>
- <type>string</type>
- </value-serializer>
- <transforms-serializer>
- <type>string</type>
- </transforms-serializer>
- </view>
</stores>
@@ -28,6 +28,7 @@
import org.apache.hadoop.mapred.FileSplit;
import org.apache.hadoop.mapred.SequenceFileRecordReader;
+import voldemort.TestUtils;
import voldemort.performance.PerformanceTest;
import voldemort.server.VoldemortConfig;
import voldemort.store.Store;
@@ -51,7 +52,7 @@ public static void main(String[] args) throws FileNotFoundException, IOException
String storeName = args[1];
String jsonDataFile = args[2];
- final Store<ByteArray, byte[], byte[]> store = new BdbStorageConfiguration(new VoldemortConfig(new Props(new File(serverPropsFile)))).getStore(storeName);
+ final Store<ByteArray, byte[], byte[]> store = new BdbStorageConfiguration(new VoldemortConfig(new Props(new File(serverPropsFile)))).getStore(TestUtils.makeStoreDefinition(storeName));
final AtomicInteger obsoletes = new AtomicInteger(0);
@@ -28,6 +28,7 @@
import org.apache.hadoop.mapred.FileSplit;
import org.apache.hadoop.mapred.SequenceFileRecordReader;
+import voldemort.TestUtils;
import voldemort.performance.PerformanceTest;
import voldemort.server.VoldemortConfig;
import voldemort.store.Store;
@@ -51,7 +52,7 @@ public static void main(String[] args) throws FileNotFoundException, IOException
String storeName = args[1];
String jsonDataFile = args[2];
- final Store<ByteArray, byte[], byte[]> store = new MysqlStorageConfiguration(new VoldemortConfig(new Props(new File(serverPropsFile)))).getStore(storeName);
+ final Store<ByteArray, byte[], byte[]> store = new MysqlStorageConfiguration(new VoldemortConfig(new Props(new File(serverPropsFile)))).getStore(TestUtils.makeStoreDefinition(storeName));
final AtomicInteger obsoletes = new AtomicInteger(0);
@@ -16,6 +16,7 @@
package voldemort.store.readonly.fetcher;
+import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -283,18 +284,18 @@ private void copyFileWithCheckSum(FileSystem fs,
OutputStream output = null;
try {
input = fs.open(source);
- output = new FileOutputStream(dest);
+ output = new BufferedOutputStream(new FileOutputStream(dest));
byte[] buffer = new byte[bufferSize];
while(true) {
int read = input.read(buffer);
if(read < 0) {
break;
- } else if(read < bufferSize) {
- buffer = ByteUtils.copy(buffer, 0, read);
+ } else {
+ output.write(buffer, 0, read);
}
- output.write(buffer);
+
if(fileCheckSumGenerator != null)
- fileCheckSumGenerator.update(buffer);
+ fileCheckSumGenerator.update(buffer, 0, read);
if(throttler != null)
throttler.maybeThrottle(read);
stats.recordBytes(read);
@@ -4,11 +4,14 @@
import krati.core.segment.MappedSegmentFactory;
import krati.core.segment.SegmentFactory;
+
import org.apache.log4j.Logger;
+import voldemort.VoldemortException;
import voldemort.server.VoldemortConfig;
import voldemort.store.StorageConfiguration;
import voldemort.store.StorageEngine;
+import voldemort.store.StoreDefinition;
import voldemort.utils.ByteArray;
import voldemort.utils.Props;
import voldemort.utils.ReflectUtils;
@@ -42,16 +45,16 @@ public KratiStorageConfiguration(VoldemortConfig config) {
public void close() {}
- public StorageEngine<ByteArray, byte[], byte[]> getStore(String storeName) {
+ public StorageEngine<ByteArray, byte[], byte[]> getStore(StoreDefinition storeDef) {
synchronized(lock) {
- File storeDir = new File(dataDirectory, storeName);
+ File storeDir = new File(dataDirectory, storeDef.getName());
if(!storeDir.exists()) {
logger.info("Creating krati data directory '" + storeDir.getAbsolutePath() + "'.");
storeDir.mkdirs();
}
SegmentFactory segmentFactory = (SegmentFactory) ReflectUtils.callConstructor(factoryClass);
- return new KratiStorageEngine(storeName,
+ return new KratiStorageEngine(storeDef.getName(),
segmentFactory,
segmentFileSizeMb,
lockStripes,
@@ -65,4 +68,8 @@ public String getType() {
return TYPE_NAME;
}
+ public void update(StoreDefinition storeDef) {
+ throw new VoldemortException("Storage config updates not permitted for "
+ + this.getClass().getCanonicalName());
+ }
}
@@ -291,7 +291,7 @@ public KratiClosableIterator(List<Pair<ByteArray, Versioned<byte[]>>> list) {
}
public void close() {
- // Nothing to close here
+ // Nothing to close here
}
public boolean hasNext() {
Oops, something went wrong.

0 comments on commit 63615ea

Please sign in to comment.