C# Class DBreeze.LianaTrie.LTrie

Liana Trie
Inheritance: ITrie, ITransactable, IDisposable
Show file Open project: hhblaze/DBreeze Class Usage Examples

Public Properties

Property Type Description
ValuesLazyLoadingIsOn bool

Public Methods

Method Description
Add ( byte key, byte value ) : byte[]

Adds key. Overload without refs

Add ( byte &key, byte &value, bool &WasUpdated ) : byte[]
Add ( byte &key, byte &value, bool &WasUpdated, bool dontUpdateIfExists ) : byte[]

Adds key

AddPartially ( byte key, byte value, uint startIndex, long &valueStartPtr ) : byte[]

Overload without refs

AddPartially ( byte &key, byte &value, uint startIndex, long &valueStartPtr, bool &WasUpdated ) : byte[]

REMEMBER THAT all keys are first formed in memory and then copied to the disk, so it's not for storing movies inside of the value. For storing movies (BLOBs) will be used other approach, see docu.

ChangeKey ( byte &oldKey, byte &newKey ) : void
ChangeKey ( byte &oldKey, byte &newKey, byte &ptrToNewKey, bool &WasChanged ) : void
Commit ( ) : void
Count ( ITrieRootNode readRootNode ) : ulong

Can be used inside of DBreeze - concerns all read functions

Count ( bool useCache ) : ulong

if useCache = true; uses newly created root node, else uses writing root node

Dispose ( ) : void
GetKey ( byte &key, ITrieRootNode readRootNode ) : LTrieRow

DBreeze compatible. Extension, which helps to READ-THREADS smartly utilize created before read-roots

GetKey ( byte key, bool useCache ) : LTrieRow

if useCache = true; uses newly created root node, else uses writing root node

GetTable ( LTrieRow row, byte &btKey, uint tableIndex, LTrie masterTrie, bool insertTable, bool useCache ) : NestedTable

GetTrieReadNode ( long &dtTableFixed ) : ITrieRootNode

Interface function which recreates every time new rootNode from itself by every new function call. and also packs root node last fixation dateTime (ROLL or COMMIT). It will be used for READ FUNC's via Transaction, they can decide if to create new instance of read root or use existing. Returns NULL is !TableIsOperable.

ITRCommit ( ) : void
ITRCommitFinished ( ) : void
ITRRollBack ( ) : void
InsertDataBlock ( byte &initialPtr, byte &data ) : byte[]
IterateBackward ( ) : IEnumerable
IterateBackward ( ITrieRootNode readRootNode ) : IEnumerable
IterateBackward ( bool useCache ) : IEnumerable
IterateBackwardForMaximal ( ) : LTrieRow
IterateBackwardForMaximal ( ITrieRootNode readRootNode ) : LTrieRow
IterateBackwardForMaximal ( bool useCache ) : LTrieRow
IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
IterateBackwardSkip ( ulong skippingQuantity ) : IEnumerable
IterateBackwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
IterateBackwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
IterateBackwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
IterateBackwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
IterateBackwardStartsWith ( byte startKey ) : IEnumerable
IterateBackwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
IterateBackwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable

IterateBackwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable

IterateBackwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable

IterateForward ( ) : IEnumerable
IterateForward ( ITrieRootNode readRootNode ) : IEnumerable
IterateForward ( bool useCache ) : IEnumerable
IterateForwardForMinimal ( ) : LTrieRow
IterateForwardForMinimal ( ITrieRootNode readRootNode ) : LTrieRow
IterateForwardForMinimal ( bool useCache ) : LTrieRow
IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
IterateForwardSkip ( ulong skippingQuantity ) : IEnumerable
IterateForwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
IterateForwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
IterateForwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
IterateForwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
IterateForwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
IterateForwardStartsWith ( byte startKey ) : IEnumerable

Always creates new root to get committed data

IterateForwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
IterateForwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable

IterateForwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable

IterateForwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable

LTrie ( IStorage storage ) : System

Liana Trie

