public override async Task TestFixtureSetUp()
        {
            await base.TestFixtureSetUp();

            _logFormat = LogFormatHelper <TLogFormat, TStreamId> .LogFormatFactory.Create(new() {
                IndexDirectory = GetFilePathFor("index"),
            });

            _provider   = _logFormat.StreamNamesProvider;
            _publisher  = new InMemoryBus("publisher");
            _tfReader   = new FakeInMemoryTfReader(RecordOffset);
            _tableIndex = new FakeInMemoryTableIndex <TStreamId>();
            _provider.SetTableIndex(_tableIndex);
            _readerPool = new ObjectPool <ITransactionFileReader>(
                "ReadIndex readers pool", 5, 100,
                () => _tfReader);
            _indexBackend = new IndexBackend <TStreamId>(_readerPool, 100000, 100000);
            _streamIds    = _logFormat.StreamIds;
            _validator    = _logFormat.StreamIdValidator;
            var emptyStreamId = _logFormat.EmptyStreamId;

            _sizer       = _logFormat.StreamIdSizer;
            _indexReader = new IndexReader <TStreamId>(_indexBackend, _tableIndex, _provider, _validator,
                                                       _logFormat.StreamExistenceFilterReader, new StreamMetadata(maxCount: 100000), 100, false);
            _streamNames   = _logFormat.StreamNames;
            _systemStreams = _logFormat.SystemStreams;
            _indexWriter   = new IndexWriter <TStreamId>(_indexBackend, _indexReader, _streamIds, _streamNames,
                                                         _systemStreams, emptyStreamId, _sizer);
            _indexCommitter = new IndexCommitter <TStreamId>(_publisher, _indexBackend, _indexReader, _tableIndex,
                                                             _logFormat.StreamNameIndexConfirmer, _streamNames, _logFormat.EventTypeIndexConfirmer, _logFormat.EventTypes,
                                                             _systemStreams, _logFormat.StreamExistenceFilter, _logFormat.StreamExistenceFilterInitializer, new InMemoryCheckpoint(-1), false);

            WriteEvents();
        }
        public virtual void TestFixtureSetUp()
        {
            _logFormat  = LogFormatHelper <TLogFormat, TStreamId> .LogFormat;
            _publisher  = new InMemoryBus("publisher");
            _tfReader   = new FakeInMemoryTfReader(RecordOffset);
            _tableIndex = new FakeInMemoryTableIndex <TStreamId>();
            _readerPool = new ObjectPool <ITransactionFileReader>(
                "ReadIndex readers pool", 5, 100,
                () => _tfReader);
            _indexBackend = new IndexBackend <TStreamId>(_readerPool, 100000, 100000);
            var logFormat = LogFormatHelper <TLogFormat, TStreamId> .LogFormat;

            _streamIds     = logFormat.StreamIds;
            _streamNames   = logFormat.StreamNames;
            _systemStreams = logFormat.SystemStreams;
            _factory       = logFormat.StreamNamesProvider;
            _validator     = logFormat.StreamIdValidator;
            var emptyStreamId = logFormat.EmptyStreamId;

            _sizer          = logFormat.StreamIdSizer;
            _indexReader    = new IndexReader <TStreamId>(_indexBackend, _tableIndex, _factory, _validator, new StreamMetadata(maxCount: 100000), 100, false);
            _indexWriter    = new IndexWriter <TStreamId>(_indexBackend, _indexReader, _streamIds, _streamNames, _systemStreams, emptyStreamId, _sizer);
            _indexCommitter = new Core.Services.Storage.ReaderIndex.IndexCommitter <TStreamId>(_publisher, _indexBackend, _indexReader, _tableIndex, _streamNames, _systemStreams, new InMemoryCheckpoint(-1), false);

            WriteEvents();
        }
Exemplo n.º 3
0
 public AllReader(IIndexBackend backend, IIndexCommitter indexCommitter)
 {
     Ensure.NotNull(backend, "backend");
     Ensure.NotNull(indexCommitter, "indexCommitter");
     _backend = backend;
     _indexCommitter = indexCommitter;
 }
Exemplo n.º 4
0
 public AllReader(IIndexBackend backend, IIndexCommitter indexCommitter)
 {
     Ensure.NotNull(backend, "backend");
     Ensure.NotNull(indexCommitter, "indexCommitter");
     _backend        = backend;
     _indexCommitter = indexCommitter;
 }
