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
----------------------------------------------------------------------