ModificationThreadId ( int transactionThreadId ) : void
Remove ( byte &key ) : void
Remove ( byte &key, bool &WasRemoved, bool retrieveDeletedValue, byte &deletedValue ) : void

Removes the key

RemoveAll ( bool withFileRecreation ) : void
RollBack ( ) : void

RollBack

SelectDataBlock ( byte &initialPtr, bool useCache ) : byte[]
SingleCommit ( ) : void

Wrapper for ITransactable

SingleRollback ( ) : void

Wrapper for ITransactable

TransactionIsFinished ( int transactionThreadId ) : void

Private Methods

Method Description
CheckTableIsOperable ( ) : void

Will return exception, if not. Must be called by all functions

SaveGenerationMap ( ) : void

Technical function. Used by Fetch SYNCHRO_READ FUNCs, which use write root node, to make last in-memory changes to flash on the disk, before commit.

Method Details

Add() public method

Adds key. Overload without refs
public Add ( byte key, byte value ) : byte[]
key byte
value byte
return byte[]

Add() public method

public Add ( byte &key, byte &value, bool &WasUpdated ) : byte[]
key byte
value byte
WasUpdated bool
return byte[]

Add() public method

Adds key
public Add ( byte &key, byte &value, bool &WasUpdated, bool dontUpdateIfExists ) : byte[]
key byte
value byte
WasUpdated bool indicates that key we insert, already existed in the system and was updated
dontUpdateIfExists bool When true - if value exists, we dont update it. If WasUpdated = true then we value exists, if false - we have inserted new one
return byte[]

AddPartially() public method

Overload without refs
public AddPartially ( byte key, byte value, uint startIndex, long &valueStartPtr ) : byte[]
key byte
value byte
startIndex uint
valueStartPtr long
return byte[]

AddPartially() public method

REMEMBER THAT all keys are first formed in memory and then copied to the disk, so it's not for storing movies inside of the value. For storing movies (BLOBs) will be used other approach, see docu.
public AddPartially ( byte &key, byte &value, uint startIndex, long &valueStartPtr, bool &WasUpdated ) : byte[]
key byte
value byte
startIndex uint
valueStartPtr long
WasUpdated bool
return byte[]

ChangeKey() public method

public ChangeKey ( byte &oldKey, byte &newKey ) : void
oldKey byte
newKey byte
return void

ChangeKey() public method

public ChangeKey ( byte &oldKey, byte &newKey, byte &ptrToNewKey, bool &WasChanged ) : void
oldKey byte
newKey byte
ptrToNewKey byte
WasChanged bool
return void

Commit() public method

public Commit ( ) : void
return void

Count() public method

Can be used inside of DBreeze - concerns all read functions
public Count ( ITrieRootNode readRootNode ) : ulong
readRootNode ITrieRootNode
return ulong

Count() public method

if useCache = true; uses newly created root node, else uses writing root node
public Count ( bool useCache ) : ulong
useCache bool
return ulong

Dispose() public method

public Dispose ( ) : void
return void

GetKey() public method

DBreeze compatible. Extension, which helps to READ-THREADS smartly utilize created before read-roots
public GetKey ( byte &key, ITrieRootNode readRootNode ) : LTrieRow
key byte
readRootNode ITrieRootNode if null then WRITE-ROOT NODE
return LTrieRow

GetKey() public method

if useCache = true; uses newly created root node, else uses writing root node
public GetKey ( byte key, bool useCache ) : LTrieRow
key byte
useCache bool
return LTrieRow

GetTable() public method

