merge from 2.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b25a63a8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b25a63a8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b25a63a8 Branch: refs/heads/trunk Commit: b25a63a81d22e409e607ca28c39e20604332cb5d Parents: 78f7142 039e9b9 Author: Jonathan Ellis <jbel...@apache.org> Authored: Mon Feb 3 23:51:16 2014 -0600 Committer: Jonathan Ellis <jbel...@apache.org> Committed: Mon Feb 3 23:51:16 2014 -0600 ---------------------------------------------------------------------- CHANGES.txt | 2 + .../cassandra/config/DatabaseDescriptor.java | 20 ++- .../org/apache/cassandra/io/util/Memory.java | 123 ++++++++++++++++++- .../cassandra/service/CassandraDaemon.java | 2 +- .../cassandra/utils/FastByteComparisons.java | 6 + 5 files changed, 145 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b25a63a8/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 6a4c507,b1fade1..28278c4 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,33 -1,6 +1,35 @@@ +2.1 + * add listsnapshots command to nodetool (CASSANDRA-5742) + * Introduce AtomicBTreeColumns (CASSANDRA-6271) + * Multithreaded commitlog (CASSANDRA-3578) + * allocate fixed index summary memory pool and resample cold index summaries + to use less memory (CASSANDRA-5519) + * Removed multithreaded compaction (CASSANDRA-6142) + * Parallelize fetching rows for low-cardinality indexes (CASSANDRA-1337) + * change logging from log4j to logback (CASSANDRA-5883) + * switch to LZ4 compression for internode communication (CASSANDRA-5887) + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971) + * Remove 1.2 network compatibility code (CASSANDRA-5960) + * Remove leveled json manifest migration code (CASSANDRA-5996) + * Remove CFDefinition (CASSANDRA-6253) + * Use AtomicIntegerFieldUpdater in RefCountedMemory (CASSANDRA-6278) + * User-defined types for CQL3 (CASSANDRA-5590) + * Use of o.a.c.metrics in nodetool (CASSANDRA-5871, 6406) + * Batch read from OTC's queue and cleanup (CASSANDRA-1632) + * Secondary index support for collections (CASSANDRA-4511, 6383) + * SSTable metadata(Stats.db) format change (CASSANDRA-6356) + * Push composites support in the storage engine + (CASSANDRA-5417, CASSANDRA-6520) + * Add snapshot space used to cfstats (CASSANDRA-6231) + * Add cardinality estimator for key count estimation (CASSANDRA-5906) + * CF id is changed to be non-deterministic. Data dir/key cache are created + uniquely for CF id (CASSANDRA-5202) + * New counters implementation (CASSANDRA-6504) + + 2.0.6 + * Fix direct Memory on architectures that do not support unaligned long access + (CASSANDRA-6628) * Let scrub optionally skip broken counter partitions (CASSANDRA-5930) http://git-wip-us.apache.org/repos/asf/cassandra/blob/b25a63a8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 2793237,bd5db69..378fa8a --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@@ -177,9 -177,9 +177,9 @@@ public class DatabaseDescripto /* evaluate the DiskAccessMode Config directive, which also affects indexAccessMode selection */ if (conf.disk_access_mode == Config.DiskAccessMode.auto) { - conf.disk_access_mode = System.getProperty("os.arch").contains("64") ? Config.DiskAccessMode.mmap : Config.DiskAccessMode.standard; + conf.disk_access_mode = hasLargeAddressSpace() ? Config.DiskAccessMode.mmap : Config.DiskAccessMode.standard; indexAccessMode = conf.disk_access_mode; - logger.info("DiskAccessMode 'auto' determined to be " + conf.disk_access_mode + ", indexAccessMode is " + indexAccessMode ); + logger.info("DiskAccessMode 'auto' determined to be {}, indexAccessMode is {}", conf.disk_access_mode, indexAccessMode); } else if (conf.disk_access_mode == Config.DiskAccessMode.mmap_index_only) { @@@ -1384,8 -1324,19 +1384,24 @@@ } } + public static int getIndexSummaryResizeIntervalInMinutes() + { + return conf.index_summary_resize_interval_in_minutes; + } ++ + public static boolean hasLargeAddressSpace() + { + // currently we just check if it's a 64bit arch, but any we only really care if the address space is large + String datamodel = System.getProperty("sun.arch.data.model"); + if (datamodel != null) + { + switch (datamodel) + { + case "64": return true; + case "32": return false; + } + } + String arch = System.getProperty("os.arch"); + return arch.contains("64") || arch.contains("sparcv9"); + } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/b25a63a8/src/java/org/apache/cassandra/service/CassandraDaemon.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/service/CassandraDaemon.java index 2903fc4,9e63c05..0ad47ac --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@@ -94,16 -147,8 +94,16 @@@ public class CassandraDaemo */ protected void setup() { + try + { + logger.info("Hostname: {}", InetAddress.getLocalHost().getHostName()); + } + catch (UnknownHostException e1) + { + logger.info("Could not resolve local host"); + } // log warnings for different kinds of sub-optimal JVMs. tldr use 64-bit Oracle >= 1.6u32 - if (!System.getProperty("os.arch").contains("64")) + if (!DatabaseDescriptor.hasLargeAddressSpace()) logger.info("32bit JVM detected. It is recommended to run Cassandra on a 64bit JVM for better performance."); String javaVersion = System.getProperty("java.version"); String javaVmName = System.getProperty("java.vm.name");