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 2012/04/17 23:27:42 UTC

[4/10] git commit: merge from 1.0

merge from 1.0


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

Branch: refs/heads/trunk
Commit: 251e050127fd6be617995dd9a5d61db390649909
Parents: a4a83fc 10a64bd
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Apr 17 16:24:22 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Apr 17 16:25:53 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    4 ++++
 .../io/sstable/AbstractSSTableSimpleWriter.java    |    2 +-
 .../io/sstable/SSTableSimpleUnsortedWriter.java    |    5 ++++-
 .../cassandra/io/sstable/SSTableSimpleWriter.java  |   14 +++++++++++---
 4 files changed, 20 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/251e0501/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index f11af3d,814fe99..720289f
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,26 -1,6 +1,30 @@@
 -1.0.10
 +1.1-dev
 + * Allow KS and CF names up to 48 characters (CASSANDRA-4157)
 + * Add support for CL.TWO and CL.THREE in CQL (CASSANDRA-4156)
++Merged from 1.0:
+  * avoid streaming empty files with bulk loader if sstablewriter errors out
+    (CASSANDRA-3946)
 +
 +
 +1.1-rc1
 + * (Hadoop) fix wide row iteration when last row read was deleted
 +   (CASSANDRA-4154)
 + * fix read_repair_chance to really default to 0.1 in the cli (CASSANDRA-4114)
 + * Adds caching and bloomFilterFpChange to CQL options (CASSANDRA-4042)
 + * Adds posibility to autoconfigure size of the KeyCache (CASSANDRA-4087)
 + * fix KEYS index from skipping results (CASSANDRA-3996)
 + * Remove sliced_buffer_size_in_kb dead option (CASSANDRA-4076)
 + * make loadNewSStable preserve sstable version (CASSANDRA-4077)
 + * Respect 1.0 cache settings as much as possible when upgrading 
 +   (CASSANDRA-4088)
 + * relax path length requirement for sstable files when upgrading on 
 +   non-Windows platforms (CASSANDRA-4110)
 + * fix terminination of the stress.java when errors were encountered
 +   (CASSANDRA-4128)
 + * Move CfDef and KsDef validation out of thrift (CASSANDRA-4037)
 + * Fix get_paged_slice (CASSANDRA-4136)
 + * CQL3: Support slice with exclusive start and stop (CASSANDRA-3785)
++Merged from 1.0:
   * support PropertyFileSnitch in bulk loader (CASSANDRA-4145)
   * add auto_snapshot option allowing disabling snapshot before drop/truncate
     (CASSANDRA-3710)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/251e0501/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/251e0501/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
index 9a69ba3,175512e..fd9d3e1
--- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
@@@ -131,62 -102,26 +131,65 @@@ public class SSTableSimpleUnsortedWrite
  
      private void sync() throws IOException
      {
 -        if (keys.isEmpty())
 +        if (buffer.isEmpty())
              return;
  
 -        SSTableWriter writer = null;
 +        checkForWriterException();
 +
          try
          {
 -            writer = getWriter();
 -            for (Map.Entry<DecoratedKey, ColumnFamily> entry : keys.entrySet())
 -            {
 -                writer.append(entry.getKey(), entry.getValue());
 -            }
 -            writer.closeAndOpenReader();
 +            writeQueue.put(buffer);
          }
 -        catch (IOException e)
 +        catch (InterruptedException e)
          {
 -            if (writer != null)
 -                writer.abort();
 -            throw e;
 +            throw new RuntimeException(e);
          }
 +        buffer = new Buffer();
          currentSize = 0;
 -        keys.clear();
 +    }
 +
 +    private void checkForWriterException() throws IOException
 +    {
 +        // slightly lame way to report exception from the writer, but that should be good enough
 +        if (diskWriter.exception != null)
 +        {
 +            if (diskWriter.exception instanceof IOException)
 +                throw (IOException) diskWriter.exception;
 +            else
 +                throw new RuntimeException(diskWriter.exception);
 +        }
 +    }
 +
 +    // typedef
 +    private static class Buffer extends TreeMap<DecoratedKey, ColumnFamily> {}
 +
 +    private class DiskWriter extends Thread
 +    {
 +        volatile Exception exception = null;
 +
 +        public void run()
 +        {
++            SSTableWriter writer = null;
 +            try
 +            {
 +                while (true)
 +                {
 +                    Buffer b = writeQueue.take();
 +                    if (b == SENTINEL)
 +                        return;
 +
-                     SSTableWriter writer = getWriter();
++                    writer = getWriter();
 +                    for (Map.Entry<DecoratedKey, ColumnFamily> entry : b.entrySet())
 +                        writer.append(entry.getKey(), entry.getValue());
 +                    writer.closeAndOpenReader();
 +                }
 +            }
 +            catch (Exception e)
 +            {
++                if (writer != null)
++                    writer.abort();
 +                exception = e;
 +            }
 +        }
      }
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/251e0501/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
----------------------------------------------------------------------