public GetTable ( LTrieRow row, byte &btKey, uint tableIndex, LTrie masterTrie, bool insertTable, bool useCache ) : NestedTable
row LTrieRow
btKey byte
tableIndex uint
masterTrie LTrie
insertTable bool Regulates if InsertTable or SelectTable was called (ability to create table if it doesn't exist)
useCache bool Regulates READ table thread or WRITE table thread - visibilityscope
return NestedTable

GetTrieReadNode() public method

Interface function which recreates every time new rootNode from itself by every new function call. and also packs root node last fixation dateTime (ROLL or COMMIT). It will be used for READ FUNC's via Transaction, they can decide if to create new instance of read root or use existing. Returns NULL is !TableIsOperable.
public GetTrieReadNode ( long &dtTableFixed ) : ITrieRootNode
dtTableFixed long
return ITrieRootNode

ITRCommit() public method

public ITRCommit ( ) : void
return void

ITRCommitFinished() public method

public ITRCommitFinished ( ) : void
return void

ITRRollBack() public method

public ITRRollBack ( ) : void
return void

InsertDataBlock() public method

public InsertDataBlock ( byte &initialPtr, byte &data ) : byte[]
initialPtr byte
data byte
return byte[]

IterateBackward() public method

public IterateBackward ( ) : IEnumerable
return IEnumerable

IterateBackward() public method

public IterateBackward ( ITrieRootNode readRootNode ) : IEnumerable
readRootNode ITrieRootNode
return IEnumerable

IterateBackward() public method

public IterateBackward ( bool useCache ) : IEnumerable
useCache bool
return IEnumerable

IterateBackwardForMaximal() public method

public IterateBackwardForMaximal ( ) : LTrieRow
return LTrieRow

IterateBackwardForMaximal() public method

public IterateBackwardForMaximal ( ITrieRootNode readRootNode ) : LTrieRow
readRootNode ITrieRootNode
return LTrieRow

IterateBackwardForMaximal() public method

public IterateBackwardForMaximal ( bool useCache ) : LTrieRow
useCache bool
return LTrieRow

IterateBackwardFromTo() public method

public IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
return IEnumerable

IterateBackwardFromTo() public method

public IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
readRootNode ITrieRootNode
return IEnumerable

IterateBackwardFromTo() public method

public IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
useCache bool
return IEnumerable

IterateBackwardSkip() public method

public IterateBackwardSkip ( ulong skippingQuantity ) : IEnumerable
skippingQuantity ulong
return IEnumerable

IterateBackwardSkip() public method

public IterateBackwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
skippingQuantity ulong
readRootNode ITrieRootNode
return IEnumerable

IterateBackwardSkip() public method

public IterateBackwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
skippingQuantity ulong
useCache bool
return IEnumerable

IterateBackwardSkipFrom() public method

public IterateBackwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
key byte
skippingQuantity ulong
return IEnumerable

IterateBackwardSkipFrom() public method

public IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
key byte
skippingQuantity ulong
readRootNode ITrieRootNode
return IEnumerable

IterateBackwardSkipFrom() public method

public IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
key byte
skippingQuantity ulong
useCache bool
return IEnumerable

IterateBackwardStartFrom() public method

public IterateBackwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
key byte
includeStartKey bool
return IEnumerable

IterateBackwardStartFrom() public method

public IterateBackwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
key byte
includeStartKey bool
readRootNode ITrieRootNode
return IEnumerable

IterateBackwardStartFrom() public method

public IterateBackwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
key byte
includeStartKey bool
useCache bool
return IEnumerable

IterateBackwardStartsWith() public method

public IterateBackwardStartsWith ( byte startKey ) : IEnumerable
startKey byte
return IEnumerable

IterateBackwardStartsWith() public method

public IterateBackwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
return IEnumerable

IterateBackwardStartsWith() public method

public IterateBackwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
return IEnumerable

IterateBackwardStartsWithClosestToPrefix() public method

public IterateBackwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable
startKey byte
return IEnumerable

IterateBackwardStartsWithClosestToPrefix() public method

public IterateBackwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
return IEnumerable

IterateBackwardStartsWithClosestToPrefix() public method

public IterateBackwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
return IEnumerable

IterateForward() public method

public IterateForward ( ) : IEnumerable
return IEnumerable

IterateForward() public method

public IterateForward ( ITrieRootNode readRootNode ) : IEnumerable
readRootNode ITrieRootNode
return IEnumerable

IterateForward() public method

public IterateForward ( bool useCache ) : IEnumerable
useCache bool
return IEnumerable

IterateForwardForMinimal() public method

public IterateForwardForMinimal ( ) : LTrieRow
return LTrieRow

IterateForwardForMinimal() public method

public IterateForwardForMinimal ( ITrieRootNode readRootNode ) : LTrieRow
readRootNode ITrieRootNode
return LTrieRow

IterateForwardForMinimal() public method

public IterateForwardForMinimal ( bool useCache ) : LTrieRow
useCache bool
return LTrieRow

IterateForwardFromTo() public method

public IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
return IEnumerable

IterateForwardFromTo() public method

public IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
readRootNode ITrieRootNode
return IEnumerable

IterateForwardFromTo() public method

public IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
useCache bool
return IEnumerable

IterateForwardSkip() public method

public IterateForwardSkip ( ulong skippingQuantity ) : IEnumerable
skippingQuantity ulong
return IEnumerable

IterateForwardSkip() public method

public IterateForwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
skippingQuantity ulong
readRootNode ITrieRootNode
return IEnumerable

IterateForwardSkip() public method

public IterateForwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
skippingQuantity ulong
useCache bool
return IEnumerable

IterateForwardSkipFrom() public method

public IterateForwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
key byte
skippingQuantity ulong
return IEnumerable

IterateForwardSkipFrom() public method

public IterateForwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
key byte
skippingQuantity ulong
readRootNode ITrieRootNode
return IEnumerable

IterateForwardSkipFrom() public method

public IterateForwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
key byte
skippingQuantity ulong
useCache bool
return IEnumerable

IterateForwardStartFrom() public method

public IterateForwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
key byte
includeStartKey bool
return IEnumerable

IterateForwardStartFrom() public method

public IterateForwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
key byte
includeStartKey bool
readRootNode ITrieRootNode
return IEnumerable

IterateForwardStartFrom() public method

public IterateForwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
key byte
includeStartKey bool
useCache bool
return IEnumerable

IterateForwardStartsWith() public method

Always creates new root to get committed data
public IterateForwardStartsWith ( byte startKey ) : IEnumerable
startKey byte
return IEnumerable

IterateForwardStartsWith() public method

public IterateForwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
return IEnumerable

IterateForwardStartsWith() public method

public IterateForwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
return IEnumerable

IterateForwardStartsWithClosestToPrefix() public method

public IterateForwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable
startKey byte
return IEnumerable

IterateForwardStartsWithClosestToPrefix() public method

public IterateForwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
return IEnumerable

IterateForwardStartsWithClosestToPrefix() public method

public IterateForwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
return IEnumerable

LTrie() public method

Liana Trie
public LTrie ( IStorage storage ) : System
storage IStorage
return System

ModificationThreadId() public method

public ModificationThreadId ( int transactionThreadId ) : void
transactionThreadId int
return void

Remove() public method

public Remove ( byte &key ) : void
key byte
return void

Remove() public method

Removes the key
public Remove ( byte &key, bool &WasRemoved, bool retrieveDeletedValue, byte &deletedValue ) : void
key byte
WasRemoved bool indicates that value existed if true
retrieveDeletedValue bool indicates if we should bind deleted value to the result
deletedValue byte interesting only if WasRemoved = true and retrieveDeletedValue is true
return void

RemoveAll() public method

public RemoveAll ( bool withFileRecreation ) : void
withFileRecreation bool
return void

RollBack() public method

RollBack
public RollBack ( ) : void
return void

SelectDataBlock() public method

public SelectDataBlock ( byte &initialPtr, bool useCache ) : byte[]
initialPtr byte
useCache bool
return byte[]

SingleCommit() public method

Wrapper for ITransactable
public SingleCommit ( ) : void
return void

SingleRollback() public method

Wrapper for ITransactable
public SingleRollback ( ) : void
return void

TransactionIsFinished() public method

public TransactionIsFinished ( int transactionThreadId ) : void
transactionThreadId int
return void

Property Details

ValuesLazyLoadingIsOn public property

When it's on iterators, Select and SelectDirect return Row with the key and a pointer to the value. Value will be read out when we call it Row.Value. When it's off we read value together with the key in one round
public bool ValuesLazyLoadingIsOn
return bool