C# Class DBreeze.LianaTrie.LTrieWriteCache

Inheritance: IDisposable
Afficher le fichier Open project: hhblaze/DBreeze Class Usage Examples

Méthodes publiques

Méthode 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

Méthode Description
RootNodeWrite ( byte rootData ) : void

Method Details

Commit() public méthode

public Commit ( byte &rootData, byte &oldRootData ) : void
rootData byte
oldRootData byte
Résultat void

Dispose() public méthode

public Dispose ( ) : void
Résultat void

GenerationNodeRead() public méthode

public GenerationNodeRead ( bool useCache, byte pointer, byte cachedGenerationMapLine, int MaximumNodeLineLength ) : byte[]
useCache bool
pointer byte
cachedGenerationMapLine byte
MaximumNodeLineLength int
Résultat byte[]

GenerationNodeWritingEnd() public méthode

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
Résultat byte[]

GenerationNodeWritingOver() public méthode

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
Résultat void

GetNodeKids() public méthode

Returns NULL if not found
public GetNodeKids ( byte generationMapLine ) : byte[]
generationMapLine byte
Résultat byte[]

LTrieWriteCache() public méthode

public LTrieWriteCache ( LTrie trie ) : System
trie LTrie
Résultat System

ReadDynamicDataBlock() public méthode

public ReadDynamicDataBlock ( byte &initPtr, bool useCache ) : byte[]
initPtr byte
useCache bool
Résultat byte[]

ReadKey() public méthode

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
Résultat byte[]

ReadKeyValue() public méthode

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
Résultat void

ReadValue() public méthode

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

ReadValuePartially() public méthode

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
Résultat byte[]

RecreateDB() public méthode

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

RollBack() public méthode

public RollBack ( ) : void
Résultat void

RootNodeRead() public méthode

public RootNodeRead ( ) : byte[]
Résultat byte[]

TransactionalCommit() public méthode

public TransactionalCommit ( byte &rootData, byte &oldRootData ) : void
rootData byte
oldRootData byte
Résultat void

TransactionalCommitFinished() public méthode

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

TransactionalRollBack() public méthode

public TransactionalRollBack ( ) : void
Résultat void

ValueWritingEnd() public méthode

public ValueWritingEnd ( byte &data, byte oldPtr ) : byte[]
data byte
oldPtr byte
Résultat byte[]

ValueWritingOver() public méthode

public ValueWritingOver ( byte pointer, byte &oldData, byte &newData, byte &key ) : void
pointer byte
oldData byte
newData byte
key byte
Résultat void

WriteDynamicDataBlock() public méthode

public WriteDynamicDataBlock ( byte &initPtr, byte &data ) : byte[]
initPtr byte
data byte
Résultat byte[]