コード例 #1
0
        public DataStorage(KDB kDB)
        {
            this.kDB = kDB ?? throw new ArgumentNullException(nameof(kDB));

            _dataFileWriter = new FileStream(this.kDB.DBPath + "/data.db", FileMode.Append, FileAccess.Write, FileShare.Read);
            _dataFileReader = new FileStream(this.kDB.DBPath + "/data.db", FileMode.Open, FileAccess.Read, FileShare.Write);
        }
コード例 #2
0
        public SSTable(KDB kDB, int fileNumber)
        {
            _kDB        = kDB;
            _store      = new SortedList <string, FencePointer>();
            _fileNumber = fileNumber;

            LoadFile(fileNumber);
        }
コード例 #3
0
        public IndexManager(KDB kDB)
        {
            _kDB = kDB ?? throw new ArgumentNullException(nameof(kDB));
            _lastIndexFileNumber = GetLastFileNumber();

            _dlinkedList = new LinkedList <IIndexTable>();

            LoadSSTables();

            _memTable = new MemTable(kDB);
            _dlinkedList.AddFirst(_memTable);
        }
コード例 #4
0
        static void Main(string[] args)
        {
            while (true)
            {
                var kdb = new KDB(".");
                //kdb.Optimize();

                //break;

                Console.WriteLine("...........");
                Console.WriteLine("1. Get Key");
                Console.WriteLine("2. Put Key");
                Console.WriteLine("3. Read All");
                Console.WriteLine("...........");

                var input = Console.ReadLine();

                if (input == "1")
                {
                    var inputKey = Console.ReadLine();
                    Console.WriteLine("Key : " + inputKey);
                    Console.WriteLine("Val : " + Encoding.ASCII.GetString(kdb.Get(inputKey)));
                }
                if (input == "2")
                {
                    Console.Write("Enter Key : ");
                    var inputKey = Console.ReadLine();
                    Console.Write("Enter Val : ");
                    var inputValue = Console.ReadLine();
                    kdb.Put(inputKey, Encoding.ASCII.GetBytes(inputValue));
                }
                if (input == "3")
                {
                    var iterator = kdb.GetAll();
                    while (true)
                    {
                        var key = iterator.Next();
                        if (key == null)
                        {
                            break;
                        }
                        Console.WriteLine("Key : " + key);
                        Console.WriteLine("Val : " + Encoding.ASCII.GetString(kdb.Get(key)));
                    }
                }

                kdb.Close();
            }
        }
コード例 #5
0
 public MemTable(KDB kDB)
 {
     _kDB  = kDB ?? throw new ArgumentNullException(nameof(kDB));
     Store = new SortedDictionary <string, FencePointer>();
 }
コード例 #6
0
 public IndexStorage(KDB kDB)
 {
     _kDB = kDB ?? throw new ArgumentNullException(nameof(kDB));
 }