C# Class DBreeze.LianaTrie.LTrieWriteCache

Inheritance: IDisposable
Mostra file Open project: hhblaze/DBreeze Class Usage Examples

Public Methods

Method Description
Commit ( byte &rootData, byte &oldRootData ) : void

Dispose ( ) : void
GenerationNodeRead ( bool useCache, byte pointer, byte cachedGenerationMapLine, int MaximumNodeLineLength ) : byte[]

GenerationNodeWritingEnd ( byte pointer, byte data ) : byte[]

If line exists - makes nothing, otherwise writes in

Writing Generation Node to the end of File. We use current generation node pointer to black list it. if we reuse this new pointer inside of one transaction for overwriting, we don't need to back it up for rollback any more.

GenerationNodeWritingOver ( byte pointer, byte newData, byte generationMapLine, byte kidsBeforeModification ) : void

OverWriting Generation Node, we supply params where, oldData and newData. Old Data - not used thou

OverWriting Generation Node, we supply params where, oldData and newData.

GetNodeKids ( byte generationMapLine ) : byte[]

Returns NULL if not found

LTrieWriteCache ( LTrie trie ) : System
ReadDynamicDataBlock ( byte &initPtr, bool useCache ) : byte[]

ReadKey ( bool useCache, byte pointer ) : byte[]

Internal function for reading key only from DB storage Is called from ReadKey

ReadKeyValue ( bool useCache, byte pointer, long &valueStartPtr, uint &valueLength, byte &key, byte &val ) : void

Interanl Function for reading Key and Value in one set. Initial block read is setUp to 4096 bytes

ReadValue ( byte pointer, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]

ReadValuePartially ( byte pointer, uint startIndex, uint length, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]

RecreateDB ( ) : void

Used by Root Node RemoveAll with key re-creation

RollBack ( ) : void

RootNodeRead ( ) : byte[]

TransactionalCommit ( byte &rootData, byte &oldRootData ) : void

TransactionalCommitFinished ( ) : void

We need here to clear old root and call Storage Commit is finished

TransactionalRollBack ( ) : void

ValueWritingEnd ( byte &data, byte oldPtr ) : byte[]

ValueWritingOver ( byte pointer, byte &oldData, byte &newData, byte &key ) : void

WriteDynamicDataBlock ( byte &initPtr, byte &data ) : byte[]

Private Methods

Method Description
RootNodeWrite ( byte rootData ) : void

Method Details

Commit() public method

public Commit ( byte &rootData, byte &oldRootData ) : void
rootData byte
oldRootData byte
return void

Dispose() public method

public Dispose ( ) : void
return void

GenerationNodeRead() public method

public GenerationNodeRead ( bool useCache, byte pointer, byte cachedGenerationMapLine, int MaximumNodeLineLength ) : byte[]
useCache bool
pointer byte
cachedGenerationMapLine byte
MaximumNodeLineLength int
return byte[]

GenerationNodeWritingEnd() public method

If line exists - makes nothing, otherwise writes in Writing Generation Node to the end of File. We use current generation node pointer to black list it. if we reuse this new pointer inside of one transaction for overwriting, we don't need to back it up for rollback any more.
public GenerationNodeWritingEnd ( byte pointer, byte data ) : byte[]
pointer byte
data byte
return byte[]

GenerationNodeWritingOver() public method

OverWriting Generation Node, we supply params where, oldData and newData. Old Data - not used thou OverWriting Generation Node, we supply params where, oldData and newData.
public GenerationNodeWritingOver ( byte pointer, byte newData, byte generationMapLine, byte kidsBeforeModification ) : void
pointer byte
newData byte
generationMapLine byte
kidsBeforeModification byte
return void

GetNodeKids() public method

Returns NULL if not found
public GetNodeKids ( byte generationMapLine ) : byte[]
generationMapLine byte
return byte[]

LTrieWriteCache() public method

public LTrieWriteCache ( LTrie trie ) : System
trie LTrie
return System

ReadDynamicDataBlock() public method

public ReadDynamicDataBlock ( byte &initPtr, bool useCache ) : byte[]
initPtr byte
useCache bool
return byte[]

ReadKey() public method

Internal function for reading key only from DB storage Is called from ReadKey
public ReadKey ( bool useCache, byte pointer ) : byte[]
useCache bool
pointer byte ptr to KVP
return byte[]

ReadKeyValue() public method

Interanl Function for reading Key and Value in one set. Initial block read is setUp to 4096 bytes
public ReadKeyValue ( bool useCache, byte pointer, long &valueStartPtr, uint &valueLength, byte &key, byte &val ) : void
useCache bool
pointer byte ptr to KVP
valueStartPtr long will be more then 0 only in case if valueLength more then 0. It makes no diff for the null and byte[0] values in this context. Avoid byte[0]
valueLength uint will be 0 if val is null and if val is byte[0]
key byte
val byte
return void

ReadValue() public method

public ReadValue ( byte pointer, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]
pointer byte ptr to KVP
useCache bool
valueStartPtr long
valueLength uint
return byte[]

ReadValuePartially() public method

public ReadValuePartially ( byte pointer, uint startIndex, uint length, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]
pointer byte
startIndex uint
length uint
useCache bool
valueStartPtr long returns pointer where value starts from. -1 if can't be determined
valueLength uint returns full value length; 0 - default
return byte[]

RecreateDB() public method

Used by Root Node RemoveAll with key re-creation
public RecreateDB ( ) : void
return void

RollBack() public method

public RollBack ( ) : void
return void

RootNodeRead() public method

public RootNodeRead ( ) : byte[]
return byte[]

TransactionalCommit() public method

public TransactionalCommit ( byte &rootData, byte &oldRootData ) : void
rootData byte
oldRootData byte
return void

TransactionalCommitFinished() public method

We need here to clear old root and call Storage Commit is finished
public TransactionalCommitFinished ( ) : void
return void

TransactionalRollBack() public method

public TransactionalRollBack ( ) : void
return void

ValueWritingEnd() public method

public ValueWritingEnd ( byte &data, byte oldPtr ) : byte[]
data byte
oldPtr byte
return byte[]

ValueWritingOver() public method

public ValueWritingOver ( byte pointer, byte &oldData, byte &newData, byte &key ) : void
pointer byte
oldData byte
newData byte
key byte
return void

WriteDynamicDataBlock() public method

public WriteDynamicDataBlock ( byte &initPtr, byte &data ) : byte[]
initPtr byte
data byte
return byte[]