Updated Branches:
  refs/heads/trunk e0d9ade44 -> 5c7ccb033

Merge branch 'cassandra-1.1' into trunk

Conflicts:
        src/java/org/apache/cassandra/db/ColumnFamily.java


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

Branch: refs/heads/trunk
Commit: 5c7ccb033827f4d041f9e6ff2e4641163362f819
Parents: e0d9ade 2cc612c
Author: Sylvain Lebresne <[email protected]>
Authored: Tue Feb 28 19:02:49 2012 +0100
Committer: Sylvain Lebresne <[email protected]>
Committed: Tue Feb 28 19:02:49 2012 +0100

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../cassandra/cache/ConcurrentLinkedHashCache.java |   10 ++
 .../cache/ConcurrentLinkedHashCacheProvider.java   |   13 +-
 src/java/org/apache/cassandra/cache/ICache.java    |    4 +
 .../org/apache/cassandra/cache/IRowCacheEntry.java |    5 +
 .../apache/cassandra/cache/IRowCacheProvider.java  |    2 +-
 .../apache/cassandra/cache/InstrumentingCache.java |   10 ++
 .../apache/cassandra/cache/RowCacheSentinel.java   |   45 ++++++
 .../apache/cassandra/cache/SerializingCache.java   |   35 ++++-
 .../cassandra/cache/SerializingCacheProvider.java  |   47 ++++++-
 src/java/org/apache/cassandra/db/ColumnFamily.java |    7 +-
 .../org/apache/cassandra/db/ColumnFamilyStore.java |  120 +++++++++++----
 .../apache/cassandra/db/HintedHandOffManager.java  |    2 +-
 .../apache/cassandra/db/RowIteratorFactory.java    |    2 +
 .../db/compaction/CompactionIterable.java          |    2 +-
 .../db/compaction/ParallelCompactionIterable.java  |    2 +-
 .../org/apache/cassandra/service/CacheService.java |    8 +-
 .../cassandra/streaming/IncomingStreamReader.java  |    3 +-
 .../org/apache/cassandra/utils/StatusLogger.java   |    3 +-
 .../unit/org/apache/cassandra/db/RowCacheTest.java |    4 +-
 20 files changed, 264 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java
----------------------------------------------------------------------
diff --cc 
src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java
index 0c00539,71babd6..6367364
--- a/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java
+++ b/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCacheProvider.java
@@@ -7,18 -9,17 +7,16 @@@
   * "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.
 + *     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.
   */
 +package org.apache.cassandra.cache;
  
- import org.apache.cassandra.db.ColumnFamily;
- 
  import com.googlecode.concurrentlinkedhashmap.Weigher;
  import com.googlecode.concurrentlinkedhashmap.Weighers;
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/cache/ICache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/cache/IRowCacheProvider.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/cache/InstrumentingCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/cache/SerializingCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cache/SerializingCacheProvider.java
index 483c907,3a06d36..d3e8744
--- a/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java
+++ b/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java
@@@ -7,22 -9,66 +7,65 @@@
   * "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.
 + *     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.
   */
 +package org.apache.cassandra.cache;
  
+ import java.io.DataInput;
+ import java.io.DataOutput;
+ import java.io.IOError;
+ import java.io.IOException;
+ 
  import org.apache.cassandra.db.ColumnFamily;
+ import org.apache.cassandra.db.DBConstants;
+ import org.apache.cassandra.io.ISerializer;
  
  public class SerializingCacheProvider implements IRowCacheProvider
  {
-     public ICache<RowCacheKey, ColumnFamily> create(int capacity, boolean 
useMemoryWeigher)
+     public ICache<RowCacheKey, IRowCacheEntry> create(int capacity, boolean 
useMemoryWeigher)
+     {
+         return new SerializingCache<RowCacheKey, IRowCacheEntry>(capacity, 
useMemoryWeigher, new RowCacheSerializer());
+     }
+ 
+     private static class RowCacheSerializer implements 
ISerializer<IRowCacheEntry>
      {
-         return new SerializingCache<RowCacheKey, ColumnFamily>(capacity, 
useMemoryWeigher, ColumnFamily.serializer());
+         public void serialize(IRowCacheEntry cf, DataOutput out)
+         {
+             assert cf != null; // unlike CFS we don't support nulls, since 
there is no need for that in the cache
+             try
+             {
+                 out.writeBoolean(cf instanceof RowCacheSentinel);
+                 if (cf instanceof RowCacheSentinel)
+                     out.writeLong(((RowCacheSentinel) cf).sentinelId);
+                 else
+                     ColumnFamily.serializer.serialize((ColumnFamily) cf, out);
+             }
+             catch (IOException e)
+             {
+                 throw new IOError(e);
+             }
+         }
+ 
+         public IRowCacheEntry deserialize(DataInput in) throws IOException
+         {
+             boolean isSentinel = in.readBoolean();
+             if (isSentinel)
+                 return new RowCacheSentinel(in.readLong());
+             return ColumnFamily.serializer.deserialize(in);
+         }
+ 
+         public long serializedSize(IRowCacheEntry cf)
+         {
 -            return DBConstants.boolSize
++            return DBConstants.BOOL_SIZE
+                    + (cf instanceof RowCacheSentinel
 -                      ? DBConstants.intSize + DBConstants.longSize
++                      ? DBConstants.INT_SIZE + DBConstants.LONG_SIZE
+                       : 
ColumnFamily.serializer().serializedSize((ColumnFamily) cf));
+         }
      }
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/db/ColumnFamily.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamily.java
index 3bb70b1,740a0a6..dcf52f4
--- a/src/java/org/apache/cassandra/db/ColumnFamily.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamily.java
@@@ -35,10 -37,10 +36,10 @@@ import org.apache.cassandra.utils.ByteB
  import org.apache.cassandra.utils.FBUtilities;
  import org.apache.cassandra.utils.HeapAllocator;
  
- public class ColumnFamily extends AbstractColumnContainer
+ public class ColumnFamily extends AbstractColumnContainer implements 
IRowCacheEntry
  {
 +    /* The column serializer for this Column Family. Create based on config. 
*/
-     private static final ColumnFamilySerializer serializer = new 
ColumnFamilySerializer();
+     public static final ColumnFamilySerializer serializer = new 
ColumnFamilySerializer();
 -
      private final CFMetaData cfm;
  
      public static ColumnFamilySerializer serializer()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index b1b745c,e14db96..e5675c2
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -15,9 -15,12 +15,11 @@@
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
 -
  package org.apache.cassandra.db;
  
- import java.io.*;
+ import java.io.File;
+ import java.io.IOError;
+ import java.io.IOException;
  import java.lang.management.ManagementFactory;
  import java.nio.ByteBuffer;
  import java.util.*;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/db/RowIteratorFactory.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/db/compaction/ParallelCompactionIterable.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/service/CacheService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/streaming/IncomingStreamReader.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c7ccb03/src/java/org/apache/cassandra/utils/StatusLogger.java
----------------------------------------------------------------------

Reply via email to