コード例 #1
0
ファイル: Document.cs プロジェクト: philipjadler/VelocityDB
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
ファイル: BTreeTest.cs プロジェクト: timotrob/VelocityDB
        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();
            }
        }
コード例 #4
0
ファイル: BTreeTest.cs プロジェクト: MerlinBrasil/VelocityDB
 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();
   }
 }