Add durable shard mutation log storage
This commit is contained in:
parent
d73c3d26e8
commit
2ff82365cb
8 changed files with 367 additions and 52 deletions
|
|
@ -132,8 +132,7 @@ namespace GameCult.Networking
|
|||
};
|
||||
}
|
||||
|
||||
var entries = _database.GetMutationLog(request.ShardId, request.AfterSequence, request.Limit)
|
||||
.Select(ToLogEntryMessage)
|
||||
var entries = _database.GetMutationLogMessages(request.ShardId, request.AfterSequence, request.Limit)
|
||||
.ToArray();
|
||||
|
||||
return new CultNetShardLogResponseMessage
|
||||
|
|
@ -334,41 +333,6 @@ namespace GameCult.Networking
|
|||
};
|
||||
}
|
||||
|
||||
private CultNetShardLogEntryMessage ToLogEntryMessage(CultNetShardMutationLogEntry entry)
|
||||
{
|
||||
if (entry.Kind == CultNetDatabaseChangeKind.Removed || entry.Document == null)
|
||||
{
|
||||
return new CultNetShardLogEntryMessage
|
||||
{
|
||||
Sequence = entry.Sequence,
|
||||
CommittedAt = entry.CommittedAt,
|
||||
ChangeKind = "removed",
|
||||
Delete = new CultNetDocumentDeleteMessage
|
||||
{
|
||||
MessageId = Guid.NewGuid().ToString("N"),
|
||||
SchemaId = entry.SchemaId,
|
||||
RecordKey = entry.Key.Value,
|
||||
ShardId = entry.ShardId,
|
||||
ShardEpoch = entry.ShardEpoch
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return new CultNetShardLogEntryMessage
|
||||
{
|
||||
Sequence = entry.Sequence,
|
||||
CommittedAt = entry.CommittedAt,
|
||||
ChangeKind = entry.Kind == CultNetDatabaseChangeKind.Added ? "added" : "updated",
|
||||
Put = new CultNetDocumentPutRawMessage
|
||||
{
|
||||
MessageId = Guid.NewGuid().ToString("N"),
|
||||
Document = CreateRawDocumentRecord(entry.Key, entry.Document),
|
||||
ShardId = entry.ShardId,
|
||||
ShardEpoch = entry.ShardEpoch
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private CultNetRawDocumentRecord CreateRawDocumentRecord(CultRecordKey key, object document)
|
||||
{
|
||||
var method = typeof(CultNetDocumentRegistry)
|
||||
|
|
|
|||
Loading…
Reference in a new issue