示例#1
0
        public BPlusTree()
        {
            var indexFile = "index.dat";
            var metadataFile = "metadata.dat";
            var dataFile = "data.dat";

            //if (File.Exists(indexFile))
            //    File.Delete(indexFile);
            //if (File.Exists(metadataFile))
            //    File.Delete(metadataFile);
            //if (File.Exists(dataFile))
            //    File.Delete(dataFile);

            //indexStream = new MemoryStream();
            //var dataStream = new MemoryStream();

            var metadataStream = new FileStream(metadataFile, FileMode.OpenOrCreate);
            indexStream = new FileStream(indexFile, FileMode.OpenOrCreate);
            //indexStream = new FileStream(indexFile, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None, 4096,
            //    FileOptions.WriteThrough | FileOptions.RandomAccess);

            //var mmf = MemoryMappedFile.CreateFromFile(indexFile, FileMode.Open, "index", 0, MemoryMappedFileAccess.ReadWrite);
            //indexStream = mmf.CreateViewStream();

            var dataStream = new FileStream(dataFile, FileMode.OpenOrCreate);

            var appendBpTree = new BPlusTree<int>(metadataStream, indexStream,
                dataStream, 128, 0, 0, serializer);
            tree = new String_BPlusTree<int>(appendBpTree);
        }
示例#2
0
        public BPlusTree_WriteOnly()
        {
            var indexFile    = "index.dat";
            var metadataFile = "metadata.dat";
            var dataFile     = "data.dat";

            if (File.Exists(indexFile))
            {
                File.Delete(indexFile);
            }
            if (File.Exists(metadataFile))
            {
                File.Delete(metadataFile);
            }
            if (File.Exists(dataFile))
            {
                File.Delete(dataFile);
            }

            //indexStream = new MemoryStream();
            //var dataStream = new MemoryStream();

            metadataStream = new FileStream(metadataFile, FileMode.OpenOrCreate);
            indexStream    = new FileStream(indexFile, FileMode.OpenOrCreate);
            //indexStream = new FileStream(indexFile, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None, 4096,
            //    FileOptions.WriteThrough | FileOptions.RandomAccess);

            //var mmf = MemoryMappedFile.CreateFromFile(indexFile, FileMode.Open, "index", 0, MemoryMappedFileAccess.ReadWrite);
            //indexStream = mmf.CreateViewStream();

            dataStream = new FileStream(dataFile, FileMode.OpenOrCreate);

            var appendBpTree = new BPlusTree <int>(metadataStream, indexStream,
                                                   dataStream, 128, 0, 0, serializer);

            tree = new String_BPlusTree <int>(appendBpTree);
        }
        public BPlusTree_Azure()
        {
            var container_Name = "bplustree";
            var indexFile = "index.dat";
            var metadataFile = "metadata.dat";
            var dataFile = "data.dat";

            //if (File.Exists(indexFile))
            //    File.Delete(indexFile);
            //if (File.Exists(metadataFile))
            //    File.Delete(metadataFile);
            //if (File.Exists(dataFile))
            //    File.Delete(dataFile);

            long maxValue = uint.MaxValue - uint.MaxValue % 512;

            var account = CloudStorageAccount.DevelopmentStorageAccount;

            account = new CloudStorageAccount(new StorageCredentialsAccountAndKey("valeriob", "2SzgTAaG11U0M1gQ19SNus/vv1f0efwYOwZHL1w9YhTKEYsU1ul+s/ke92DOE1wIeCKYz5CuaowtDceUvZW2Rw=="),true);
            var blobClient =  account.CreateCloudBlobClient();

            var container = blobClient.GetContainerReference(container_Name);
            container.CreateIfNotExist();

            var indexBlob = container.GetPageBlobReference(indexFile);
            indexBlob.DeleteIfExists();
            indexBlob.Create(maxValue);
            var indexStream = new Aligned_PageBlobStream(indexBlob);

            var metadataBlob = container.GetPageBlobReference(metadataFile);
            metadataBlob.DeleteIfExists();
            metadataBlob.Create(maxValue);
            var metadataStream = new Aligned_PageBlobStream(metadataBlob);

            var dataBlob = container.GetPageBlobReference(dataFile);
            dataBlob.DeleteIfExists();
            dataBlob.Create(maxValue);
            var dataStream = new Aligned_PageBlobStream(dataBlob);

            var appendBpTree = new BPlusTree<int>(metadataStream, indexStream, dataStream, 128, 512, 0 , serializer);
            tree = new String_BPlusTree<int>(appendBpTree);
        }