Esempio n. 1
0
        public EpochManager(IPublisher bus,
                            int cachedEpochCount,
                            ICheckpoint checkpoint,
                            ITransactionFileWriter writer,
                            int initialReaderCount,
                            int maxReaderCount,
                            Func <ITransactionFileReader> readerFactory)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.Nonnegative(cachedEpochCount, "cachedEpochCount");
            Ensure.NotNull(checkpoint, "checkpoint");
            Ensure.NotNull(writer, "chunkWriter");
            Ensure.Nonnegative(initialReaderCount, "initialReaderCount");
            Ensure.Positive(maxReaderCount, "maxReaderCount");
            if (initialReaderCount > maxReaderCount)
            {
                throw new ArgumentOutOfRangeException("initialReaderCount", "initialReaderCount is greater than maxReaderCount.");
            }
            Ensure.NotNull(readerFactory, "readerFactory");

            _bus             = bus;
            CachedEpochCount = cachedEpochCount;
            _checkpoint      = checkpoint;
            _readers         = new ObjectPool <ITransactionFileReader>("EpochManager readers pool", initialReaderCount, maxReaderCount, readerFactory);
            _writer          = writer;
        }
        public void SetUp()
        {
            _writerCheckpoint = new InMemoryCheckpoint();
            _db = new TFChunkDb(TFChunkHelper.CreateDbConfig(PathName, _writerCheckpoint, new InMemoryCheckpoint(),
                                                             1024));
            _db.Open();
            _writer = new TFChunkWriter(_db);
            _writer.Open();

            var recordFactory = LogFormatHelper <TLogFormat, TStreamId> .RecordFactory;
            var streamId      = LogFormatHelper <TLogFormat, TStreamId> .StreamId;
            var eventTypeId   = LogFormatHelper <TLogFormat, TStreamId> .EventTypeId;

            _record = LogRecord.Prepare(
                factory: recordFactory,
                logPosition: 0,
                eventId: _eventId,
                correlationId: _correlationId,
                transactionPos: 0xDEAD,
                transactionOffset: 0xBEEF,
                eventStreamId: streamId,
                expectedVersion: 1234,
                timeStamp: new DateTime(2012, 12, 21),
                flags: PrepareFlags.SingleWrite,
                eventType: eventTypeId,
                data: new byte[] { 1, 2, 3, 4, 5 },
                metadata: new byte[] { 7, 17 });
            long newPos;

            _writer.Write(_record, out newPos);
            _writer.Flush();
        }
 public void SetUp()
 {
     _writerCheckpoint = new InMemoryCheckpoint();
     _db = new TFChunkDb(new TFChunkDbConfig(PathName,
                                             new VersionedPatternFileNamingStrategy(PathName, "chunk-"),
                                             1024,
                                             0,
                                             _writerCheckpoint,
                                             new InMemoryCheckpoint(),
                                             new InMemoryCheckpoint(-1),
                                             new InMemoryCheckpoint(-1)));
     _db.Open();
     _writer = new TFChunkWriter(_db);
     _writer.Open();
     _record = new PrepareLogRecord(logPosition: 0,
                                    eventId: _eventId,
                                    correlationId: _correlationId,
                                    transactionPosition: 0xDEAD,
                                    transactionOffset: 0xBEEF,
                                    eventStreamId: "WorldEnding",
                                    expectedVersion: 1234,
                                    timeStamp: new DateTime(2012, 12, 21),
                                    flags: PrepareFlags.SingleWrite,
                                    eventType: "type",
                                    data: new byte[] { 1, 2, 3, 4, 5 },
                                    metadata: new byte[] {7, 17});
     long newPos;
     _writer.Write(_record, out newPos);
     _writer.Flush();
 }
        public void SetUp()
        {
            _writerCheckpoint = new InMemoryCheckpoint();
            _db = new TFChunkDb(TFChunkHelper.CreateDbConfig(PathName, _writerCheckpoint, new InMemoryCheckpoint(),
                                                             1024));
            _db.Open();
            _writer = new TFChunkWriter(_db);
            _writer.Open();
            _record = new PrepareLogRecord(logPosition: 0,
                                           eventId: _eventId,
                                           correlationId: _correlationId,
                                           transactionPosition: 0xDEAD,
                                           transactionOffset: 0xBEEF,
                                           eventStreamId: "WorldEnding",
                                           expectedVersion: 1234,
                                           timeStamp: new DateTime(2012, 12, 21),
                                           flags: PrepareFlags.SingleWrite,
                                           eventType: "type",
                                           data: new byte[] { 1, 2, 3, 4, 5 },
                                           metadata: new byte[] { 7, 17 });
            long newPos;

            _writer.Write(_record, out newPos);
            _writer.Flush();
        }
 public PartitionManager(
     ITransactionFileReader reader, ITransactionFileWriter writer, LogV3RecordFactory recordFactory)
 {
     _reader        = reader;
     _writer        = writer;
     _recordFactory = recordFactory;
 }
        public void Write(string fileName, List <Transaction> transactions)
        {
            logger.Info($"Writing transactions to {fileName}");

            string extension = fileName.Split('.').Last();
            ITransactionFileWriter fileWriter = GetWriterForExtension(extension);

            fileWriter.Write(fileName, transactions);

            logger.Info($"Successfully written transactions to {fileName}");
            Console.WriteLine($"Successfully written transactions to {fileName}");
        }
        public void SetUp()
        {
            _writerCheckpoint = new InMemoryCheckpoint();
            _db = new TFChunkDb(TFChunkHelper.CreateDbConfig(PathName, _writerCheckpoint, new InMemoryCheckpoint(), 1024));
            _db.Open();
            _writer = new TFChunkWriter(_db);
            _writer.Open();
            _record = new CommitLogRecord(logPosition: 0,
                                          correlationId: _eventId,
                                          transactionPosition: 4321,
                                          timeStamp: new DateTime(2012, 12, 21),
                                          firstEventNumber: 10);
            long newPos;

            _writer.Write(_record, out newPos);
            _writer.Flush();
        }
