Author: [email protected]
Date: Tue Nov 15 12:13:16 2011
New Revision: 1716
Log:
[AMDATUCASSANDRA-132] Applied performance improvements:
- Removed setting the row limit
- Removed the InitService which dropped the test keyspace prior to running the
test, but this could lead to problems
- Refactored the performance test bundle to test all PM methods
- Refactored performance test to not create private CF's anymore, but use one
global CF instead
Modified:
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/osgi/Activator.java
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/CassandraTest.java
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/RESTPerformanceTest.java
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/TestColumnFamilyProvider.java
branches/amdatu-cassandra-0.2.1/test-performance/test-execution/src/main/resources/jmeter-plans/Amdatu
Cassandra PM.jmx
branches/amdatu-cassandra-0.2.1/test-performance/test-releases/cassandra-0.2.0/pom.xml
Modified:
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
==============================================================================
---
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
(original)
+++
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
Tue Nov 15 12:13:16 2011
@@ -33,11 +33,8 @@
* @author ivol
*/
public abstract class CassandraPersistenceManagerBaseImpl implements
CassandraPersistenceManager {
- // Maximum amount of rows to retrieve in queries
- protected static final int ROW_LIMIT = 1000000;
-
// Maximum amount of columns to retrieve in queries
- protected static final int COLUMN_LIMIT = 1000000;
+ protected static final int COLUMN_LIMIT = 1000000;
// Empty byte array
protected static final ByteBuffer EMPTY = ByteBuffer.wrap(new byte[0]);
Modified:
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
==============================================================================
---
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
(original)
+++
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
Tue Nov 15 12:13:16 2011
@@ -317,7 +317,7 @@
else {
// Validate input arguments
validateColumn(columnName);
-
+
mutator.delete(rowKey, columnFamilyName, columnName, serializer);
}
}
@@ -560,8 +560,7 @@
.createRangeSuperSlicesQuery(getHectorKeyspace(), serializer,
serializer, serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKeys(null, null)
- .setRange(superColumn, superColumn, false, colLimit)
- .setRowCount(ROW_LIMIT);
+ .setRange(superColumn, superColumn, false, colLimit);
if (rowKey != null) {
rangeSlicesQuery.setKeys(rowKey, rowKey);
}
@@ -586,8 +585,7 @@
HFactory.createRangeSlicesQuery(getHectorKeyspace(), serializer,
serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKeys(null, null)
- .setRange(column, column, false, colLimit)
- .setRowCount(ROW_LIMIT);
+ .setRange(column, column, false, colLimit);
if (column != null) {
rangeSlicesQuery.setColumnNames(column);
}
Modified:
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
==============================================================================
---
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
(original)
+++
branches/amdatu-cassandra-0.2.1/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
Tue Nov 15 12:13:16 2011
@@ -102,6 +102,7 @@
* Returns a list of row keys of all rows contained by the specified
ColumnFamily. For optimal performance,
* use getRowKeys(String, String, String) instead. If the specified
ColumnFamily does not exist, an
* unchecked exception is thrown.
+ * This method does NOT return tombstones.
*
* @param columnFamilyName
* The ColumnFamily to return all key names for
@@ -119,6 +120,7 @@
* a column and/or super column should be provided that holds the smallest
values of all columns/super columns,
* which should be known by the developer invoking this method.
* If the specified ColumnFamily does not exist, an unchecked exception is
thrown.
+ * This method does NOT return tombstones.
*
* @param columnFamilyName
* The ColumnFamily to return all key names for
Modified:
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/osgi/Activator.java
==============================================================================
---
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/osgi/Activator.java
(original)
+++
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/osgi/Activator.java
Tue Nov 15 12:13:16 2011
@@ -21,8 +21,6 @@
import org.amdatu.cassandra.persistencemanager.CassandraPersistenceManager;
import
org.amdatu.cassandra.persistencemanager.hector.HectorCassandraPersistenceManager;
import org.amdatu.libraries.utilities.osgi.ServiceDependentActivator;
-import org.amdatu.test.performance.service.InitService;
-import org.amdatu.test.performance.service.InitServiceImpl;
import org.amdatu.test.performance.service.RESTPerformanceTest;
import org.amdatu.test.performance.service.TestColumnFamilyProvider;
import org.amdatu.web.httpcontext.ResourceProvider;
@@ -43,33 +41,27 @@
return new Class<?>[] { JaxRsSpi.class };
}
- public void initWithDependencies(BundleContext context, DependencyManager
manager) throws Exception {
- // Create and register the InitService service.
- manager.add(
- createComponent()
- .setInterface(InitService.class.getName(), null)
- .setImplementation(InitServiceImpl.class)
-
.add(createServiceDependency().setService(LogService.class).setRequired(true))
-
.add(createServiceDependency().setService(CassandraDaemonService.class).setRequired(true)));
-
+ public void initWithDependencies(BundleContext context, DependencyManager
manager) throws Exception {
// Create and register the TestColumnFamilyProvider service.
manager.add(
createComponent()
.setInterface(ColumnFamilyProvider.class.getName(), null)
- .setImplementation(TestColumnFamilyProvider.class)
-
.add(createServiceDependency().setService(InitService.class).setRequired(true)));
+ .setImplementation(TestColumnFamilyProvider.class));
// Create the users resource service and register it as REST service
String keyspaceFilter = "(" +
CassandraPersistenceManager.KEYSPACE_AWARE_KEY + "=" +
TestColumnFamilyProvider.KEYSPACE + ")";
- String cfFilter = "(" + ColumnFamilyAvailable.FILTER_NAME + "=" +
TestColumnFamilyProvider.GLOBAL_CF + ")";
+ String cfFilter1 = "(" + ColumnFamilyAvailable.FILTER_NAME + "=" +
TestColumnFamilyProvider.SUPER_CF + ")";
+ String cfFilter2 = "(" + ColumnFamilyAvailable.FILTER_NAME + "=" +
TestColumnFamilyProvider.STANDARD_CF + ")";
+ String cfFilter3 = "(" + ColumnFamilyAvailable.FILTER_NAME + "=" +
TestColumnFamilyProvider.ROWKEY_CF + ")";
manager.add(createComponent()
.setInterface(ResourceProvider.class.getName(), null)
.setImplementation(RESTPerformanceTest.class)
.add(createServiceDependency().setService(LogService.class).setRequired(true))
.add(createServiceDependency().setService(CassandraDaemonService.class).setRequired(true))
.add(createServiceDependency().setService(HectorCassandraPersistenceManager.class,
keyspaceFilter).setRequired(true))
-
.add(createServiceDependency().setService(ColumnFamilyAvailable.class,
cfFilter).setRequired(true))
-
.add(createServiceDependency().setService(InitService.class).setRequired(true)));
+
.add(createServiceDependency().setService(ColumnFamilyAvailable.class,
cfFilter1).setRequired(true))
+
.add(createServiceDependency().setService(ColumnFamilyAvailable.class,
cfFilter2).setRequired(true))
+
.add(createServiceDependency().setService(ColumnFamilyAvailable.class,
cfFilter3).setRequired(true)));
}
@Override
Modified:
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/CassandraTest.java
==============================================================================
---
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/CassandraTest.java
(original)
+++
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/CassandraTest.java
Tue Nov 15 12:13:16 2011
@@ -48,15 +48,34 @@
return "Test completed in " + diff + " milliseconds";
}
- public String testSetValue(String cfName, String rowPrefix) {
+ public String testSetValue(String cfName, String rowPrefix, boolean
isSuper) {
long start = System.currentTimeMillis();
for (int i = 0; i < ROWS; i++) {
- for (int j=0; j<COLS; j++) {
- m_pm.setValue(cfName, rowPrefix + "row_" + i, "super",
"column_" + j, "value_" + i);
+ for (int j=0; j<COLS; j++) {
+ if (isSuper) {
+ m_pm.setValue(cfName, rowPrefix + "row_" + i, "super",
"column_" + j, "value_" + i);
+ } else {
+ m_pm.setValue(cfName, rowPrefix + "row_" + i, null,
"column_" + j, "value_" + i);
+ }
}
}
long diff = System.currentTimeMillis() - start;
return "Test completed in " + diff + " milliseconds";
+ }
+
+ public String testGetValue(String cfName, String rowPrefix, boolean
isSuper) {
+ long start = System.currentTimeMillis();
+ for (int i = 0; i < ROWS; i++) {
+ for (int j=0; j<COLS; j++) {
+ if (isSuper) {
+ m_pm.getValue(cfName, rowPrefix + "row_" + i, "super",
"column_" + j, String.class);
+ } else {
+ m_pm.getValue(cfName, rowPrefix + "row_" + i, null,
"column_" + j, String.class);
+ }
+ }
+ }
+ long diff = System.currentTimeMillis() - start;
+ return "Test completed in " + diff + " milliseconds";
}
public String testGetRowKeys(String cfName) {
@@ -76,7 +95,16 @@
long diff = System.currentTimeMillis() - start;
return "Test completed in " + diff + " milliseconds";
}
-
+
+ public String testGetColumns(String cfName, String rowPrefix) {
+ long start = System.currentTimeMillis();
+ for (int i = 0; i < ROWS; i++) {
+ m_pm.getColumns(cfName, rowPrefix + "row_" + i, String.class);
+ }
+ long diff = System.currentTimeMillis() - start;
+ return "Test completed in " + diff + " milliseconds";
+ }
+
public String testGetSuperColumns(String cfName, String rowPrefix) {
long start = System.currentTimeMillis();
for (int i = 0; i < ROWS; i++) {
@@ -84,6 +112,24 @@
}
long diff = System.currentTimeMillis() - start;
return "Test completed in " + diff + " milliseconds";
+ }
+
+ public String testGetRows(String cfName) {
+ long start = System.currentTimeMillis();
+ for (int i = 0; i < ROWS; i++) {
+ m_pm.getRows(cfName, String.class);
+ }
+ long diff = System.currentTimeMillis() - start;
+ return "Test completed in " + diff + " milliseconds";
+ }
+
+ public String testGetSuperRows(String cfName) {
+ long start = System.currentTimeMillis();
+ for (int i = 0; i < ROWS; i++) {
+ m_pm.getSuperRows(cfName, String.class);
+ }
+ long diff = System.currentTimeMillis() - start;
+ return "Test completed in " + diff + " milliseconds";
}
public String testRemoveRows(String cfName, String rowPrefix) {
Modified:
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/RESTPerformanceTest.java
==============================================================================
---
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/RESTPerformanceTest.java
(original)
+++
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/RESTPerformanceTest.java
Tue Nov 15 12:13:16 2011
@@ -19,7 +19,6 @@
import java.net.URL;
import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
@@ -63,54 +62,41 @@
@Path("status")
public Response status() {
return buildOK("Cassandra performancetest service online");
- }
-
- @PUT
- @Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/private/{cfname}")
- public Response createColumnFamily(@PathParam("cfname") final String
columnFamilyName) {
- String result;
- try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).createPrivateColumnFamily(columnFamilyName);
- } catch (Exception e) {
- throw new WebApplicationException(e);
- }
- return buildOK(result);
- }
-
- @GET
- @Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/global/{prefix}/setvalue")
- public Response testGlobalSetValue(@PathParam("prefix") final String
rowPrefix) {
- String result;
- try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testSetValue(TestColumnFamilyProvider.GLOBAL_CF, rowPrefix);
- } catch (Exception e) {
- throw new WebApplicationException(e);
- }
- return buildOK(result);
- }
-
+ }
+
@GET
@Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/private/{cfname}/setvalue")
- public Response testPrivateSetValue(@PathParam("cfname") final String
columnFamilyName) {
+ @Path("cassandra/{cftype}/{prefix}/setvalue")
+ public Response testStandardSetValue(@PathParam("cftype") final String
cfType, @PathParam("prefix") final String rowPrefix) {
String result;
try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testSetValue(columnFamilyName, "");
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testSetValue(getCF(cfType), rowPrefix, isSuper(cfType));
} catch (Exception e) {
throw new WebApplicationException(e);
}
return buildOK(result);
+ }
+
+ @GET
+ @Produces({MediaType.TEXT_PLAIN})
+ @Path("cassandra/{cftype}/{prefix}/getvalue")
+ public Response testSuperSetValue(@PathParam("cftype") final String
cfType, @PathParam("prefix") final String rowPrefix) {
+ String result;
+ try {
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetValue(getCF(cfType), rowPrefix, isSuper(cfType));
+ } catch (Exception e) {
+ throw new WebApplicationException(e);
+ }
+ return buildOK(result);
}
@GET
@Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/global/getrowkeys")
- public Response testGlobalGetRowKeys() {
+ @Path("cassandra/getrowkeys")
+ public Response testGetRowKeys() {
String result;
try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetRowKeys(TestColumnFamilyProvider.GLOBAL_CF);
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetRowKeys(TestColumnFamilyProvider.SUPER_CF);
} catch (Exception e) {
throw new WebApplicationException(e);
}
@@ -119,50 +105,37 @@
@GET
@Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/global/smartgetrowkeys")
+ @Path("cassandra/smartgetrowkeys")
public Response testSmartGlobalGetRowKeys() {
String result;
try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testSmartGetRowKeys(TestColumnFamilyProvider.GLOBAL_CF);
- } catch (Exception e) {
- throw new WebApplicationException(e);
- }
- return buildOK(result);
- }
-
- @GET
- @Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/private/{cfname}/getrowkeys")
- public Response testPrivateGetRowKeys(@PathParam("cfname") final String
columnFamilyName) {
- String result;
- try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetRowKeys(columnFamilyName);
- } catch (Exception e) {
- throw new WebApplicationException(e);
- }
- return buildOK(result);
- }
-
- @GET
- @Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/private/{cfname}/smartgetrowkeys")
- public Response testSmartPrivateGetRowKeys(@PathParam("cfname") final
String columnFamilyName) {
- String result;
- try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testSmartGetRowKeys(columnFamilyName);
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testSmartGetRowKeys(TestColumnFamilyProvider.SUPER_CF);
} catch (Exception e) {
throw new WebApplicationException(e);
}
return buildOK(result);
}
+
+ @GET
+ @Produces({MediaType.TEXT_PLAIN})
+ @Path("cassandra/{prefix}/getcolumns")
+ public Response testGetColumns(@PathParam("prefix") final String
rowPrefix) {
+ String result;
+ try {
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetColumns(TestColumnFamilyProvider.STANDARD_CF, rowPrefix);
+ } catch (Exception e) {
+ throw new WebApplicationException(e);
+ }
+ return buildOK(result);
+ }
@GET
@Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/global/{prefix}/getsupercolumns")
- public Response testGlobalGetSuperColumns(@PathParam("prefix") final
String rowPrefix) {
+ @Path("cassandra/{prefix}/getsupercolumns")
+ public Response testGetSuperColumns(@PathParam("prefix") final String
rowPrefix) {
String result;
try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetSuperColumns(TestColumnFamilyProvider.GLOBAL_CF, rowPrefix);
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetSuperColumns(TestColumnFamilyProvider.SUPER_CF, rowPrefix);
} catch (Exception e) {
throw new WebApplicationException(e);
}
@@ -171,43 +144,43 @@
@GET
@Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/private/{cfname}/getsupercolumns")
- public Response testPrivateGetSuperColumns(@PathParam("cfname") final
String columnFamilyName) {
+ @Path("cassandra/getrows")
+ public Response testGetRows() {
String result;
try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetSuperColumns(columnFamilyName, "");
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetRows(TestColumnFamilyProvider.STANDARD_CF);
} catch (Exception e) {
throw new WebApplicationException(e);
}
return buildOK(result);
+ }
+
+ @GET
+ @Produces({MediaType.TEXT_PLAIN})
+ @Path("cassandra/getsuperrows")
+ public Response testGetSuperRows() {
+ String result;
+ try {
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testGetSuperRows(TestColumnFamilyProvider.SUPER_CF);
+ } catch (Exception e) {
+ throw new WebApplicationException(e);
+ }
+ return buildOK(result);
}
@GET
@Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/global/{cfname}/removerows")
- public Response testGlobalRemoveRows(@PathParam("prefix") final String
rowPrefix) {
+ @Path("cassandra/{cftype}/{prefix}/removerows")
+ public Response testRemoveRows(@PathParam("cftype") final String cfType,
@PathParam("prefix") final String rowPrefix) {
String result;
try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testRemoveRows(TestColumnFamilyProvider.GLOBAL_CF, rowPrefix);
+ result = new CassandraTest(m_cassandraDaemon,
m_pm).testRemoveRows(getCF(cfType), rowPrefix);
} catch (Exception e) {
throw new WebApplicationException(e);
}
return buildOK(result);
}
-
- @GET
- @Produces({MediaType.TEXT_PLAIN})
- @Path("cassandra/private/{cfname}/removerows")
- public Response testPrivateRemoveRows(@PathParam("cfname") final String
columnFamilyName) {
- String result;
- try {
- result = new CassandraTest(m_cassandraDaemon,
m_pm).testRemoveRows(columnFamilyName, "");
- } catch (Exception e) {
- throw new WebApplicationException(e);
- }
- return buildOK(result);
- }
-
+
protected Response buildOK(String result) {
return Response.ok(result).cacheControl(m_cacheControl).build();
}
@@ -218,6 +191,22 @@
public String getResourceId() {
return "performancetest";
+ }
+
+ private boolean isSuper(String cfType) {
+ if ("super".equals(cfType)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private String getCF(String cfType) {
+ if ("super".equals(cfType)) {
+ return TestColumnFamilyProvider.SUPER_CF;
+ } else {
+ return TestColumnFamilyProvider.STANDARD_CF;
+ }
}
private String createRowKeyTestSet() {
Modified:
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/TestColumnFamilyProvider.java
==============================================================================
---
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/TestColumnFamilyProvider.java
(original)
+++
branches/amdatu-cassandra-0.2.1/test-performance/test-bundle/src/main/java/org/amdatu/test/performance/service/TestColumnFamilyProvider.java
Tue Nov 15 12:13:16 2011
@@ -21,19 +21,23 @@
import org.amdatu.cassandra.listener.ColumnFamilyProvider;
public class TestColumnFamilyProvider implements ColumnFamilyProvider {
- public final static String KEYSPACE = "PerformanceTestKeyspace";
- public final static String GLOBAL_CF = "PerformanceTestGlobalCF";
+ public final static String KEYSPACE = "PerformanceTestKeyspace";
+ public final static String STANDARD_CF = "PerformanceTestStandardCF";
+ public final static String SUPER_CF = "PerformanceTestSuperCF";
public final static String ROWKEY_CF = "PerformanceTestRowKeyCF";
public ColumnFamilyDefinition[] getColumnFamilies() {
// Register column families for Friend, which is a ColumnFamily
specific to this bundle
// <ColumnFamily Name="Friend" ColumnType="Super"
CompareWith="BytesType" CompareSubcolumnsWith="BytesType" />
ColumnFamilyDefinition colFamDef =
- new ColumnFamilyDefinition(GLOBAL_CF, new String[]{KEYSPACE},
ColumnType.SUPER, CompareType.BYTESTYPE,
- CompareType.BYTESTYPE);
- ColumnFamilyDefinition colFamDef2 =
+ new ColumnFamilyDefinition(SUPER_CF, new String[]{KEYSPACE},
ColumnType.SUPER, CompareType.BYTESTYPE,
+ CompareType.BYTESTYPE);
+ ColumnFamilyDefinition colFamDef2 =
+ new ColumnFamilyDefinition(STANDARD_CF, new String[]{KEYSPACE},
ColumnType.STANDARD, CompareType.BYTESTYPE,
+ null);
+ ColumnFamilyDefinition colFamDef3 =
new ColumnFamilyDefinition(ROWKEY_CF, new String[]{KEYSPACE},
ColumnType.SUPER, CompareType.BYTESTYPE,
CompareType.BYTESTYPE);
- return new ColumnFamilyDefinition[]{colFamDef, colFamDef2};
+ return new ColumnFamilyDefinition[]{colFamDef, colFamDef2, colFamDef3};
}
}
Modified:
branches/amdatu-cassandra-0.2.1/test-performance/test-execution/src/main/resources/jmeter-plans/Amdatu
Cassandra PM.jmx
==============================================================================
---
branches/amdatu-cassandra-0.2.1/test-performance/test-execution/src/main/resources/jmeter-plans/Amdatu
Cassandra PM.jmx (original)
+++
branches/amdatu-cassandra-0.2.1/test-performance/test-execution/src/main/resources/jmeter-plans/Amdatu
Cassandra PM.jmx Tue Nov 15 12:13:16 2011
@@ -88,7 +88,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Create private CF" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Standard setValue" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -98,8 +98,28 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/private/CF_${index}</stringProp>
- <stringProp name="HTTPSampler.method">PUT</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/standard/${threadnr}/setvalue</stringProp>
+ <stringProp name="HTTPSampler.method">GET</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ </HTTPSampler>
+ <hashTree/>
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Super setValue" enabled="true">
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain"></stringProp>
+ <stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ <stringProp name="HTTPSampler.protocol"></stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/super/${threadnr}/setvalue</stringProp>
+ <stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
@@ -108,7 +128,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Global setValue" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Standard getValue" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -118,7 +138,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/global/${threadnr}/setvalue</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/standard/${threadnr}/getvalue</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -128,7 +148,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Private setValue" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Super getValue" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -138,7 +158,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/private/CF_${index}/setvalue</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/super/${threadnr}/getvalue</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -148,7 +168,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Global getRowKeys" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="getRowKeys" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -158,7 +178,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/global/getrowkeys</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/getrowkeys</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -168,7 +188,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Global smart getRowKeys" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="smart getRowKeys" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -178,7 +198,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/global/smartgetrowkeys</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/smartgetrowkeys</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -188,7 +208,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Private getRowKeys" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="getColumns" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -198,7 +218,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/private/CF_${index}/getrowkeys</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/${threadnr}/getcolumns</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -208,7 +228,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Private smart getRowKeys" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="getSuperColumns" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -218,7 +238,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/private/CF_${index}/smartgetrowkeys</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/${threadnr}/getsupercolumns</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -228,7 +248,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Global getSuperColumns" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="getRows" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -238,7 +258,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/global/${threadnr}/getsupercolumns</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/getrows</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -248,7 +268,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Private getSuperColumns" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="getSuperRows" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -258,7 +278,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/private/CF_${index}/getsupercolumns</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/getsuperrows</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -268,7 +288,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Global removeRows" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Standard removeRows" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -278,7 +298,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/global/${threadnr}/removerows</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/standard/${threadnr}/removerows</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -288,7 +308,7 @@
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
- <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Private removeRows" enabled="true">
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Super removeRows" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"
guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined
Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -298,7 +318,7 @@
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/private/CF_${index}/removerows</stringProp>
+ <stringProp
name="HTTPSampler.path">/rest/performancetest/cassandra/super/${threadnr}/removerows</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
Modified:
branches/amdatu-cassandra-0.2.1/test-performance/test-releases/cassandra-0.2.0/pom.xml
==============================================================================
---
branches/amdatu-cassandra-0.2.1/test-performance/test-releases/cassandra-0.2.0/pom.xml
(original)
+++
branches/amdatu-cassandra-0.2.1/test-performance/test-releases/cassandra-0.2.0/pom.xml
Tue Nov 15 12:13:16 2011
@@ -274,7 +274,7 @@
<dependency>
<groupId>org.amdatu.cassandra</groupId>
<artifactId>org.amdatu.cassandra.test.performance.bundle</artifactId>
- <version>0.2.0</version>
+ <version>0.2.0-2</version>
<scope>compile</scope>
</dependency>
<dependency>
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits