Exemplo n.º 1
0
        public void SkipListPutWorking32()
        {
            using var simpleAllocator = new ArrayBasedAllocator32(4096 * 10_000, 25);
            var skipList = new SkipList32(simpleAllocator);

            SkipListPutWorking(skipList);
        }
Exemplo n.º 2
0
        public Task CanPutInOrder32()
        {
            using var simpleAllocator = new ArrayBasedAllocator32(4096 * 50_000, 25);
            var skipList = new SkipList32(simpleAllocator);

            return(CanPutInOrder(skipList));
        }
Exemplo n.º 3
0
        public async Task Native32Allocator()
        {
            using var simpleAllocator = new ArrayBasedAllocator32(4096 * 1024 * 10, TableHeight);
            var skipList = new SkipList32(simpleAllocator);
            var tasks    = new Task[Environment.ProcessorCount];

            for (var i = 0; i < tasks.Length; i++)
            {
                tasks[i] = Task.Run(() => ThreadedPut(skipList));
            }
            await Task.WhenAll(tasks);
        }
Exemplo n.º 4
0
        public async Task CheckTableIteratorWorks()
        {
            using var allocator = new NativeAllocator32(4096 * 10_000, 25);
            var memoryTable = new SkipList32(allocator);

            var loadedWords = CommonData.Words;

            foreach (var word in loadedWords)
            {
                if (string.IsNullOrEmpty(word))
                {
                    continue;
                }
                var utf8  = Encoding.UTF8.GetBytes(word);
                var value = Encoding.UTF8.GetBytes($"VALUE={word}");
                memoryTable.Put(utf8, value);
            }

            var tempPath = System.IO.Path.GetTempPath();
            var fileName = System.IO.Path.Combine(tempPath, "Level2_2.trim");

            System.IO.File.Delete(fileName);

            var fw = new TableFileWriter(fileName);
            await fw.SaveMemoryTable(memoryTable);

            using (var blockCache = new MMapBlockCache())
            {
                var loadedTable = new TableFile(fileName, blockCache);
                await loadedTable.LoadAsync();

                var count = 0;
                await foreach (var item in loadedTable)
                {
                    count++;
                    var key   = Encoding.UTF8.GetString(item.Key);
                    var value = Encoding.UTF8.GetString(item.Value);

                    Assert.Equal($"VALUE={key}", value);
                }
                Assert.Equal(CommonData.Words.Length, count);
            }
            System.IO.File.Delete(fileName);
        }