Interface CacheBlock
-
- All Superinterfaces:
org.apache.hadoop.io.Writable
- All Known Implementing Classes:
CompressedMatrixBlock,FrameBlock,MatrixBlock,TensorBlock
public interface CacheBlock extends org.apache.hadoop.io.WritableInterface for all blocks handled by lazy write buffer. This abstraction allows us to keep the buffer pool independent of matrix and frame blocks.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidcompactEmptyBlock()Free unnecessarily allocated empty block.DataCharacteristicsgetDataCharacteristics()doublegetDouble(int r, int c)Returns the double value at the passed row and column.doublegetDoubleNaN(int r, int c)Returns the double value at the passed row and column.longgetExactSerializedSize()Get the exact serialized size in bytes of the cache block.longgetInMemorySize()Get the in-memory size in bytes of the cache block.intgetNumColumns()intgetNumRows()StringgetString(int r, int c)Returns the string of the value at the passed row and column.booleanisShallowSerialize()Indicates if the cache block is subject to shallow serialized, which is generally true if in-memory size and serialized size are almost identical allowing to avoid unnecessary deep serialize.booleanisShallowSerialize(boolean inclConvert)Indicates if the cache block is subject to shallow serialized, which is generally true if in-memory size and serialized size are almost identical allowing to avoid unnecessary deep serialize.voidmerge(CacheBlock that, boolean appendOnly)Merge the given block into the current block.CacheBlockslice(int rl, int ru, int cl, int cu, boolean deep, CacheBlock block)Slice a sub block out of the current block and write into the given output block.CacheBlockslice(int rl, int ru, int cl, int cu, CacheBlock block)Slice a sub block out of the current block and write into the given output block.voidtoShallowSerializeBlock()Converts a cache block that is not shallow serializable into a form that is shallow serializable.
-
-
-
Method Detail
-
getNumRows
int getNumRows()
-
getNumColumns
int getNumColumns()
-
getDataCharacteristics
DataCharacteristics getDataCharacteristics()
-
getInMemorySize
long getInMemorySize()
Get the in-memory size in bytes of the cache block.- Returns:
- in-memory size in bytes of cache block
-
getExactSerializedSize
long getExactSerializedSize()
Get the exact serialized size in bytes of the cache block.- Returns:
- exact serialized size in bytes of cache block
-
isShallowSerialize
boolean isShallowSerialize()
Indicates if the cache block is subject to shallow serialized, which is generally true if in-memory size and serialized size are almost identical allowing to avoid unnecessary deep serialize.- Returns:
- true if shallow serialized
-
isShallowSerialize
boolean isShallowSerialize(boolean inclConvert)
Indicates if the cache block is subject to shallow serialized, which is generally true if in-memory size and serialized size are almost identical allowing to avoid unnecessary deep serialize.- Parameters:
inclConvert- if true report blocks as shallow serialize that are currently not amenable but can be brought into an amenable form viatoShallowSerializeBlock.- Returns:
- true if shallow serialized
-
toShallowSerializeBlock
void toShallowSerializeBlock()
Converts a cache block that is not shallow serializable into a form that is shallow serializable. This methods has no affect if the given cache block is not amenable.
-
compactEmptyBlock
void compactEmptyBlock()
Free unnecessarily allocated empty block.
-
slice
CacheBlock slice(int rl, int ru, int cl, int cu, CacheBlock block)
Slice a sub block out of the current block and write into the given output block. This method returns the passed instance if not null.- Parameters:
rl- row lowerru- row uppercl- column lowercu- column upperblock- cache block- Returns:
- sub-block of cache block
-
slice
CacheBlock slice(int rl, int ru, int cl, int cu, boolean deep, CacheBlock block)
Slice a sub block out of the current block and write into the given output block. This method returns the passed instance if not null.- Parameters:
rl- row lowerru- row uppercl- column lowercu- column upperdeep- enforce deep-copyblock- cache block- Returns:
- sub-block of cache block
-
merge
void merge(CacheBlock that, boolean appendOnly)
Merge the given block into the current block. Both blocks needs to be of equal dimensions and contain disjoint non-zero cells.- Parameters:
that- cache blockappendOnly- ?
-
getDouble
double getDouble(int r, int c)Returns the double value at the passed row and column. If the value is missing 0 is returned.- Parameters:
r- row of the valuec- column of the value- Returns:
- double value at the passed row and column
-
getDoubleNaN
double getDoubleNaN(int r, int c)Returns the double value at the passed row and column. If the value is missing NaN is returned.- Parameters:
r- row of the valuec- column of the value- Returns:
- double value at the passed row and column
-
getString
String getString(int r, int c)
Returns the string of the value at the passed row and column. If the value is missing or NaN, null is returned.- Parameters:
r- row of the valuec- column of the value- Returns:
- string of the value at the passed row and column
-
-