Class AutoSavingCache.CacheSerializer<K extends CacheKey,V>
- java.lang.Object
-
- org.apache.cassandra.cache.AutoSavingCache.CacheSerializer<K,V>
-
- Direct Known Subclasses:
CacheService.CounterCacheSerializer
,CacheService.KeyCacheSerializer
,CacheService.RowCacheSerializer
- Enclosing class:
- AutoSavingCache<K extends CacheKey,V>
@NotThreadSafe public abstract static class AutoSavingCache.CacheSerializer<K extends CacheKey,V> extends java.lang.Object
A base cache serializer that is used to serialize/deserialize a cache to/from disk.It expects the following lifecycle: Serializations: 1.
serialize(CacheKey, DataOutputPlus, ColumnFamilyStore)
is called for each key in the cache. 2.serializeMetadata(DataOutputPlus)
is called to serialize any metadata. 3.cleanupAfterSerialize()
is called to clean up any resources allocated for serialization.Deserializations: 1.
deserializeMetadata(DataInputPlus)
is called to deserialize any metadata. 2.deserialize(DataInputPlus)
is called for each key in the cache. 3.cleanupAfterDeserialize()
is called to clean up any resources allocated for deserialization.This abstract class provides the default implementation for the metadata serialization/deserialization. The metadata includes a dictionary of column family stores collected during serialization whenever
writeCFS(DataOutputPlus, ColumnFamilyStore)
orgetOrCreateCFSOrdinal(ColumnFamilyStore)
are called. When such metadata is deserialized, the implementation ofdeserialize(DataInputPlus)
may usereadCFS(DataInputPlus)
method to read the ColumnFamilyStore stored withwriteCFS(DataOutputPlus, ColumnFamilyStore)
.
-
-
Constructor Summary
Constructors Constructor Description CacheSerializer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cleanupAfterDeserialize()
void
cleanupAfterSerialize()
abstract Future<Pair<K,V>>
deserialize(DataInputPlus in)
void
deserializeMetadata(DataInputPlus in)
protected int
getOrCreateCFSOrdinal(ColumnFamilyStore cfs)
protected ColumnFamilyStore
readCFS(DataInputPlus in)
abstract void
serialize(K key, DataOutputPlus out, ColumnFamilyStore cfs)
void
serializeMetadata(DataOutputPlus out)
protected void
writeCFS(DataOutputPlus out, ColumnFamilyStore cfs)
-
-
-
Method Detail
-
getOrCreateCFSOrdinal
protected final int getOrCreateCFSOrdinal(ColumnFamilyStore cfs)
-
readCFS
protected ColumnFamilyStore readCFS(DataInputPlus in) throws java.io.IOException
- Throws:
java.io.IOException
-
writeCFS
protected void writeCFS(DataOutputPlus out, ColumnFamilyStore cfs) throws java.io.IOException
- Throws:
java.io.IOException
-
serializeMetadata
public void serializeMetadata(DataOutputPlus out) throws java.io.IOException
- Throws:
java.io.IOException
-
deserializeMetadata
public void deserializeMetadata(DataInputPlus in) throws java.io.IOException
- Throws:
java.io.IOException
-
serialize
public abstract void serialize(K key, DataOutputPlus out, ColumnFamilyStore cfs) throws java.io.IOException
- Throws:
java.io.IOException
-
deserialize
public abstract Future<Pair<K,V>> deserialize(DataInputPlus in) throws java.io.IOException
- Throws:
java.io.IOException
-
cleanupAfterSerialize
public void cleanupAfterSerialize()
-
cleanupAfterDeserialize
public void cleanupAfterDeserialize()
-
-