Esempio n. 1
0
        private Table ToTable(FileMetaData file)
        {
            var cacheKey = ToCacheKey(file);
            var table    = _cache.Lookup <Table>(_cacheId, cacheKey);

            if (table == null)
            {
                var contentReader = _storge.GetTableContentById(file.Number);

                table = new Table(contentReader, _options.BlockCache, _internalKeyComparer, _options.SnappyDecompressor);
                _cache.Insert(_cacheId, cacheKey, table);
            }

            return(table);
        }
Esempio n. 2
0
            private void MaybeAddFile(Version version, int level, FileMetaData addedFile)
            {
                if (_levels[level].DeletedFiles.Contains(addedFile.Number))
                {
                    return;
                }

                var files = version._files[level];

                if (level > 0)
                {
                    // Must not overlap
                    if (files.Count > 0)
                    {
                        Debug.Assert(_internalKeyComparer.Compare(files.Last().Largest, addedFile.Smallest) < 0);
                    }
                }

                files.Add(addedFile);
            }
Esempio n. 3
0
 private byte[] ToCacheKey(FileMetaData file)
 {
     return(BitConverter.GetBytes(file.Number));
 }