Esempio n. 8
0
        public StorageWriter(IPublisher bus, ISubscriber subscriber, ITransactionFileWriter writer, IReadIndex readIndex)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.NotNull(subscriber, "subscriber");
            Ensure.NotNull(writer, "writer");
            Ensure.NotNull(readIndex, "readIndex");

            _bus       = bus;
            _readIndex = readIndex;

            _flushDelay = 0;
            _lastFlush  = _watch.ElapsedTicks;

            _writer = writer;
            _writer.Open();
            _framer.RegisterMessageArrivedCallback(OnLogRecordArrived);

            SetupMessaging(subscriber);
        }
Esempio n. 9
0
        public EpochManager(int cachedEpochCount, 
                            ICheckpoint checkpoint, 
                            ITransactionFileWriter writer,
                            int initialReaderCount,
                            int maxReaderCount, 
                            Func<ITransactionFileReader> readerFactory)
        {
            Ensure.Nonnegative(cachedEpochCount, "cachedEpochCount");
            Ensure.NotNull(checkpoint, "checkpoint");
            Ensure.NotNull(writer, "chunkWriter");
            Ensure.Nonnegative(initialReaderCount, "initialReaderCount");
            Ensure.Positive(maxReaderCount, "maxReaderCount");
            if (initialReaderCount > maxReaderCount)
                throw new ArgumentOutOfRangeException("initialReaderCount", "initialReaderCount is greater than maxReaderCount.");
            Ensure.NotNull(readerFactory, "readerFactory");

            CachedEpochCount = cachedEpochCount;
            _checkpoint = checkpoint;
            _readers = new ObjectPool<ITransactionFileReader>("EpochManager readers pool", initialReaderCount, maxReaderCount, readerFactory);
            _writer = writer;
        }
 public void SetUp()
 {
     _writerCheckpoint = new InMemoryCheckpoint();
     _db = new TFChunkDb(new TFChunkDbConfig(PathName,
                                             new VersionedPatternFileNamingStrategy(PathName, "chunk-"),
                                             1024,
                                             0,
                                             _writerCheckpoint,
                                             new InMemoryCheckpoint(),
                                             new ICheckpoint[0]));
     _db.OpenVerifyAndClean();
     _writer = new TFChunkWriter(_db);
     _writer.Open();
     _record = new CommitLogRecord(logPosition: 0xFEED,
                                   correlationId: _eventId,
                                   transactionPosition: 4321,
                                   timeStamp: new DateTime(2012, 12, 21),
                                   firstEventNumber: 10);
     long newPos;
     _writer.Write(_record, out newPos);
     _writer.Flush();
 }
Esempio n. 11
0
        public EpochManager(IPublisher bus,
                            int cachedEpochCount,
                            ICheckpoint checkpoint,
                            ITransactionFileWriter writer,
                            int initialReaderCount,
                            int maxReaderCount,
                            Func <ITransactionFileReader> readerFactory,
                            IRecordFactory <TStreamId> recordFactory,
                            INameIndex <TStreamId> streamNameIndex,
                            INameIndex <TStreamId> eventTypeIndex,
                            IPartitionManager partitionManager,
                            Guid instanceId)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.Nonnegative(cachedEpochCount, "cachedEpochCount");
            Ensure.NotNull(checkpoint, "checkpoint");
            Ensure.NotNull(writer, "chunkWriter");
            Ensure.Nonnegative(initialReaderCount, "initialReaderCount");
            Ensure.Positive(maxReaderCount, "maxReaderCount");
            if (initialReaderCount > maxReaderCount)
            {
                throw new ArgumentOutOfRangeException(nameof(initialReaderCount),
                                                      "initialReaderCount is greater than maxReaderCount.");
            }
            Ensure.NotNull(readerFactory, "readerFactory");

            _bus        = bus;
            _cacheSize  = cachedEpochCount;
            _checkpoint = checkpoint;
            _readers    = new ObjectPool <ITransactionFileReader>("EpochManager readers pool", initialReaderCount,
                                                                  maxReaderCount, readerFactory);
            _writer           = writer;
            _recordFactory    = recordFactory;
            _streamNameIndex  = streamNameIndex;
            _eventTypeIndex   = eventTypeIndex;
            _partitionManager = partitionManager;
            _instanceId       = instanceId;
        }
Esempio n. 12
0
        public void SetUp()
        {
            _writerCheckpoint = new InMemoryCheckpoint();
            _db = new TFChunkDb(new TFChunkDbConfig(PathName,
                                                    new VersionedPatternFileNamingStrategy(PathName, "chunk-"),
                                                    1024,
                                                    0,
                                                    _writerCheckpoint,
                                                    new InMemoryCheckpoint(),
                                                    new ICheckpoint[0]));
            _db.OpenVerifyAndClean();
            _writer = new TFChunkWriter(_db);
            _writer.Open();
            _record = new CommitLogRecord(logPosition: 0xFEED,
                                          correlationId: _eventId,
                                          transactionPosition: 4321,
                                          timeStamp: new DateTime(2012, 12, 21),
                                          eventNumber: 10);
            long newPos;

            _writer.Write(_record, out newPos);
            _writer.Flush();
        }