You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/01/24 15:58:02 UTC

[9/10] git commit: merge from 1.1

merge from 1.1


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ba6cd11b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ba6cd11b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ba6cd11b

Branch: refs/heads/cassandra-1.2
Commit: ba6cd11b74c3cebc6491b5a868ac5c26add3872b
Parents: 9719b68 9c8d949
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Jan 24 08:57:47 2013 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Jan 24 08:57:47 2013 -0600

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../db/compaction/LazilyCompactedRow.java          |    2 +-
 .../cassandra/io/sstable/SSTableMetadata.java      |    2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ba6cd11b/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 2f054f7,61bcf60..02317b1
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,55 -1,17 +1,56 @@@
 -1.1.10
 +1.2.1
 + * GossipingPropertyFileSnitch loads saved dc/rack info if needed (CASSANDRA-5133)
 + * drain should flush system CFs too (CASSANDRA-4446)
 + * add inter_dc_tcp_nodelay setting (CASSANDRA-5148)
 + * re-allow wrapping ranges for start_token/end_token range pairing (CASSANDRA-5106)
 + * fix validation compaction of empty rows (CASSADRA-5136)
 + * nodetool methods to enable/disable hint storage/delivery (CASSANDRA-4750)
 + * disallow bloom filter false positive chance of 0 (CASSANDRA-5013)
 + * add threadpool size adjustment methods to JMXEnabledThreadPoolExecutor and 
 +   CompactionManagerMBean (CASSANDRA-5044)
 + * fix hinting for dropped local writes (CASSANDRA-4753)
 + * off-heap cache doesn't need mutable column container (CASSANDRA-5057)
 + * apply disk_failure_policy to bad disks on initial directory creation 
 +   (CASSANDRA-4847)
 + * Optimize name-based queries to use ArrayBackedSortedColumns (CASSANDRA-5043)
 + * Fall back to old manifest if most recent is unparseable (CASSANDRA-5041)
 + * pool [Compressed]RandomAccessReader objects on the partitioned read path
 +   (CASSANDRA-4942)
 + * Add debug logging to list filenames processed by Directories.migrateFile 
 +   method (CASSANDRA-4939)
 + * Expose black-listed directories via JMX (CASSANDRA-4848)
 + * Log compaction merge counts (CASSANDRA-4894)
 + * Minimize byte array allocation by AbstractData{Input,Output} (CASSANDRA-5090)
 + * Add SSL support for the binary protocol (CASSANDRA-5031)
 + * Allow non-schema system ks modification for shuffle to work (CASSANDRA-5097)
 + * cqlsh: Add default limit to SELECT statements (CASSANDRA-4972)
 + * cqlsh: fix DESCRIBE for 1.1 cfs in CQL3 (CASSANDRA-5101)
 + * Correctly gossip with nodes >= 1.1.7 (CASSANDRA-5102)
 + * Ensure CL guarantees on digest mismatch (CASSANDRA-5113)
 + * Validate correctly selects on composite partition key (CASSANDRA-5122)
 + * Fix exception when adding collection (CASSANDRA-5117)
 + * Handle states for non-vnode clusters correctly (CASSANDRA-5127)
 + * Refuse unrecognized replication strategy options (CASSANDRA-4795)
 + * Pick the correct value validator in sstable2json for cql3 tables (CASSANDRA-5134)
 + * Validate login for describe_keyspace, describe_keyspaces and set_keyspace
 +   (CASSANDRA-5144)
 + * Fix inserting empty maps (CASSANDRA-5141)
 + * Don't remove tokens from System table for node we know (CASSANDRA-5121)
 + * fix streaming progress report for compresed files (CASSANDRA-5130)
 + * Coverage analysis for low-CL queries (CASSANDRA-4858)
 + * Stop interpreting dates as valid timeUUID value (CASSANDRA-4936)
 + * Adds E notation for floating point numbers (CASSANDRA-4927)
 + * Detect (and warn) unintentional use of the cql2 thrift methods when cql3 was
 +   intended (CASSANDRA-5172)
 +Merged from 1.1:
   * fix saved key cache not loading at startup (CASSANDRA-5166)
   * fix ConcurrentModificationException in getBootstrapSource (CASSANDRA-5170)
