public RelationDBManipulator(IObjectDBTransaction transation, RelationInfo relationInfo) { _transaction = (IInternalObjectDBTransaction)transation; _relationInfo = relationInfo; _modificationCounter = _transaction.GetRelationModificationCounter(relationInfo.Id); _hasSecondaryIndexes = _relationInfo.ClientRelationVersionInfo.HasSecondaryIndexes; }
public BenchmarkRelationPartialView() { _fc = new InMemoryFileCollection(); var lowDb = new KeyValueDB(_fc); _db = new ObjectDB(); _db.Open(lowDb, true); using var tr = _db.StartTransaction(); var table = tr.GetRelation <IPersonTable>(); for (var i = 0; i < 10000; i++) { var p = new Person { ParentId = 1, PersonId = i, Age = (ulong)(i / 128), Name = "Lorem ipsum " + i, Children = Enumerable.Range(0, 100).Select(j => new Person { ParentId = i, PersonId = i * 100 + j, Name = "Lorem ipsum child " + j, Age = (ulong)j }).ToList() }; table.Upsert(p); } tr.Commit(); _tr = _db.StartReadOnlyTransaction(); _table = _tr.GetRelation <IPersonTable>(); }
public RelationDBManipulator(IObjectDBTransaction transaction, RelationInfo relationInfo) { _transaction = (IInternalObjectDBTransaction)transaction; _kvtr = _transaction.KeyValueDBTransaction; _relationInfo = relationInfo; _hasSecondaryIndexes = _relationInfo.ClientRelationVersionInfo.HasSecondaryIndexes; }
KeyValueDBTransactionWithCount GetCountingTransaction(IObjectDBTransaction tr) { var trimpl = tr as ObjectDBTransaction; var kvtr = trimpl.KeyValueDBTransaction as KeyValueDBTransactionWithCount; return(kvtr); }
void AssertCounts(IObjectDBTransaction tr, int eraseAll = -1, int eraseCurrent = -1) { var ctr = GetCountingTransaction(tr); Assert.Equal(eraseAll, ctr.EraseRangeCount); Assert.Equal(eraseCurrent, ctr.EraseCurrentCount); }
public void ImportAllKeys(IObjectDBTransaction sourceDbTr) { var itr = (IInternalObjectDBTransaction)sourceDbTr; var sourceKvTr = itr.KeyValueDBTransaction; foreach (var prefix in SupportedKeySpaces()) ImportKeysWithPrefix(prefix, sourceKvTr); }
public void StartTransaction() { if (!IsEnabled) { return; } _tr = _odb.StartTransaction(); }
public void EndTransaction() { if (!IsEnabled) { return; } _tr.Commit(); _tr.Dispose(); _tr = null; }
public void Iterate(IObjectDBTransaction tr) { var iterator = new ODBIterator(tr, new VisitorForFindUnused(this)); using (_kvtr = _keyValueDb.StartWritingTransaction().Result) { iterator.Iterate(); _kvtr.Commit(); } _kvtr = null; }
public void ImportAllKeys(IObjectDBTransaction sourceDbTr) { var itr = (IInternalObjectDBTransaction)sourceDbTr; var sourceKvTr = itr.KeyValueDBTransaction; foreach (var prefix in SupportedKeySpaces()) { ImportKeysWithPrefix(prefix, sourceKvTr); } }
public void DeleteUnused(IObjectDBTransaction tr) { var itr = (IInternalObjectDBTransaction)tr; var kvtr = itr.KeyValueDBTransaction; foreach (var unseen in UnseenKeys()) { kvtr.EraseAll(unseen.Key); } }
public ODBIterator(IObjectDBTransaction tr, IODBFastVisitor visitor) { _tr = (IInternalObjectDBTransaction)tr; _trkv = _tr.KeyValueDBTransaction; _fastVisitor = visitor; _visitor = visitor as IODBVisitor; _usedTableIds = new HashSet <uint>(); _visitedOids = new HashSet <ulong>(); _usedTableVersions = new HashSet <TableIdVersion>(); _tableVersionInfos = new Dictionary <TableIdVersion, TableVersionInfo>(); _skippers = new Dictionary <IFieldHandler, Action <AbstractBufferedReader> >(ReferenceEqualityComparer <IFieldHandler> .Instance); _loaders = new Dictionary <IFieldHandler, Func <AbstractBufferedReader, object> >(ReferenceEqualityComparer <IFieldHandler> .Instance); }
public RelationDBManipulator(IObjectDBTransaction transation, RelationInfo relationInfo) { _transaction = (IInternalObjectDBTransaction)transation; _relationInfo = relationInfo; _modificationCounter = _transaction.GetRelationModificationCounter(relationInfo.Id); }
static KeyValueDBTransactionWithCount GetCountingTransaction(IObjectDBTransaction tr) { var trimpl = (ObjectDBTransaction)tr; return(((KeyValueDBTransactionWithCount)trimpl.KeyValueDBTransaction) !); }
public void DeleteUnused(IObjectDBTransaction tr) { var itr = (IInternalObjectDBTransaction)tr; var kvtr = itr.KeyValueDBTransaction; foreach (var unseen in UnseenKeys()) { kvtr.SetKeyPrefix(unseen.Key); kvtr.EraseAll(); } }
public void EndTransaction() { _tr.Commit(); _tr.Dispose(); _tr = null; }
public RelationDBManipulator(IObjectDBTransaction transation, RelationInfo relationInfo) { _transaction = (IInternalObjectDBTransaction)transation; _relationInfo = relationInfo; }
public void StartTransaction() { _tr = _odb.StartTransaction(); }
internal DBIndirect(IObjectDBTransaction transaction, ulong oid) { _transaction = transaction; _oid = oid; }