public override UInt64 Persist(Placement place, SessionBase session, bool persistRefs = true, bool disableFlush = false, Queue <IOptimizedPersistable> toPersist = null) { base.Persist(place, session, false, disableFlush, toPersist); Placement otherPlace = new Placement(DatabaseNumber, (ushort)(PageNumber + 1), 1, UInt16.MaxValue - 1, UInt16.MaxValue, true, false, 1, false); wordSet.Persist(otherPlace, session, true, disableFlush, toPersist); Debug.Assert(DatabaseNumber == wordSet.DatabaseNumber); otherPlace.TrySlotNumber = 1; ++otherPlace.TryPageNumber; m_wordHit.Persist(otherPlace, session, true, disableFlush, toPersist); return(Id); }
public override void Write(int flowID, IEnumerable <KeyValuePair <long, Tick> > flow) { Placement place = new Placement((ushort)checked (flowID + 10)); Placement velocityRecordPlace = new Placement((ushort)(flowID + 10), 1000, 1, 10000, ushort.MaxValue, false, false, UInt32.MaxValue, false); BTreeMapOidShort <long, VelocityTick> map = new BTreeMapOidShort <long, VelocityTick>(null, session, 1000); mapId = map.Persist(place, session); map.ValuePlacement = velocityRecordPlace; map.TransientBatchSize = 2000; foreach (var kv in flow) { VelocityTick tick = new VelocityTick(kv.Value); map.AddFast(kv.Key, tick); } }
public void aCreateDefaultCompareOidShortIntKeyIntValue(int number) { Oid id; using (SessionNoServer session = new SessionNoServer(systemDir)) { Placement place = new Placement((UInt32)number, 1, 1, UInt16.MaxValue, UInt16.MaxValue); session.Compact(); session.BeginUpdate(); BTreeMapOidShort <int, int> bTree = new BTreeMapOidShort <int, int>(null, session); bTree.Persist(place, session); id = bTree.Oid; for (int i = 0; i < number; i++) { bTree.Add(i, i + 1); } bTree.Clear(); for (int i = 0; i < number; i++) { bTree.Add(i, i + 1); } session.Commit(); } using (SessionNoServer session = new SessionNoServer(systemDir)) { session.BeginRead(); BTreeMapOidShort <int, int> bTree = (BTreeMapOidShort <int, int>)session.Open(id); int count = 0; int prior = 0; foreach (KeyValuePair <int, int> pair in bTree) { count++; Assert.True(pair.Key == prior++); Assert.True(pair.Key == pair.Value - 1); } Assert.True(number == count); session.Commit(); } }
public void aCreateDefaultCompareOidShortIntKeyIntValue(int number) { Oid id; using (SessionNoServer session = new SessionNoServer(systemDir)) { Placement place = new Placement((UInt32)number, 1, 1, UInt16.MaxValue, UInt16.MaxValue); session.Compact(); session.BeginUpdate(); BTreeMapOidShort<int, int> bTree = new BTreeMapOidShort<int, int>(null, session); bTree.Persist(place, session); id = bTree.Oid; for (int i = 0; i < number; i++) { bTree.Add(i, i + 1); } bTree.Clear(); for (int i = 0; i < number; i++) { bTree.Add(i, i + 1); } session.Commit(); } using (SessionNoServer session = new SessionNoServer(systemDir)) { session.BeginRead(); BTreeMapOidShort<int, int> bTree = (BTreeMapOidShort<int, int>)session.Open(id); int count = 0; int prior = 0; foreach (KeyValuePair<int, int> pair in bTree) { count++; Assert.True(pair.Key == prior++); Assert.True(pair.Key == pair.Value - 1); } Assert.True(number == count); session.Commit(); } }