+  * fix sstable maxtimestamp for row deletes and pre-1.1.1 sstables (CASSANDRA-5153)
 -
 -
 -1.1.9
   * Simplify CompressedRandomAccessReader to work around JDK FD bug (CASSANDRA-5088)
   * Improve handling a changing target throttle rate mid-compaction (CASSANDRA-5087)
 - * fix multithreaded compaction deadlock (CASSANDRA-4492)
 - * fix specifying and altering crc_check_chance (CASSANDRA-5053)
 - * Don't expire columns sooner than they should in 2ndary indexes (CASSANDRA-5079)
   * Pig: correctly decode row keys in widerow mode (CASSANDRA-5098)
   * nodetool repair command now prints progress (CASSANDRA-4767)
 + * Ensure Jackson dependency matches lib (CASSANDRA-5126)
   * fix user defined compaction to run against 1.1 data directory (CASSANDRA-5118)
   * Fix CQL3 BATCH authorization caching (CASSANDRA-5145)
   * fix get_count returns incorrect value with TTL (CASSANDRA-5099)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ba6cd11b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 7981d88,37de137..76d5100
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@@ -84,24 -83,16 +84,24 @@@ public class LazilyCompactedRow extend
              else
                  emptyColumnFamily.delete(cf);
          }
 +        this.shouldPurge = controller.shouldPurge(key, maxDelTimestamp);
  
 -        // initialize row header so isEmpty can be called
 -        headerBuffer = new DataOutputBuffer();
 -        ColumnIndexer.serialize(this, headerBuffer);
 +        try
 +        {
 +            indexAndWrite(null);
 +        }
 +        catch (IOException e)
 +        {
 +            throw new RuntimeException(e);
 +        }
          // reach into the reducer used during iteration to get column count, size, max column timestamp
          // (however, if there are zero columns, iterator() will not be called by ColumnIndexer and reducer will be null)
 -        columnCount = reducer == null ? 0 : reducer.size;
 +        columnStats = new ColumnStats(reducer == null ? 0 : reducer.columns, 
 +                                      reducer == null ? Long.MAX_VALUE : reducer.minTimestampSeen, 
-                                       reducer == null ? Long.MIN_VALUE : reducer.maxTimestampSeen,
++                                      reducer == null ? maxDelTimestamp : Math.max(maxDelTimestamp, reducer.maxTimestampSeen),
 +                                      reducer == null ? new StreamingHistogram(SSTable.TOMBSTONE_HISTOGRAM_BIN_SIZE) : reducer.tombstones
 +        );
          columnSerializedSize = reducer == null ? 0 : reducer.serializedSize;
 -        long rowTombstone = emptyColumnFamily.getMarkedForDeleteAt();
 -        maxTimestamp = reducer == null ? rowTombstone : Math.max(rowTombstone, reducer.maxTimestampSeen);
          reducer = null;
      }
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ba6cd11b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
index 8bd9e35,99ced30..bb4ded4
--- a/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
@@@ -291,17 -223,14 +291,17 @@@ public class SSTableMetadat
                  // make sure we don't omit replaying something that we should.  see CASSANDRA-4782
                  replayPosition = ReplayPosition.NONE;
              }
 -            long maxTimestamp = desc.containsTimestamp() ? dis.readLong() : Long.MIN_VALUE;
 -            if (!desc.tracksMaxTimestamp) // see javadoc to Descriptor.containsTimestamp
 +            long minTimestamp = desc.version.tracksMinTimestamp ? dis.readLong() : Long.MIN_VALUE;
 +            if (!desc.version.tracksMinTimestamp)
 +                minTimestamp = Long.MAX_VALUE;
 +            long maxTimestamp = desc.version.containsTimestamp() ? dis.readLong() : Long.MIN_VALUE;
 +            if (!desc.version.tracksMaxTimestamp) // see javadoc to Descriptor.containsTimestamp
-                 maxTimestamp = Long.MIN_VALUE;
+                 maxTimestamp = Long.MAX_VALUE;
 -            double compressionRatio = desc.hasCompressionRatio
 +            double compressionRatio = desc.version.hasCompressionRatio
                                      ? dis.readDouble()
 -                                    : Double.MIN_VALUE;
 -            String partitioner = desc.hasPartitioner ? dis.readUTF() : null;
 -            int nbAncestors = desc.hasAncestors ? dis.readInt() : 0;
 +                                    : NO_COMPRESSION_RATIO;
 +            String partitioner = desc.version.hasPartitioner ? dis.readUTF() : null;
 +            int nbAncestors = desc.version.hasAncestors ? dis.readInt() : 0;
              Set<Integer> ancestors = new HashSet<Integer>(nbAncestors);
              for (int i = 0; i < nbAncestors; i++)
                  ancestors.add(dis.readInt());