public WriteEvents( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, string streamId, bool betterOrdering, long expectedVersion, ClaimsPrincipal user, Event[] events, CommitSource commitSource) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion, commitSource, prepareCount: 0, waitForCommit: true) { _streamId = streamId; //this seems like it should work, but really really doesn't //TODO(clc): confirm MetaWrite is implemented //_accessType = SystemStreams.IsMetaStream(streamId) ? StreamAccessType.MetaWrite : StreamAccessType.Write; _accessType = StreamAccessType.Write; _betterOrdering = betterOrdering; _user = user; _events = events; }
public TransactionStart( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, string streamId, bool betterOrdering, long expectedVersion, ClaimsPrincipal user, CommitSource commitSource) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion, commitSource, prepareCount: 1) { _streamId = streamId; _betterOrdering = betterOrdering; _user = user; }
public DeleteStream( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, string streamId, bool betterOrdering, long expectedVersion, IPrincipal user, bool hardDelete, CommitSource commitSource) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion, commitSource, prepareCount: 0, waitForCommit: true) { _hardDelete = hardDelete; _streamId = streamId; _betterOrdering = betterOrdering; _user = user; }
public DeleteStream( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, string streamId, long expectedVersion, bool hardDelete, CommitSource commitSource, CancellationToken cancellationToken = default) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion, commitSource, prepareCount: 0, waitForCommit: true) { _hardDelete = hardDelete; _cancellationToken = cancellationToken; _streamId = streamId; }
public TransactionCommit( IPublisher publisher, TimeSpan prepareTimeout, TimeSpan commitTimeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, long transactionId, bool betterOrdering, ClaimsPrincipal user, CommitSource commitSource) : base( publisher, prepareTimeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion: -1, commitSource, transactionId: transactionId, prepareCount: 1, waitForCommit: true) { _commitTimeout = commitTimeout; _betterOrdering = betterOrdering; _user = user; }
public WriteEvents(IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, string streamId, long expectedVersion, Event[] events, CommitSource commitSource, CancellationToken cancellationToken = default) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion, commitSource, prepareCount: 0, waitForCommit: true) { _streamId = streamId; _events = events; _cancellationToken = cancellationToken; }
protected override void AllEventsWritten() { if (CommitSource.ReplicationPosition >= LastEventPosition) { Committed(); } else if (!Registered) { CommitSource.NotifyFor(LastEventPosition, Committed, CommitLevel.Replicated); Registered = true; } }
public TransactionStart( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, string streamId, long expectedVersion, CommitSource commitSource) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion, commitSource, prepareCount: 1) { _streamId = streamId; }
public TransactionWrite( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, Event[] events, long transactionId, CommitSource commitSource) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion: -1, commitSource, prepareCount: events.Length, transactionId) { _events = events; }
public TransactionCommit( IPublisher publisher, TimeSpan prepareTimeout, TimeSpan commitTimeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, long transactionId, CommitSource commitSource) : base( publisher, prepareTimeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion: -1, commitSource, transactionId: transactionId, prepareCount: 1, waitForCommit: true) { _commitTimeout = commitTimeout; }
protected RequestManagerBase( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, long expectedVersion, CommitSource commitSource, int prepareCount = 0, long transactionId = -1, bool waitForCommit = false) { Ensure.NotEmptyGuid(internalCorrId, nameof(internalCorrId)); Ensure.NotEmptyGuid(clientCorrId, nameof(clientCorrId)); Ensure.NotNull(publisher, nameof(publisher)); Ensure.NotNull(clientResponseEnvelope, nameof(clientResponseEnvelope)); Ensure.NotNull(commitSource, nameof(commitSource)); Publisher = publisher; Timeout = timeout; _clientResponseEnvelope = clientResponseEnvelope; InternalCorrId = internalCorrId; ClientCorrId = clientCorrId; WriteReplyEnvelope = new PublishEnvelope(Publisher); ExpectedVersion = expectedVersion; CommitSource = commitSource; _prepareCount = prepareCount; TransactionId = transactionId; _commitReceived = !waitForCommit; //if not waiting for commit flag as true _allPreparesWritten = _prepareCount == 0; //if not waiting for prepares flag as true if (prepareCount == 0 && waitForCommit == false) { //empty operation just return success var position = Math.Max(transactionId, 0); ReturnCommitAt(position, 0, 0); } }
public FakeRequestManager( IPublisher publisher, TimeSpan timeout, IEnvelope clientResponseEnvelope, Guid internalCorrId, Guid clientCorrId, long expectedVersion, CommitSource commitSource, int prepareCount = 0, long transactionId = -1, bool waitForCommit = false) : base( publisher, timeout, clientResponseEnvelope, internalCorrId, clientCorrId, expectedVersion, commitSource, prepareCount, transactionId, waitForCommit) { }
public void CommitSelection(CommitSource source) { _commitSource = source; _committedIndex = SelectedIndex; base.OnSelectedIndexChanged(new EventArgs()); }
protected override async Task <int> WriteAsync() { var updates = GetCurrentBatchOfUpdates(); var grainId = Services.GrainReference.ToKeyString(); var nextVersion = _confirmedVersionInternal + 1; var commitSource = new CommitSource { Id = grainId, Type = _grainTypeName, Version = nextVersion }; var events = new List <object>(); foreach (var update in updates) { events.Add(update.Entry); } var commitRequest = new CommitRequest(commitSource, events); var commitRequestString = JsonConvert.SerializeObject(commitRequest, _serializerSettings); var opts = new RequestOptions() { PartitionKey = new PartitionKey(commitRequest.PartitionId) }; var commitResult = await _storedProcClient.ExecuteStoredProcedureAsync <string>(_commitStoredProcUri, opts, commitRequestString); var commit = JsonConvert.DeserializeObject <Commit>(commitResult.Response); //var commit = new Commit(commitNumber, nextVersion, commitSource, events); //await _client.UpsertDocumentAsync(_collectionUri, commit); _commits.Add(commit); foreach (var @event in events) { Host.UpdateView(_confirmedViewInternal, (TLogEntry)@event); } if (_options.TakeSnapshots && commit.Source.Version % _options.CommitsPerSnapshot == 0) { var snapshot = new Snapshot <TLogView> { Source = commitSource, State = _confirmedViewInternal }; await _client.UpsertDocumentAsync(_collectionUri, snapshot, new RequestOptions { PartitionKey = new PartitionKey(snapshot.PartitionId) }); } if (_options.PostCommit != null) { await _options.PostCommit(commit); } _confirmedVersionInternal = commit.Source.Version; return(updates.Length); }