예제 #1
0
        public void Dispose()
        {
            if (_fixedSizeTrees != null)
            {
                foreach (var tree in _fixedSizeTrees)
                {
                    tree.Value.Dispose();
                }
            }

            DecompressionsCache?.Dispose();
        }
예제 #2
0
        public TreePage ModifyPage(long pageNumber)
        {
            var newPage = GetWriteableTreePage(pageNumber);

            newPage.Dirty = true;
            _recentlyFoundPages.Reset(pageNumber);

            if (IsLeafCompressionSupported && newPage.IsCompressed)
            {
                DecompressionsCache.Invalidate(pageNumber, DecompressionUsage.Read);
            }

            PageModified?.Invoke(pageNumber);

            return(newPage);
        }
예제 #3
0
        public void Dispose()
        {
            if (_fixedSizeTrees != null)
            {
                foreach (var tree in _fixedSizeTrees)
                {
                    tree.Value.Dispose();
                }
            }

            if (_pageLocator != null && _isPageLocatorOwned)
            {
                _llt.PersistentContext.FreePageLocator(_pageLocator);
                _pageLocator = null;
            }

            DecompressionsCache?.Dispose();
        }