예제 #1
0
        public TFChunkDbConfig(string path,
                               IVersionedFileNamingStrategy fileNamingStrategy,
                               int chunkSize,
                               long maxChunksCacheSize,
                               ICheckpoint writerCheckpoint,
                               ICheckpoint chaserCheckpoint,
                               ICheckpoint epochCheckpoint,
                               ICheckpoint proposalCheckpoint,
                               ICheckpoint truncateCheckpoint,
                               ICheckpoint replicationCheckpoint,
                               ICheckpoint indexCheckpoint,
                               ICheckpoint streamExistenceFilterCheckpoint,
                               int initialReaderCount,
                               int maxReaderCount,
                               bool inMemDb                 = false,
                               bool unbuffered              = false,
                               bool writethrough            = false,
                               bool optimizeReadSideCache   = false,
                               bool reduceFileCachePressure = false,
                               long maxTruncation           = 256 * 1024 * 1024)
        {
            Ensure.NotNullOrEmpty(path, "path");
            Ensure.NotNull(fileNamingStrategy, "fileNamingStrategy");
            Ensure.Positive(chunkSize, "chunkSize");
            Ensure.Nonnegative(maxChunksCacheSize, "maxChunksCacheSize");
            Ensure.NotNull(writerCheckpoint, "writerCheckpoint");
            Ensure.NotNull(chaserCheckpoint, "chaserCheckpoint");
            Ensure.NotNull(epochCheckpoint, "epochCheckpoint");
            Ensure.NotNull(proposalCheckpoint, "proposalCheckpoint");
            Ensure.NotNull(truncateCheckpoint, "truncateCheckpoint");
            Ensure.NotNull(replicationCheckpoint, "replicationCheckpoint");
            Ensure.NotNull(indexCheckpoint, "indexCheckpoint");
            Ensure.NotNull(streamExistenceFilterCheckpoint, "streamExistenceFilterCheckpoint");
            Ensure.Positive(initialReaderCount, "initialReaderCount");
            Ensure.Positive(maxReaderCount, "maxReaderCount");

            Path                            = path;
            ChunkSize                       = chunkSize;
            MaxChunksCacheSize              = maxChunksCacheSize;
            WriterCheckpoint                = writerCheckpoint;
            ChaserCheckpoint                = chaserCheckpoint;
            EpochCheckpoint                 = epochCheckpoint;
            ProposalCheckpoint              = proposalCheckpoint;
            TruncateCheckpoint              = truncateCheckpoint;
            ReplicationCheckpoint           = replicationCheckpoint;
            IndexCheckpoint                 = indexCheckpoint;
            StreamExistenceFilterCheckpoint = streamExistenceFilterCheckpoint;
            FileNamingStrategy              = fileNamingStrategy;
            InMemDb                         = inMemDb;
            Unbuffered                      = unbuffered;
            WriteThrough                    = writethrough;
            InitialReaderCount              = initialReaderCount;
            MaxReaderCount                  = maxReaderCount;
            OptimizeReadSideCache           = optimizeReadSideCache;
            ReduceFileCachePressure         = reduceFileCachePressure;
            MaxTruncation                   = maxTruncation;
        }
예제 #2
0
 public TFChunkEnumerator(IVersionedFileNamingStrategy chunkFileNamingStrategy)
 {
     _chunkFileNamingStrategy = chunkFileNamingStrategy;
     _allFiles        = null;
     _nextChunkNumber = new Dictionary <string, int>();
 }