From 3558e45ab6758072c84272e185f2755e885798e1 Mon Sep 17 00:00:00 2001 From: Sylvain Lebresne Date: Mon, 21 May 2012 19:26:50 +0200 Subject: [PATCH 1/2] Rename stress to cassandra-stress and include in debian packaging patch by Nick Bailey; reviewed by thepaul for CASSANDRA-4256 --- CHANGES.txt | 1 + debian/cassandra.install | 1 + debian/rules | 4 ++ tools/bin/{stress => cassandra-stress} | 24 +++++------ .../bin/{stress.bat => cassandra-stress.bat} | 0 tools/bin/{stressd => cassandra-stressd} | 2 +- tools/bin/cassandra.in.sh | 42 +++++++++++++++++++ tools/stress/README.txt | 14 +++---- .../org/apache/cassandra/stress/Stress.java | 2 +- 9 files changed, 67 insertions(+), 23 deletions(-) rename tools/bin/{stress => cassandra-stress} (70%) mode change 100755 => 100644 rename tools/bin/{stress.bat => cassandra-stress.bat} (100%) mode change 100755 => 100644 rename tools/bin/{stressd => cassandra-stressd} (98%) mode change 100755 => 100644 create mode 100644 tools/bin/cassandra.in.sh diff --git a/CHANGES.txt b/CHANGES.txt index cc378fd8a1..4d178d09bb 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -53,6 +53,7 @@ * fix missing arrayOffset in FBUtilities.hash (CASSANDRA-4250) * (cql3) Add name of parameters in CqlResultSet (CASSANDRA-4242) * (cql3) Correctly validat order by queries (CASSANDRA-4246) + * rename stress to cassandra-stress for saner packaging (CASSANDRA-4256) Merged from 1.0: * Fix super columns bug where cache is not updated (CASSANDRA-4190) * fix maxTimestamp to include row tombstones (CASSANDRA-4116) diff --git a/debian/cassandra.install b/debian/cassandra.install index 33ef6c4f0c..f706bd9629 100644 --- a/debian/cassandra.install +++ b/debian/cassandra.install @@ -12,6 +12,7 @@ bin/sstable2json usr/bin bin/sstablekeys usr/bin bin/sstableloader usr/bin bin/cqlsh usr/bin +tools/bin/cassandra-stress usr/bin lib/*.jar usr/share/cassandra/lib lib/*.zip usr/share/cassandra/lib lib/licenses usr/share/doc/cassandra diff --git a/debian/rules b/debian/rules index 97e02742a2..11b78e7b6a 100755 --- a/debian/rules +++ b/debian/rules @@ -45,6 +45,10 @@ install: build dh_install build/apache-cassandra-thrift-$(VERSION).jar \ usr/share/cassandra + # Copy stress jar + dh_install build/tools/lib/stress.jar \ + usr/share/cassandra + dh_link usr/share/cassandra/apache-cassandra-$(VERSION).jar \ usr/share/cassandra/apache-cassandra.jar diff --git a/tools/bin/stress b/tools/bin/cassandra-stress old mode 100755 new mode 100644 similarity index 70% rename from tools/bin/stress rename to tools/bin/cassandra-stress index 8c8d22fb8c..9fe2f88dfb --- a/tools/bin/stress +++ b/tools/bin/cassandra-stress @@ -16,22 +16,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -if [ "x$CLASSPATH" = "x" ]; then - - # execute from the build dir. - if [ -d `dirname $0`/../../build/classes ]; then - for directory in `dirname $0`/../../build/classes/*; do - CLASSPATH=$CLASSPATH:$directory - done - else - if [ -f `dirname $0`/../lib/stress.jar ]; then - CLASSPATH=`dirname $0`/../lib/stress.jar +if [ "x$CASSANDRA_INCLUDE" = "x" ]; then + for include in /usr/share/cassandra/cassandra.in.sh \ + /usr/local/share/cassandra/cassandra.in.sh \ + /opt/cassandra/cassandra.in.sh \ + `dirname $0`/cassandra.in.sh; do + if [ -r $include ]; then + . $include + break fi - fi - - for jar in `dirname $0`/../../lib/*.jar; do - CLASSPATH=$CLASSPATH:$jar done +elif [ -r $CASSANDRA_INCLUDE ]; then + . $CASSANDRA_INCLUDE fi if [ -x $JAVA_HOME/bin/java ]; then diff --git a/tools/bin/stress.bat b/tools/bin/cassandra-stress.bat old mode 100755 new mode 100644 similarity index 100% rename from tools/bin/stress.bat rename to tools/bin/cassandra-stress.bat diff --git a/tools/bin/stressd b/tools/bin/cassandra-stressd old mode 100755 new mode 100644 similarity index 98% rename from tools/bin/stressd rename to tools/bin/cassandra-stressd index 400ebb0625..8d337e5411 --- a/tools/bin/stressd +++ b/tools/bin/cassandra-stressd @@ -16,7 +16,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -DESC="Stress Test Daemon" +DESC="Cassandra Stress Test Daemon" if [ "x$CLASSPATH" = "x" ]; then diff --git a/tools/bin/cassandra.in.sh b/tools/bin/cassandra.in.sh new file mode 100644 index 0000000000..aad3257e57 --- /dev/null +++ b/tools/bin/cassandra.in.sh @@ -0,0 +1,42 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +if [ "x$CASSANDRA_HOME" = "x" ]; then + CASSANDRA_HOME=`dirname $0`/../../ +fi + +# The directory where Cassandra's configs live (required) +if [ "x$CASSANDRA_CONF" = "x" ]; then + CASSANDRA_CONF=$CASSANDRA_HOME/conf +fi + +# This can be the path to a jar file, or a directory containing the +# compiled classes. NOTE: This isn't needed by the startup script, +# it's just used here in constructing the classpath. +cassandra_bin=$CASSANDRA_HOME/build/classes/main +cassandra_bin=$cassandra_bin:$CASSANDRA_HOME/build/classes/stress +cassandra_bin=$cassandra_bin:$CASSANDRA_HOME/build/classes/thrift +#cassandra_bin=$cassandra_home/build/cassandra.jar + +# JAVA_HOME can optionally be set here +#JAVA_HOME=/usr/local/jdk6 + +# The java classpath (required) +CLASSPATH=$CASSANDRA_CONF:$cassandra_bin + +for jar in $CASSANDRA_HOME/lib/*.jar; do + CLASSPATH=$CLASSPATH:$jar +done diff --git a/tools/stress/README.txt b/tools/stress/README.txt index 4a43a2d9ea..f39a8d7d3f 100644 --- a/tools/stress/README.txt +++ b/tools/stress/README.txt @@ -1,14 +1,14 @@ -stress +cassandra-stress ====== Description ----------- -stress is a tool for benchmarking and load testing a Cassandra +cassandra-stress is a tool for benchmarking and load testing a Cassandra cluster. It is significantly faster than the older py_stress tool. Setup ----- -Run `ant` from the Cassandra source directory, then stress can be invoke from tools/bin/stress +Run `ant` from the Cassandra source directory, then cassandra-stress can be invoke from tools/bin/cassandra-stress Usage ----- @@ -42,7 +42,7 @@ Important options: when switching partioners.) This option sets the number of rows to slice at a time and defaults to 1000. -r or --random: - Only used for reads. By default, stress.py will perform reads on rows + Only used for reads. By default, cassandra-stress will perform reads on rows with a guassian distribution, which will cause some repeats. Setting this option makes the reads completely random instead. -i or --progress-interval: @@ -53,6 +53,6 @@ Remember that you must perform inserts before performing reads or range slices. Examples -------- - * contrib/stress/bin/stress -d 192.168.1.101 # 1M inserts to given host - * contrib/stress/bin/stress -d 192.168.1.101 -o read # 1M reads - * contrib/stress/bin/stress -d 192.168.1.101,192.168.1.102 -n 10000000 # 10M inserts spread across two nodes + * tools/bin/cassandra-stress -d 192.168.1.101 # 1M inserts to given host + * tools/bin/cassandra-stress -d 192.168.1.101 -o read # 1M reads + * tools/bin/cassandra-stress -d 192.168.1.101,192.168.1.102 -n 10000000 # 10M inserts spread across two nodes diff --git a/tools/stress/src/org/apache/cassandra/stress/Stress.java b/tools/stress/src/org/apache/cassandra/stress/Stress.java index b490d6918b..738a1c043c 100644 --- a/tools/stress/src/org/apache/cassandra/stress/Stress.java +++ b/tools/stress/src/org/apache/cassandra/stress/Stress.java @@ -100,7 +100,7 @@ public final class Stress */ public static void printHelpMessage() { - System.out.println("Usage: ./bin/stress [options]\n\nOptions:"); + System.out.println("Usage: ./bin/cassandra-stress [options]\n\nOptions:"); for(Object o : Session.availableOptions.getOptions()) { From 02672936f635c93e84ed6625bb994e1628da5a9b Mon Sep 17 00:00:00 2001 From: Vijay Parthasarathy Date: Mon, 21 May 2012 13:54:03 -0700 Subject: [PATCH 2/2] update clhm to 1.3 patch by Vijay; reviewed by jbellis for CASSANDRA-4150 --- lib/concurrentlinkedhashmap-lru-1.2.jar | Bin 53011 -> 0 bytes lib/concurrentlinkedhashmap-lru-1.3.jar | Bin 0 -> 54345 bytes .../cache/ConcurrentLinkedHashCache.java | 10 ++++----- .../ConcurrentLinkedHashCacheProvider.java | 2 +- .../org/apache/cassandra/cache/ICache.java | 6 +++--- .../cassandra/cache/IRowCacheProvider.java | 2 +- .../cassandra/cache/InstrumentingCache.java | 8 +++---- .../cassandra/cache/SerializingCache.java | 8 +++---- .../cache/SerializingCacheProvider.java | 2 +- .../org/apache/cassandra/config/Config.java | 4 ++-- .../cassandra/config/DatabaseDescriptor.java | 6 +++--- .../cassandra/service/CacheService.java | 20 +++++++++--------- .../cassandra/service/CacheServiceMBean.java | 16 +++++++------- .../cassandra/cache/CacheProviderTest.java | 2 +- 14 files changed, 43 insertions(+), 43 deletions(-) delete mode 100644 lib/concurrentlinkedhashmap-lru-1.2.jar create mode 100644 lib/concurrentlinkedhashmap-lru-1.3.jar diff --git a/lib/concurrentlinkedhashmap-lru-1.2.jar b/lib/concurrentlinkedhashmap-lru-1.2.jar deleted file mode 100644 index 74e763609072b7f2f6b62af7339384e6141d41ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53011 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≀MXhqcjfsPWvQMExVx4v-x_xU7A;jZ0na6h#i^KE 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 implements ICache * * @return initialized cache */ - public static ConcurrentLinkedHashCache create(int capacity) + public static ConcurrentLinkedHashCache create(long capacity) { return create(capacity, Weighers.singleton()); } @@ -65,7 +65,7 @@ public class ConcurrentLinkedHashCache implements ICache * * @return initialized cache */ - public static ConcurrentLinkedHashCache create(int weightedCapacity, Weigher weigher) + public static ConcurrentLinkedHashCache create(long weightedCapacity, Weigher weigher) { ConcurrentLinkedHashMap map = new ConcurrentLinkedHashMap.Builder() .weigher(weigher) @@ -76,12 +76,12 @@ public class ConcurrentLinkedHashCache implements ICache return new ConcurrentLinkedHashCache(map); } - public int capacity() + public long capacity() { return map.capacity(); } - public void setCapacity(int capacity) + public void setCapacity(long capacity) { map.setCapacity(capacity); } @@ -96,7 +96,7 @@ public class ConcurrentLinkedHashCache implements ICache return map.size(); } - public int weightedSize() + public long weightedSize() { return map.weightedSize(); } diff --git a/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java b/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java index 71babd668b..cab3df5182 100644 --- a/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java +++ b/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java @@ -27,7 +27,7 @@ import org.github.jamm.MemoryMeter; public class ConcurrentLinkedHashCacheProvider implements IRowCacheProvider { - public ICache create(int capacity, boolean useMemoryWeigher) + public ICache create(long capacity, boolean useMemoryWeigher) { return ConcurrentLinkedHashCache.create(capacity, useMemoryWeigher ? createMemoryWeigher() diff --git a/src/java/org/apache/cassandra/cache/ICache.java b/src/java/org/apache/cassandra/cache/ICache.java index 5f8e00bf93..07a76690d4 100644 --- a/src/java/org/apache/cassandra/cache/ICache.java +++ b/src/java/org/apache/cassandra/cache/ICache.java @@ -30,9 +30,9 @@ import java.util.Set; */ public interface ICache { - public int capacity(); + public long capacity(); - public void setCapacity(int capacity); + public void setCapacity(long capacity); public void put(K key, V value); @@ -46,7 +46,7 @@ public interface ICache public int size(); - public int weightedSize(); + public long weightedSize(); public void clear(); diff --git a/src/java/org/apache/cassandra/cache/IRowCacheProvider.java b/src/java/org/apache/cassandra/cache/IRowCacheProvider.java index 9e1eb7c1da..cb6c0d1b24 100644 --- a/src/java/org/apache/cassandra/cache/IRowCacheProvider.java +++ b/src/java/org/apache/cassandra/cache/IRowCacheProvider.java @@ -27,5 +27,5 @@ import org.apache.cassandra.db.ColumnFamily; */ public interface IRowCacheProvider { - public ICache create(int capacity, boolean useMemoryWeigher); + public ICache create(long capacity, boolean useMemoryWeigher); } diff --git a/src/java/org/apache/cassandra/cache/InstrumentingCache.java b/src/java/org/apache/cassandra/cache/InstrumentingCache.java index b4d048fe84..405eb097ea 100644 --- a/src/java/org/apache/cassandra/cache/InstrumentingCache.java +++ b/src/java/org/apache/cassandra/cache/InstrumentingCache.java @@ -74,7 +74,7 @@ public class InstrumentingCache map.remove(key); } - public int getCapacity() + public long getCapacity() { return map.capacity(); } @@ -84,12 +84,12 @@ public class InstrumentingCache return capacitySetManually; } - public void updateCapacity(int capacity) + public void updateCapacity(long capacity) { map.setCapacity(capacity); } - public void setCapacity(int capacity) + public void setCapacity(long capacity) { updateCapacity(capacity); capacitySetManually = true; @@ -100,7 +100,7 @@ public class InstrumentingCache return map.size(); } - public int weightedSize() + public long weightedSize() { return map.weightedSize(); } diff --git a/src/java/org/apache/cassandra/cache/SerializingCache.java b/src/java/org/apache/cassandra/cache/SerializingCache.java index 08fad207ba..0754e06978 100644 --- a/src/java/org/apache/cassandra/cache/SerializingCache.java +++ b/src/java/org/apache/cassandra/cache/SerializingCache.java @@ -49,7 +49,7 @@ public class SerializingCache implements ICache private final ConcurrentLinkedHashMap map; private final ISerializer serializer; - public SerializingCache(int capacity, boolean useMemoryWeigher, ISerializer serializer) + public SerializingCache(long capacity, boolean useMemoryWeigher, ISerializer serializer) { this.serializer = serializer; @@ -122,12 +122,12 @@ public class SerializingCache implements ICache return freeableMemory; } - public int capacity() + public long capacity() { return map.capacity(); } - public void setCapacity(int capacity) + public void setCapacity(long capacity) { map.setCapacity(capacity); } @@ -142,7 +142,7 @@ public class SerializingCache implements ICache return map.size(); } - public int weightedSize() + public long weightedSize() { return map.weightedSize(); } diff --git a/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java b/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java index 3a06d36969..934e7a462c 100644 --- a/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java +++ b/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java @@ -31,7 +31,7 @@ import org.apache.cassandra.io.ISerializer; public class SerializingCacheProvider implements IRowCacheProvider { - public ICache create(int capacity, boolean useMemoryWeigher) + public ICache create(long capacity, boolean useMemoryWeigher) { return new SerializingCache(capacity, useMemoryWeigher, new RowCacheSerializer()); } diff --git a/src/java/org/apache/cassandra/config/Config.java b/src/java/org/apache/cassandra/config/Config.java index cb1847e145..658c6e6145 100644 --- a/src/java/org/apache/cassandra/config/Config.java +++ b/src/java/org/apache/cassandra/config/Config.java @@ -128,11 +128,11 @@ public class Config public boolean trickle_fsync = false; public int trickle_fsync_interval_in_kb = 10240; - public Integer key_cache_size_in_mb = null; + public Long key_cache_size_in_mb = null; public int key_cache_save_period = 14400; public int key_cache_keys_to_save = Integer.MAX_VALUE; - public int row_cache_size_in_mb = 0; + public long row_cache_size_in_mb = 0; public int row_cache_save_period = 0; public int row_cache_keys_to_save = Integer.MAX_VALUE; public String row_cache_provider = ConcurrentLinkedHashCacheProvider.class.getSimpleName(); diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index b6a1d4e974..291bc2e4c8 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -83,7 +83,7 @@ public class DatabaseDescriptor private static RequestSchedulerId requestSchedulerId; private static RequestSchedulerOptions requestSchedulerOptions; - private static int keyCacheSizeInMB; + private static long keyCacheSizeInMB; private static IRowCacheProvider rowCacheProvider; /** @@ -1019,7 +1019,7 @@ public class DatabaseDescriptor return conf.trickle_fsync_interval_in_kb; } - public static int getKeyCacheSizeInMB() + public static long getKeyCacheSizeInMB() { return keyCacheSizeInMB; } @@ -1034,7 +1034,7 @@ public class DatabaseDescriptor return conf.key_cache_keys_to_save; } - public static int getRowCacheSizeInMB() + public static long getRowCacheSizeInMB() { return conf.row_cache_size_in_mb; } diff --git a/src/java/org/apache/cassandra/service/CacheService.java b/src/java/org/apache/cassandra/service/CacheService.java index 346f75bab9..bb57801e40 100644 --- a/src/java/org/apache/cassandra/service/CacheService.java +++ b/src/java/org/apache/cassandra/service/CacheService.java @@ -95,7 +95,7 @@ public class CacheService implements CacheServiceMBean { logger.info("Initializing key cache with capacity of {} MBs.", DatabaseDescriptor.getKeyCacheSizeInMB()); - int keyCacheInMemoryCapacity = DatabaseDescriptor.getKeyCacheSizeInMB() * 1024 * 1024; + long keyCacheInMemoryCapacity = DatabaseDescriptor.getKeyCacheSizeInMB() * 1024 * 1024; // as values are constant size we can use singleton weigher // where 48 = 40 bytes (average size of the key) + 8 bytes (size of value) @@ -122,7 +122,7 @@ public class CacheService implements CacheServiceMBean DatabaseDescriptor.getRowCacheSizeInMB(), DatabaseDescriptor.getRowCacheProvider().getClass().getName()); - int rowCacheInMemoryCapacity = DatabaseDescriptor.getRowCacheSizeInMB() * 1024 * 1024; + long rowCacheInMemoryCapacity = DatabaseDescriptor.getRowCacheSizeInMB() * 1024 * 1024; // cache object ICache rc = DatabaseDescriptor.getRowCacheProvider().create(rowCacheInMemoryCapacity, true); @@ -207,17 +207,17 @@ public class CacheService implements CacheServiceMBean rowCache.clear(); } - public int getRowCacheCapacityInBytes() + public long getRowCacheCapacityInBytes() { return rowCache.getCapacity(); } - public int getRowCacheCapacityInMB() + public long getRowCacheCapacityInMB() { return getRowCacheCapacityInBytes() / 1024 / 1024; } - public void setRowCacheCapacityInMB(int capacity) + public void setRowCacheCapacityInMB(long capacity) { if (capacity < 0) throw new RuntimeException("capacity should not be negative."); @@ -225,17 +225,17 @@ public class CacheService implements CacheServiceMBean rowCache.setCapacity(capacity * 1024 * 1024); } - public int getKeyCacheCapacityInBytes() + public long getKeyCacheCapacityInBytes() { return keyCache.getCapacity() * AVERAGE_KEY_CACHE_ROW_SIZE; } - public int getKeyCacheCapacityInMB() + public long getKeyCacheCapacityInMB() { return getKeyCacheCapacityInBytes() / 1024 / 1024; } - public void setKeyCacheCapacityInMB(int capacity) + public void setKeyCacheCapacityInMB(long capacity) { if (capacity < 0) throw new RuntimeException("capacity should not be negative."); @@ -243,12 +243,12 @@ public class CacheService implements CacheServiceMBean keyCache.setCapacity(capacity * 1024 * 1024 / 48); } - public int getRowCacheSize() + public long getRowCacheSize() { return rowCache.weightedSize(); } - public int getKeyCacheSize() + public long getKeyCacheSize() { return keyCache.weightedSize() * AVERAGE_KEY_CACHE_ROW_SIZE; } diff --git a/src/java/org/apache/cassandra/service/CacheServiceMBean.java b/src/java/org/apache/cassandra/service/CacheServiceMBean.java index dfdd623fa2..bf9e46e7be 100644 --- a/src/java/org/apache/cassandra/service/CacheServiceMBean.java +++ b/src/java/org/apache/cassandra/service/CacheServiceMBean.java @@ -46,17 +46,17 @@ public interface CacheServiceMBean */ public void invalidateRowCache(); - public int getRowCacheCapacityInMB(); - public int getRowCacheCapacityInBytes(); - public void setRowCacheCapacityInMB(int capacity); + public long getRowCacheCapacityInMB(); + public long getRowCacheCapacityInBytes(); + public void setRowCacheCapacityInMB(long capacity); - public int getKeyCacheCapacityInMB(); - public int getKeyCacheCapacityInBytes(); - public void setKeyCacheCapacityInMB(int capacity); + public long getKeyCacheCapacityInMB(); + public long getKeyCacheCapacityInBytes(); + public void setKeyCacheCapacityInMB(long capacity); - public int getRowCacheSize(); + public long getRowCacheSize(); - public int getKeyCacheSize(); + public long getKeyCacheSize(); /** * sets each cache's maximum capacity to "reduce_cache_capacity_to" of its current size diff --git a/test/unit/org/apache/cassandra/cache/CacheProviderTest.java b/test/unit/org/apache/cassandra/cache/CacheProviderTest.java index bbecdcd5a6..fcafae2384 100644 --- a/test/unit/org/apache/cassandra/cache/CacheProviderTest.java +++ b/test/unit/org/apache/cassandra/cache/CacheProviderTest.java @@ -38,7 +38,7 @@ public class CacheProviderTest extends SchemaLoader String key3 = "key3"; String key4 = "key4"; String key5 = "key5"; - private static final int CAPACITY = 4; + private static final long CAPACITY = 4; private String tableName = "Keyspace1"; private String cfName = "Standard1";