Exemplo n.º 5
0
        public void Setup()
        {
            given();
            _indexDir     = PathName;
            _fakeReader   = new TFReaderLease(new FakeReader());
            _indexBackend = new FakeIndexBackend <string>(_fakeReader);

            _logFormat = LogFormatHelper <LogFormat.V2, string> .LogFormatFactory.Create(new() {
                InMemory = true,
            });

            _lowHasher  = _logFormat.LowHasher;
            _highHasher = _logFormat.HighHasher;
            _tableIndex = new TableIndex <string>(_indexDir, _lowHasher, _highHasher, _logFormat.EmptyStreamId,
                                                  () => new HashListMemTable(PTableVersions.IndexV1, maxSize: _maxMemTableSize),
                                                  () => _fakeReader,
                                                  PTableVersions.IndexV1,
                                                  5, Constants.PTableMaxReaderCountDefault,
                                                  maxSizeForMemory: _maxMemTableSize,
                                                  maxTablesPerLevel: 2);
            _logFormat.StreamNamesProvider.SetTableIndex(_tableIndex);
            _tableIndex.Initialize(long.MaxValue);
            _indexReader = new IndexReader <string>(_indexBackend, _tableIndex,
                                                    _logFormat.StreamNamesProvider,
                                                    _logFormat.StreamIdValidator,
                                                    _logFormat.StreamExistenceFilterReader,
                                                    new EventStore.Core.Data.StreamMetadata(),
                                                    _hashCollisionReadLimit, skipIndexScanOnRead: false);

            when();
            //wait for the mem table to be dumped
            System.Threading.Thread.Sleep(500);
        }
Exemplo n.º 6
0
        public ReadIndex(IPublisher bus,
                         ObjectPool <ITransactionFileReader> readerPool,
                         ITableIndex tableIndex,
                         int streamInfoCacheCapacity,
                         bool additionalCommitChecks,
                         long metastreamMaxCount,
                         int hashCollisionReadLimit,
                         bool skipIndexScanOnReads,
                         ICheckpoint replicationCheckpoint)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.NotNull(readerPool, "readerPool");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.Nonnegative(streamInfoCacheCapacity, "streamInfoCacheCapacity");
            Ensure.Positive(metastreamMaxCount, "metastreamMaxCount");
            Ensure.NotNull(replicationCheckpoint, "replicationCheckpoint");

            var metastreamMetadata = new StreamMetadata(maxCount: metastreamMaxCount);

            _indexBackend          = new IndexBackend(readerPool, streamInfoCacheCapacity, streamInfoCacheCapacity);
            _indexReader           = new IndexReader(_indexBackend, tableIndex, metastreamMetadata, hashCollisionReadLimit, skipIndexScanOnReads);
            _indexWriter           = new IndexWriter(_indexBackend, _indexReader);
            _indexCommitter        = new IndexCommitter(bus, _indexBackend, _indexReader, tableIndex, additionalCommitChecks);
            _allReader             = new AllReader(_indexBackend, _indexCommitter, replicationCheckpoint);
            _replicationCheckpoint = replicationCheckpoint;
        }
Exemplo n.º 7
0
        public IndexWriter(IIndexBackend indexBackend, IIndexReader indexReader)
        {
            Ensure.NotNull(indexBackend, "indexBackend");
            Ensure.NotNull(indexReader, "indexReader");

            _indexBackend = indexBackend;
            _indexReader = indexReader;
        }
Exemplo n.º 8
0
        public IndexWriter(IIndexBackend indexBackend, IIndexReader indexReader)
        {
            Ensure.NotNull(indexBackend, "indexBackend");
            Ensure.NotNull(indexReader, "indexReader");

            _indexBackend = indexBackend;
            _indexReader  = indexReader;
        }
Exemplo n.º 9
0
 public AllReader(IIndexBackend backend, IIndexCommitter indexCommitter, INameLookup <TStreamId> streamNames)
 {
     Ensure.NotNull(backend, "backend");
     Ensure.NotNull(indexCommitter, "indexCommitter");
     Ensure.NotNull(indexCommitter, nameof(streamNames));
     _backend        = backend;
     _indexCommitter = indexCommitter;
     _streamNames    = streamNames;
 }
Exemplo n.º 10
0
 public IndexCommitter(IPublisher bus, IIndexBackend backend, IIndexReader indexReader,
                       ITableIndex tableIndex, bool additionalCommitChecks)
 {
     _bus = bus;
     _backend = backend;
     _indexReader = indexReader;
     _tableIndex = tableIndex;
     _additionalCommitChecks = additionalCommitChecks;
 }
Exemplo n.º 11
0
 public IndexCommitter(IPublisher bus, IIndexBackend backend, IIndexReader indexReader,
                       ITableIndex tableIndex, bool additionalCommitChecks)
 {
     _bus                    = bus;
     _backend                = backend;
     _indexReader            = indexReader;
     _tableIndex             = tableIndex;
     _additionalCommitChecks = additionalCommitChecks;
 }
Exemplo n.º 12
0
 public AllReader(IIndexBackend backend, IIndexCommitter indexCommitter, ICheckpoint replicationCheckpoint)
 {
     Ensure.NotNull(backend, "backend");
     Ensure.NotNull(indexCommitter, "indexCommitter");
     Ensure.NotNull(replicationCheckpoint, "replicationCheckpoint");
     _backend               = backend;
     _indexCommitter        = indexCommitter;
     _replicationCheckpoint = replicationCheckpoint;
 }
Exemplo n.º 13
0
        public IndexReader(IIndexBackend backend, ITableIndex tableIndex, StreamMetadata metastreamMetadata, int hashCollisionReadLimit)
        {
            Ensure.NotNull(backend, "backend");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(metastreamMetadata, "metastreamMetadata");

            _backend                = backend;
            _tableIndex             = tableIndex;
            _metastreamMetadata     = metastreamMetadata;
            _hashCollisionReadLimit = hashCollisionReadLimit;
        }
Exemplo n.º 14
0
        public IndexReader(IIndexBackend backend, ITableIndex tableIndex, StreamMetadata metastreamMetadata, int hashCollisionReadLimit)
        {
            Ensure.NotNull(backend, "backend");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(metastreamMetadata, "metastreamMetadata");

            _backend = backend;
            _tableIndex = tableIndex;
            _metastreamMetadata = metastreamMetadata;
            _hashCollisionReadLimit = hashCollisionReadLimit;
        }
Exemplo n.º 15
0
        public IndexReader(IIndexBackend backend, IHasher hasher, ITableIndex tableIndex, StreamMetadata metastreamMetadata)
        {
            Ensure.NotNull(backend, "backend");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(metastreamMetadata, "metastreamMetadata");

            _backend = backend;
            _hasher = hasher;
            _tableIndex = tableIndex;
            _metastreamMetadata = metastreamMetadata;
        }
Exemplo n.º 16
0
        public IndexReader(IIndexBackend backend, IHasher hasher, ITableIndex tableIndex, StreamMetadata metastreamMetadata)
        {
            Ensure.NotNull(backend, "backend");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(metastreamMetadata, "metastreamMetadata");

            _backend            = backend;
            _hasher             = hasher;
            _tableIndex         = tableIndex;
            _metastreamMetadata = metastreamMetadata;
        }
Exemplo n.º 17
0
        public virtual void TestFixtureSetUp()
        {
            _publisher  = new InMemoryBus("publisher");
            _tfReader   = new FakeInMemoryTfReader(RecordOffset);
            _tableIndex = new FakeInMemoryTableIndex();
            _readerPool = new ObjectPool <ITransactionFileReader>(
                "ReadIndex readers pool", 5, 100,
                () => _tfReader);
            _indexBackend   = new IndexBackend(_readerPool, 100000, 100000);
            _indexReader    = new IndexReader(_indexBackend, _tableIndex, new StreamMetadata(maxCount: 100000), 100, false);
            _indexWriter    = new IndexWriter(_indexBackend, _indexReader);
            _indexCommitter = new IndexCommitter(_publisher, _indexBackend, _indexReader, _tableIndex, false);

            WriteEvents();
        }
Exemplo n.º 18
0
        // must use the commit to see if these are the first events in the stream
        // and for checkpointing.
        public void Confirm(
            IList <IPrepareLogRecord <string> > prepares,
            CommitLogRecord commit,
            bool catchingUp,
            IIndexBackend <string> backend)
        {
            if (catchingUp)
            {
                // after the main index is caught up we will initialize the stream existence filter
                return;
            }

            if (prepares.Count != 0 && commit.FirstEventNumber == 0)
            {
                var lastPrepare = prepares[prepares.Count - 1];
                _existenceFilter.Add(lastPrepare.EventStreamId);
            }

            _existenceFilter.CurrentCheckpoint = commit.LogPosition;
        }
Exemplo n.º 19
0
        public void Setup(){
            given();
            _indexDir = PathName;
            _fakeReader = new TFReaderLease(new FakeReader());
            _indexBackend = new FakeIndexBackend(_fakeReader);
            _lowHasher = new XXHashUnsafe();
            _highHasher = new Murmur3AUnsafe();
            _tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher,
                                         () => new HashListMemTable(PTableVersions.Index32Bit, maxSize: _maxMemTableSize),
                                         () => _fakeReader,
                                         PTableVersions.Index32Bit,
                                         maxSizeForMemory: _maxMemTableSize,
                                         maxTablesPerLevel: 2);
            _tableIndex.Initialize(long.MaxValue);
            _indexReader = new IndexReader(_indexBackend, _tableIndex, new EventStore.Core.Data.StreamMetadata(), _hashCollisionReadLimit);

            when();
            //wait for the mem table to be dumped
            System.Threading.Thread.Sleep(500);
        }
