private const int FlushPageInterval = 32; // max 65536 pages to write resulting in 2048 flushes per chunk public TFChunkScavenger(TFChunkDb db, ITFChunkScavengerLog scavengerLog, ITableIndex tableIndex, IReadIndex readIndex, long?maxChunkDataSize = null, bool unsafeIgnoreHardDeletes = false, int threads = 1) { Ensure.NotNull(db, "db"); Ensure.NotNull(scavengerLog, "scavengerLog"); Ensure.NotNull(tableIndex, "tableIndex"); Ensure.NotNull(readIndex, "readIndex"); Ensure.Positive(threads, "threads"); if (threads > MaxThreadCount) { Log.Warning( "{numThreads} scavenging threads not allowed. Max threads allowed for scavenging is {maxThreadCount}. Capping.", threads, MaxThreadCount); threads = MaxThreadCount; } _db = db; _scavengerLog = scavengerLog; _tableIndex = tableIndex; _readIndex = readIndex; _maxChunkDataSize = maxChunkDataSize ?? db.Config.ChunkSize; _unsafeIgnoreHardDeletes = unsafeIgnoreHardDeletes; _threads = threads; }
public TFChunkScavenger(TFChunkDb db, ITFChunkScavengerLog scavengerLog, ITableIndex tableIndex, IReadIndex readIndex, long? maxChunkDataSize = null, bool unsafeIgnoreHardDeletes=false) { Ensure.NotNull(db, "db"); Ensure.NotNull(scavengerLog, "scavengerLog"); Ensure.NotNull(tableIndex, "tableIndex"); Ensure.NotNull(readIndex, "readIndex"); _db = db; _scavengerLog = scavengerLog; _tableIndex = tableIndex; _readIndex = readIndex; _maxChunkDataSize = maxChunkDataSize ?? db.Config.ChunkSize; _unsafeIgnoreHardDeletes = unsafeIgnoreHardDeletes; }