示例#1
0
文件: Compactor.cs 项目: pavolpr/BTDB
        void MarkTotallyUselessFilesAsUnknown()
        {
            List <uint> toRemoveFileIds = null;

            for (var i = 0; i < _fileStats.Length; i++)
            {
                if (_fileStats[i].Useless())
                {
                    if (toRemoveFileIds == null)
                    {
                        toRemoveFileIds = new List <uint>();
                    }
                    toRemoveFileIds.Add((uint)i);
                }
            }
            if (toRemoveFileIds != null)
            {
                _keyValueDB.MarkAsUnknown(toRemoveFileIds);
            }
        }
示例#2
0
        void MarkTotallyUselessFilesAsUnknown()
        {
            List <uint> toRemoveFileIds = null;

            foreach (var fileStat in _fileStats.Index)
            {
                if (_fileStats.ValueRef(fileStat).Useless())
                {
                    if (toRemoveFileIds == null)
                    {
                        toRemoveFileIds = new List <uint>();
                    }
                    toRemoveFileIds.Add(_fileStats.KeyRef(fileStat));
                }
            }

            if (toRemoveFileIds != null)
            {
                _keyValueDB.MarkAsUnknown(toRemoveFileIds);
            }
        }
示例#3
0
        internal void FastStartCleanUp()
        {
            if (_keyValueDB.FileCollection.GetCount() == 0)
            {
                return;
            }
            _root = _keyValueDB.LastCommited;
            var dontTouchGeneration = _keyValueDB.GetGeneration(_root.TrLogFileId);

            InitFileStats(dontTouchGeneration);
            CalculateFileUsefullness();
            var toRemoveFileIds = new List <uint>();

            for (var i = 0; i < _fileStats.Length; i++)
            {
                if (_fileStats[i].Useless())
                {
                    toRemoveFileIds.Add((uint)i);
                }
            }
            _keyValueDB.MarkAsUnknown(toRemoveFileIds);
        }