Exemplo n.º 20
0
        public void Setup()
        {
            given();
            _indexDir     = PathName;
            _fakeReader   = new TFReaderLease(new FakeReader());
            _indexBackend = new FakeIndexBackend(_fakeReader);
            _lowHasher    = new XXHashUnsafe();
            _highHasher   = new Murmur3AUnsafe();
            _tableIndex   = new TableIndex(_indexDir, _lowHasher, _highHasher,
                                           () => new HashListMemTable(PTableVersions.IndexV1, maxSize: _maxMemTableSize),
                                           () => _fakeReader,
                                           PTableVersions.IndexV1,
                                           maxSizeForMemory: _maxMemTableSize,
                                           maxTablesPerLevel: 2);
            _tableIndex.Initialize(long.MaxValue);
            _indexReader = new IndexReader(_indexBackend, _tableIndex, new EventStore.Core.Data.StreamMetadata(), _hashCollisionReadLimit);

            when();
            //wait for the mem table to be dumped
            System.Threading.Thread.Sleep(500);
        }
Exemplo n.º 21
0
        public ReadIndex(IPublisher bus,
                         ObjectPool<ITransactionFileReader> readerPool,
                         ITableIndex tableIndex,
                         int streamInfoCacheCapacity,
                         bool additionalCommitChecks,
                         int metastreamMaxCount,
                         int hashCollisionReadLimit)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.NotNull(readerPool, "readerPool");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.Nonnegative(streamInfoCacheCapacity, "streamInfoCacheCapacity");
            Ensure.Positive(metastreamMaxCount, "metastreamMaxCount");

            var metastreamMetadata = new StreamMetadata(maxCount: metastreamMaxCount);

            _indexBackend = new IndexBackend(readerPool, streamInfoCacheCapacity, streamInfoCacheCapacity);
            _indexReader = new IndexReader(_indexBackend, tableIndex, metastreamMetadata, hashCollisionReadLimit);
            _indexWriter = new IndexWriter(_indexBackend, _indexReader);
            _indexCommitter = new IndexCommitter(bus, _indexBackend, _indexReader, tableIndex, additionalCommitChecks);
            _allReader = new AllReader(_indexBackend, _indexCommitter);
        }
Exemplo n.º 22
0
        public ReadIndex(IPublisher bus,
                         ObjectPool <ITransactionFileReader> readerPool,
                         ITableIndex tableIndex,
                         IHasher hasher,
                         int streamInfoCacheCapacity,
                         bool additionalCommitChecks,
                         int metastreamMaxCount)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.NotNull(readerPool, "readerPool");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(hasher, "hasher");
            Ensure.Nonnegative(streamInfoCacheCapacity, "streamInfoCacheCapacity");
            Ensure.Positive(metastreamMaxCount, "metastreamMaxCount");

            var metastreamMetadata = new StreamMetadata(maxCount: metastreamMaxCount);

            _indexBackend   = new IndexBackend(readerPool, streamInfoCacheCapacity, streamInfoCacheCapacity);
            _indexReader    = new IndexReader(_indexBackend, hasher, tableIndex, metastreamMetadata);
            _indexWriter    = new IndexWriter(_indexBackend, _indexReader);
            _indexCommitter = new IndexCommitter(bus, _indexBackend, _indexReader, tableIndex, hasher, additionalCommitChecks);
            _allReader      = new AllReader(_indexBackend, _indexCommitter);
        }
Exemplo n.º 23
0
        public void Confirm(IList <IPrepareLogRecord <string> > prepares, bool catchingUp, IIndexBackend <string> backend)
        {
            if (catchingUp)
            {
                // after the main index is caught up we will initialize the stream existence filter
                return;
            }

            if (prepares.Count == 0)
            {
                return;
            }

            var lastPrepare = prepares[prepares.Count - 1];

            if (prepares[0].ExpectedVersion == ExpectedVersion.NoStream)
            {
                _existenceFilter.Add(lastPrepare.EventStreamId);
            }

            _existenceFilter.CurrentCheckpoint = lastPrepare.LogPosition;
        }
Exemplo n.º 24
0
 public AllReader(IIndexBackend backend)
 {
     Ensure.NotNull(backend, "backend");
     _backend = backend;
 }
Exemplo n.º 25
0
 public AllReader(IIndexBackend backend)
 {
     Ensure.NotNull(backend, "backend");
     _backend = backend;
 }
Exemplo n.º 26
0
		public void Confirm(
			IList<IPrepareLogRecord<string>> prepares,
			CommitLogRecord commit,
			bool catchingUp,
			IIndexBackend<string> backend) {
		}