コード例 #1
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        /// <exception cref="System.Exception"></exception>
        public virtual void Test2()
        {
            if (!isLocal)
            {
                return;
            }
            string baseName = GetBaseName();

            NeoDatis.Btree.IBTreePersister persister = GetPersister(baseName);
            NeoDatis.Btree.IBTree          tree      = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("test2"
                                                                                                         , 2, persister);
            for (int i = 0; i < Size; i++)
            {
                tree.Insert(i + 1, "value " + (i + 1));
            }
            AssertEquals(Size, tree.GetSize());
            System.Collections.IEnumerator iterator = tree.Iterator(NeoDatis.Odb.Core.OrderByConstants
                                                                    .OrderByDesc);
            int j = 0;

            while (iterator.MoveNext())
            {
                object o = iterator.Current;
                // println(o);
                j++;
                if (j == Size)
                {
                    AssertEquals("value " + 1, o);
                }
            }
            persister.Close();
            DeleteBase(baseName);
        }
コード例 #2
0
ファイル: TestPersister.cs プロジェクト: ekicyou/pasta
		/// <exception cref="System.Exception"></exception>
		public virtual void Test1()
		{
			if (!isLocal)
			{
				return;
			}
			DeleteBase("btree45.neodatis");
			NeoDatis.Odb.ODB odb = Open("btree45.neodatis");
			NeoDatis.Odb.Core.Layers.Layer3.IStorageEngine storageEngine = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy
				.GetEngine(odb);
			NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister persister = new NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister
				(storageEngine);
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple
				("t", 3, persister);
			tree.Insert(1, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 1"));
			tree.Insert(20, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 20"));
			tree.Insert(25, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 25"));
			tree.Insert(29, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 29"));
			tree.Insert(21, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 21"));
			AssertEquals(5, tree.GetRoot().GetNbKeys());
			AssertEquals(0, tree.GetRoot().GetNbChildren());
			AssertEquals(21, tree.GetRoot().GetMedian().GetKey());
			AssertEquals("[Value 21]", tree.GetRoot().GetMedian().GetValue().ToString());
			AssertEquals(0, tree.GetRoot().GetNbChildren());
			// println(tree.getRoot());
			tree.Insert(45, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 45"));
			AssertEquals(2, tree.GetRoot().GetNbChildren());
			AssertEquals(1, tree.GetRoot().GetNbKeys());
			AssertEquals(21, tree.GetRoot().GetKeyAt(0));
			AssertEquals("[Value 21]", tree.GetRoot().GetValueAsObjectAt(0).ToString());
			persister.Close();
			odb = Open("btree45.neodatis");
			storageEngine = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy.GetEngine(odb);
			persister = new NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister(storageEngine);
			tree = (NeoDatis.Btree.IBTreeMultipleValuesPerKey)persister.LoadBTree(tree.GetId(
				));
			AssertEquals(6, tree.GetSize());
			// println(tree.getRoot());
			NeoDatis.Odb.Test.Btree.Odb.MyObject o = (NeoDatis.Odb.Test.Btree.Odb.MyObject)tree
				.Search(20)[0];
			AssertEquals("Value 20", o.GetName());
			o = (NeoDatis.Odb.Test.Btree.Odb.MyObject)tree.Search(29)[0];
			AssertEquals("Value 29", o.GetName());
			o = (NeoDatis.Odb.Test.Btree.Odb.MyObject)tree.Search(45)[0];
			AssertEquals("Value 45", o.GetName());
			odb.Close();
			DeleteBase("btree45.neodatis");
		}
コード例 #3
0
 /// <exception cref="System.Exception"></exception>
 public virtual void Test1()
 {
     if (!isLocal)
     {
         return;
     }
     DeleteBase("btree45.neodatis");
     NeoDatis.Odb.ODB odb = Open("btree45.neodatis");
     NeoDatis.Odb.Core.Layers.Layer3.IStorageEngine storageEngine = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy
                                                                    .GetEngine(odb);
     NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister persister = new NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister
                                                                        (storageEngine);
     NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple
                                                          ("t", 3, persister);
     tree.Insert(1, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 1"));
     tree.Insert(20, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 20"));
     tree.Insert(25, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 25"));
     tree.Insert(29, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 29"));
     tree.Insert(21, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 21"));
     AssertEquals(5, tree.GetRoot().GetNbKeys());
     AssertEquals(0, tree.GetRoot().GetNbChildren());
     AssertEquals(21, tree.GetRoot().GetMedian().GetKey());
     AssertEquals("[Value 21]", tree.GetRoot().GetMedian().GetValue().ToString());
     AssertEquals(0, tree.GetRoot().GetNbChildren());
     // println(tree.getRoot());
     tree.Insert(45, new NeoDatis.Odb.Test.Btree.Odb.MyObject("Value 45"));
     AssertEquals(2, tree.GetRoot().GetNbChildren());
     AssertEquals(1, tree.GetRoot().GetNbKeys());
     AssertEquals(21, tree.GetRoot().GetKeyAt(0));
     AssertEquals("[Value 21]", tree.GetRoot().GetValueAsObjectAt(0).ToString());
     persister.Close();
     odb           = Open("btree45.neodatis");
     storageEngine = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy.GetEngine(odb);
     persister     = new NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister(storageEngine);
     tree          = (NeoDatis.Btree.IBTreeMultipleValuesPerKey)persister.LoadBTree(tree.GetId(
                                                                                        ));
     AssertEquals(6, tree.GetSize());
     // println(tree.getRoot());
     NeoDatis.Odb.Test.Btree.Odb.MyObject o = (NeoDatis.Odb.Test.Btree.Odb.MyObject)tree
                                              .Search(20)[0];
     AssertEquals("Value 20", o.GetName());
     o = (NeoDatis.Odb.Test.Btree.Odb.MyObject)tree.Search(29)[0];
     AssertEquals("Value 29", o.GetName());
     o = (NeoDatis.Odb.Test.Btree.Odb.MyObject)tree.Search(45)[0];
     AssertEquals("Value 45", o.GetName());
     odb.Close();
     DeleteBase("btree45.neodatis");
 }
コード例 #4
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        /// <exception cref="System.Exception"></exception>
        public virtual void Test1()
        {
            if (!isLocal)
            {
                return;
            }
            string baseName = GetBaseName();

            NeoDatis.Btree.IBTreePersister persister = GetPersister(baseName);
            NeoDatis.Btree.IBTree          tree      = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("test1"
                                                                                                         , 2, persister);
            long start = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            for (int i = 0; i < Size; i++)
            {
                tree.Insert(i + 1, "value " + (i + 1));
            }
            long end = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            Println(end - start);
            if (testPerformance)
            {
                AssertTrue((end - start) < 0.34 * Size);
            }
            // println("insert of "+SIZE+" elements in BTREE = " +
            // (end-start)+"ms");
            // persister.close();
            // persister = getPersister();
            AssertEquals(Size, tree.GetSize());
            System.Collections.IEnumerator iterator = tree.Iterator(NeoDatis.Odb.Core.OrderByConstants
                                                                    .OrderByAsc);
            int j = 0;

            while (iterator.MoveNext())
            {
                object o = iterator.Current;
                AssertEquals("value " + (j + 1), o);
                j++;
                if (j % 1000 == 0)
                {
                    Println(j);
                }
            }
            persister.Close();
            DeleteBase(baseName);
        }
コード例 #5
0
ファイル: TestPersister.cs プロジェクト: ekicyou/pasta
		/// <exception cref="System.Exception"></exception>
		public virtual void TestDirectSave()
		{
			DeleteBase("btree46.neodatis");
			NeoDatis.Odb.ODB odb = Open("btree46.neodatis");
			NeoDatis.Btree.IBTree tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("t"
				, 3, new NeoDatis.Btree.Impl.InMemoryPersister());
			NeoDatis.Btree.IBTreeNodeMultipleValuesPerKey node = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeNodeMultiple
				(tree);
			odb.Store(node);
			for (int i = 0; i < 4; i++)
			{
				node.SetKeyAndValueAt(new NeoDatis.Btree.Impl.KeyAndValue(i + 1, "String" + (i + 
					1)), i);
				odb.Store(node);
			}
			odb.Close();
			DeleteBase("btree46.neodatis");
		}
コード例 #6
0
 /// <exception cref="System.Exception"></exception>
 public virtual void TestDirectSave()
 {
     DeleteBase("btree46.neodatis");
     NeoDatis.Odb.ODB      odb  = Open("btree46.neodatis");
     NeoDatis.Btree.IBTree tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("t"
                                                                                    , 3, new NeoDatis.Btree.Impl.InMemoryPersister());
     NeoDatis.Btree.IBTreeNodeMultipleValuesPerKey node = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeNodeMultiple
                                                              (tree);
     odb.Store(node);
     for (int i = 0; i < 4; i++)
     {
         node.SetKeyAndValueAt(new NeoDatis.Btree.Impl.KeyAndValue(i + 1, "String" + (i +
                                                                                      1)), i);
         odb.Store(node);
     }
     odb.Close();
     DeleteBase("btree46.neodatis");
 }
コード例 #7
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        public virtual void Test1()
		{
			if (!isLocal)
			{
				return;
			}
			string baseName = GetBaseName();
			NeoDatis.Btree.IBTreePersister persister = GetPersister(baseName);
			NeoDatis.Btree.IBTree tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("test1"
				, 2, persister);
			long start = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			for (int i = 0; i < Size; i++)
			{
				tree.Insert(i + 1, "value " + (i + 1));
			}
			long end = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			Println(end - start);
			if (testPerformance)
			{
				AssertTrue((end - start) < 0.34 * Size);
			}
			// println("insert of "+SIZE+" elements in BTREE = " +
			// (end-start)+"ms");
			// persister.close();
			// persister = getPersister();
			AssertEquals(Size, tree.GetSize());
			System.Collections.IEnumerator iterator = tree.Iterator(NeoDatis.Odb.Core.OrderByConstants
				.OrderByAsc);
			int j = 0;
			while (iterator.MoveNext())
			{
				object o = iterator.Current;
				AssertEquals("value " + (j + 1), o);
				j++;
				if (j % 1000 == 0)
				{
					Println(j);
				}
			}
			persister.Close();
			DeleteBase(baseName);
		}
コード例 #8
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        /// <exception cref="System.Exception"></exception>
        public virtual void Test1a()
        {
            if (!isLocal)
            {
                return;
            }
            string baseName = GetBaseName();

            // Configuration.setInPlaceUpdate(true);
            NeoDatis.Btree.IBTreePersister persister = GetPersister(baseName);
            NeoDatis.Btree.IBTree          tree      = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("test1a"
                                                                                                         , 2, persister);
            for (int i = 0; i < Size; i++)
            {
                tree.Insert(i + 1, "value " + (i + 1));
            }
            // println(new BTreeDisplay().build(tree,true).toString());
            persister.Close();
            persister = GetPersister(baseName);
            tree      = persister.LoadBTree(tree.GetId());
            // println(new BTreeDisplay().build(tree,true).toString());
            AssertEquals(Size, tree.GetSize());
            System.Collections.IEnumerator iterator = tree.Iterator(NeoDatis.Odb.Core.OrderByConstants
                                                                    .OrderByAsc);
            int j = 0;

            while (iterator.MoveNext())
            {
                object o = iterator.Current;
                AssertEquals("value " + (j + 1), o);
                j++;
                if (j == Size)
                {
                    AssertEquals("value " + Size, o);
                }
            }
            persister.Close();
            DeleteBase(baseName);
        }
コード例 #9
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        /// <exception cref="System.Exception"></exception>
        public virtual void Test2a()
        {
            if (!isLocal)
            {
                return;
            }
            string baseName = GetBaseName();

            NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.AbstractObjectWriter.ResetNbUpdates();
            // LogUtil.allOn(true);
            DeleteBase(baseName);
            NeoDatis.Btree.IBTreePersister            persister = GetPersister(baseName);
            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree      = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple
                                                                      ("test2a", 20, persister);
            long start0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            for (int i = 0; i < Size; i++)
            {
                tree.Insert(i + 1, "value " + (i + 1));
            }
            // println("Commiting");
            persister.Close();
            long end0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            // println("insert of "+SIZE+" elements in BTREE = " +
            // (end0-start0)+"ms");
            // println("end Commiting");
            // println("updates : IP="+ObjectWriter.getNbInPlaceUpdates()+" , N="+ObjectWriter.getNbNormalUpdates());
            // ODB odb = open(baseName);
            // odb.getObjects(LazyNode.class);
            // odb.close();
            persister = GetPersister(baseName);
            // println("reloading btree");
            tree = (NeoDatis.Btree.IBTreeMultipleValuesPerKey)persister.LoadBTree(tree.GetId(
                                                                                      ));
            // println("end reloading btree , size="+tree.size());
            AssertEquals(Size, tree.GetSize());
            long totalSearchTime = 0;
            long oneSearchTime   = 0;
            long minSearchTime   = 10000;
            long maxSearchTime   = -1;

            for (int i = 0; i < Size; i++)
            {
                long start = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
                System.Collections.IList o = tree.Search(i + 1);
                long end = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
                AssertEquals("value " + (i + 1), o[0]);
                oneSearchTime = (end - start);
                // println("Search time for "+o+" = "+oneSearchTime);
                if (oneSearchTime > maxSearchTime)
                {
                    maxSearchTime = oneSearchTime;
                }
                if (oneSearchTime < minSearchTime)
                {
                    minSearchTime = oneSearchTime;
                }
                totalSearchTime += oneSearchTime;
            }
            persister.Close();
            // println("total search time="+totalSearchTime +
            // " - mean st="+((double)totalSearchTime/SIZE));
            // println("min search time="+minSearchTime + " - max="+maxSearchTime);
            // Median search time must be smaller than 1ms
            DeleteBase(baseName);
            AssertTrue(totalSearchTime < 1 * Size);
        }
コード例 #10
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        public virtual void Test2()
		{
			if (!isLocal)
			{
				return;
			}
			string baseName = GetBaseName();
			NeoDatis.Btree.IBTreePersister persister = GetPersister(baseName);
			NeoDatis.Btree.IBTree tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("test2"
				, 2, persister);
			for (int i = 0; i < Size; i++)
			{
				tree.Insert(i + 1, "value " + (i + 1));
			}
			AssertEquals(Size, tree.GetSize());
			System.Collections.IEnumerator iterator = tree.Iterator(NeoDatis.Odb.Core.OrderByConstants
				.OrderByDesc);
			int j = 0;
			while (iterator.MoveNext())
			{
				object o = iterator.Current;
				// println(o);
				j++;
				if (j == Size)
				{
					AssertEquals("value " + 1, o);
				}
			}
			persister.Close();
			DeleteBase(baseName);
		}
コード例 #11
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        public virtual void Test2a()
		{
			if (!isLocal)
			{
				return;
			}
			string baseName = GetBaseName();
			NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.AbstractObjectWriter.ResetNbUpdates();
			// LogUtil.allOn(true);
			DeleteBase(baseName);
			NeoDatis.Btree.IBTreePersister persister = GetPersister(baseName);
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple
				("test2a", 20, persister);
			long start0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			for (int i = 0; i < Size; i++)
			{
				tree.Insert(i + 1, "value " + (i + 1));
			}
			// println("Commiting");
			persister.Close();
			long end0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			// println("insert of "+SIZE+" elements in BTREE = " +
			// (end0-start0)+"ms");
			// println("end Commiting");
			// println("updates : IP="+ObjectWriter.getNbInPlaceUpdates()+" , N="+ObjectWriter.getNbNormalUpdates());
			// ODB odb = open(baseName);
			// odb.getObjects(LazyNode.class);
			// odb.close();
			persister = GetPersister(baseName);
			// println("reloading btree");
			tree = (NeoDatis.Btree.IBTreeMultipleValuesPerKey)persister.LoadBTree(tree.GetId(
				));
			// println("end reloading btree , size="+tree.size());
			AssertEquals(Size, tree.GetSize());
			long totalSearchTime = 0;
			long oneSearchTime = 0;
			long minSearchTime = 10000;
			long maxSearchTime = -1;
			for (int i = 0; i < Size; i++)
			{
				long start = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
				System.Collections.IList o = tree.Search(i + 1);
				long end = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
				AssertEquals("value " + (i + 1), o[0]);
				oneSearchTime = (end - start);
				// println("Search time for "+o+" = "+oneSearchTime);
				if (oneSearchTime > maxSearchTime)
				{
					maxSearchTime = oneSearchTime;
				}
				if (oneSearchTime < minSearchTime)
				{
					minSearchTime = oneSearchTime;
				}
				totalSearchTime += oneSearchTime;
			}
			persister.Close();
			// println("total search time="+totalSearchTime +
			// " - mean st="+((double)totalSearchTime/SIZE));
			// println("min search time="+minSearchTime + " - max="+maxSearchTime);
			// Median search time must be smaller than 1ms
			DeleteBase(baseName);
			AssertTrue(totalSearchTime < 1 * Size);
		}
コード例 #12
0
ファイル: TestODBLazyBTree.cs プロジェクト: ekicyou/pasta
        public virtual void Test1a()
		{
			if (!isLocal)
			{
				return;
			}
			string baseName = GetBaseName();
			// Configuration.setInPlaceUpdate(true);
			NeoDatis.Btree.IBTreePersister persister = GetPersister(baseName);
			NeoDatis.Btree.IBTree tree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple("test1a"
				, 2, persister);
			for (int i = 0; i < Size; i++)
			{
				tree.Insert(i + 1, "value " + (i + 1));
			}
			// println(new BTreeDisplay().build(tree,true).toString());
			persister.Close();
			persister = GetPersister(baseName);
			tree = persister.LoadBTree(tree.GetId());
			// println(new BTreeDisplay().build(tree,true).toString());
			AssertEquals(Size, tree.GetSize());
			System.Collections.IEnumerator iterator = tree.Iterator(NeoDatis.Odb.Core.OrderByConstants
				.OrderByAsc);
			int j = 0;
			while (iterator.MoveNext())
			{
				object o = iterator.Current;
				AssertEquals("value " + (j + 1), o);
				j++;
				if (j == Size)
				{
					AssertEquals("value " + Size, o);
				}
			}
			persister.Close();
			DeleteBase(baseName);
		}
コード例 #13
0
        public virtual void AddIndexOn(string className, string indexName, string[] indexFields
                                       , bool verbose, bool acceptMultipleValuesForSameKey)
        {
            NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfo classInfo = GetMetaModel().GetClassInfo
                                                                           (className, true);
            if (classInfo.HasIndex(indexName))
            {
                throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.IndexAlreadyExist
                                                           .AddParameter(indexName).AddParameter(className));
            }
            NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfoIndex cii = classInfo.AddIndexOn(indexName
                                                                                           , indexFields, acceptMultipleValuesForSameKey);
            NeoDatis.Btree.IBTree btree = null;
            if (acceptMultipleValuesForSameKey)
            {
                btree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeMultiple(className, NeoDatis.Odb.OdbConfiguration
                                                                          .GetDefaultIndexBTreeDegree(), new NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister
                                                                              (this));
            }
            else
            {
                btree = new NeoDatis.Odb.Impl.Core.Btree.ODBBTreeSingle(className, NeoDatis.Odb.OdbConfiguration
                                                                        .GetDefaultIndexBTreeDegree(), new NeoDatis.Odb.Impl.Core.Btree.LazyODBBTreePersister
                                                                            (this));
            }
            cii.SetBTree(btree);
            Store(cii);
            // Now The index must be updated with all existing objects.
            if (classInfo.GetNumberOfObjects() == 0)
            {
                // There are no objects. Nothing to do
                return;
            }
            if (verbose)
            {
                NeoDatis.Tool.DLogger.Info("Creating index " + indexName + " on class " + className
                                           + " - Class has already " + classInfo.GetNumberOfObjects() + " Objects. Updating index"
                                           );
            }
            if (verbose)
            {
                NeoDatis.Tool.DLogger.Info(indexName + " : loading " + classInfo.GetNumberOfObjects
                                               () + " objects from database");
            }
            // We must load all objects and insert them in the index!
            NeoDatis.Odb.Objects <object> objects = GetObjectInfos <object>(new NeoDatis.Odb.Impl.Core.Query.Criteria.CriteriaQuery
                                                                                (className), false, -1, -1, false);
            if (verbose)
            {
                NeoDatis.Tool.DLogger.Info(indexName + " : " + classInfo.GetNumberOfObjects() + " objects loaded"
                                           );
            }
            NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo nnoi = null;
            int  i             = 0;
            bool monitorMemory = NeoDatis.Odb.OdbConfiguration.IsMonitoringMemory();

            while (objects.HasNext())
            {
                nnoi = (NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo)objects.Next();
                btree.Insert(cii.ComputeKey(nnoi), nnoi.GetOid());
                if (verbose && i % 1000 == 0)
                {
                    if (monitorMemory)
                    {
                        NeoDatis.Odb.Impl.Tool.MemoryMonitor.DisplayCurrentMemory("Index " + indexName +
                                                                                  " " + i + " objects inserted", true);
                    }
                }
                i++;
            }
            if (verbose)
            {
                NeoDatis.Tool.DLogger.Info(indexName + " created!");
            }
        }