private void HandleReplicateNextPage(StorageMessageUnion wrapper, MessageStreamWriter <StorageMessageUnion> writer) { var replicationResult = replication.ReplicateNextPage( wrapper.ReplicateNextPageRequest.ReplicationEndpoint.GetNodeEndpoint(), wrapper.ReplicateNextPageRequest.Type == ReplicationType.Backup ? Internal.ReplicationType.Backup : Internal.ReplicationType.Ownership, wrapper.ReplicateNextPageRequest.Segment ); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.ReplicateNextPageResponse, ReplicateNextPageResponse = new ReplicateNextPageResponseMessage.Builder() { Done = replicationResult.Done, RemoveRequestsList = { replicationResult.RemoveRequests.Select(x => x.GetRemoveRequest()), }, PutRequestsList = { replicationResult.PutRequests.Select(x => x.GetPutRequest()) } }.Build() }.Build()); }
private void HandlePut(StorageMessageUnion wrapper, int topologyVersion, MessageStreamWriter <StorageMessageUnion> writer) { var puts = wrapper.PutRequestsList.Select(x => x.GetPutRequest()).ToArray(); var results = storage.Put(topologyVersion, puts); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.PutResponses, TopologyVersion = topologyVersion, PutResponsesList = { results.Select(x => x.GetPutResponse()) } }.Build()); }
private void HandleAssignEmpty(StorageMessageUnion wrapper, MessageStreamWriter <StorageMessageUnion> writer) { var segments = replication.AssignAllEmptySegments( wrapper.AssignAllEmptySegmentsRequest.ReplicationEndpoint.GetNodeEndpoint(), wrapper.AssignAllEmptySegmentsRequest.Type == ReplicationType.Backup ? Internal.ReplicationType.Backup : Internal.ReplicationType.Ownership, wrapper.AssignAllEmptySegmentsRequest.SegmentsList.ToArray() ); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.AssignAllEmptySegmentsResponse, AssignAllEmptySegmentsResponse = new AssignAllEmptySegmentsResponseMessage.Builder { AssignedSegmentsList = { segments } }.Build() }.Build()); }
private void HandleGet(StorageMessageUnion wrapper, int topologyVersion, MessageStreamWriter <StorageMessageUnion> writer) { var values = storage.Get(topologyVersion, wrapper.GetRequestsList.Select(x => x.GetGetRequest()).ToArray() ); var reply = new StorageMessageUnion.Builder { Type = StorageMessageType.GetResponses, TopologyVersion = wrapper.TopologyVersion, GetResponsesList = { values.Select(x => x.GetGetResponse()) } }; writer.Write(reply.Build()); }
private void HandleRemove(StorageMessageUnion wrapper, int topologyVersion, MessageStreamWriter <StorageMessageUnion> writer) { var requests = wrapper.RemoveRequestsList.Select(x => x.GetRemoveRequest()).ToArray(); var removed = storage.Remove(topologyVersion, requests); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.RemoveResponses, TopologyVersion = topologyVersion, RemoveResponesList = { removed.Select(x => new RemoveResponseMessage.Builder { WasRemoved = x }.Build()) } }.Build()); }
private void HandleReplicateNextPage(StorageMessageUnion wrapper, MessageStreamWriter<StorageMessageUnion> writer) { var replicationResult = replication.ReplicateNextPage( wrapper.ReplicateNextPageRequest.ReplicationEndpoint.GetNodeEndpoint(), wrapper.ReplicateNextPageRequest.Type == ReplicationType.Backup ? Internal.ReplicationType.Backup : Internal.ReplicationType.Ownership, wrapper.ReplicateNextPageRequest.Segment ); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.ReplicateNextPageResponse, ReplicateNextPageResponse = new ReplicateNextPageResponseMessage.Builder() { Done = replicationResult.Done, RemoveRequestsList = { replicationResult.RemoveRequests.Select(x=>x.GetRemoveRequest()), }, PutRequestsList = { replicationResult.PutRequests.Select(x=>x.GetPutRequest()) } }.Build() }.Build()); }
private void HandleRemove(StorageMessageUnion wrapper, int topologyVersion, MessageStreamWriter<StorageMessageUnion> writer) { var requests = wrapper.RemoveRequestsList.Select(x => x.GetRemoveRequest()).ToArray(); var removed = storage.Remove(topologyVersion, requests); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.RemoveResponses, TopologyVersion = topologyVersion, RemoveResponesList = { removed.Select(x => new RemoveResponseMessage.Builder { WasRemoved = x }.Build()) } }.Build()); }
private void HandlePut(StorageMessageUnion wrapper, int topologyVersion, MessageStreamWriter<StorageMessageUnion> writer) { var puts = wrapper.PutRequestsList.Select(x => x.GetPutRequest()).ToArray(); var results = storage.Put(topologyVersion, puts); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.PutResponses, TopologyVersion = topologyVersion, PutResponsesList = { results.Select(x=>x.GetPutResponse()) } }.Build()); }
private void HandleGet(StorageMessageUnion wrapper, int topologyVersion, MessageStreamWriter<StorageMessageUnion> writer) { var values = storage.Get(topologyVersion, wrapper.GetRequestsList.Select(x => x.GetGetRequest()).ToArray() ); var reply = new StorageMessageUnion.Builder { Type = StorageMessageType.GetResponses, TopologyVersion = wrapper.TopologyVersion, GetResponsesList = { values.Select(x=> x.GetGetResponse()) } }; writer.Write(reply.Build()); }
private void HandleAssignEmpty(StorageMessageUnion wrapper, MessageStreamWriter<StorageMessageUnion> writer) { var segments = replication.AssignAllEmptySegments( wrapper.AssignAllEmptySegmentsRequest.ReplicationEndpoint.GetNodeEndpoint(), wrapper.AssignAllEmptySegmentsRequest.Type == ReplicationType.Backup ? Internal.ReplicationType.Backup : Internal.ReplicationType.Ownership, wrapper.AssignAllEmptySegmentsRequest.SegmentsList.ToArray() ); writer.Write(new StorageMessageUnion.Builder { Type = StorageMessageType.AssignAllEmptySegmentsResponse, AssignAllEmptySegmentsResponse = new AssignAllEmptySegmentsResponseMessage.Builder { AssignedSegmentsList = { segments } }.Build() }.Build()); }