Skip to content
Snippets Groups Projects
vr-proto.proto 2.27 KiB
Newer Older
syntax = "proto2";

import "replication/common/request.proto";

package replication.vr.proto;

message RequestMessage {
    required replication.Request req = 1;
}

message ReplyMessage {
    required uint64 view = 1;
    required uint64 opnum = 2;
    required uint64 clientreqid = 3;
    required bytes reply = 4;
}

message UnloggedRequestMessage {
    required replication.UnloggedRequest req = 1;
}

message UnloggedReplyMessage {
    required bytes reply = 1;
    required uint64 clientreqid = 2;
}

message PrepareMessage {
    required uint64 view = 1;
    required uint64 opnum = 2;
    required uint64 batchstart = 3;
    repeated Request request = 4;
}

message PrepareOKMessage {
    required uint64 view = 1;
    required uint64 opnum = 2;
    required uint32 replicaIdx = 3;
}

message CommitMessage {
    required uint64 view = 1;
    required uint64 opnum = 2;    
}

message RequestStateTransferMessage {
    required uint64 view = 1;
    required uint64 opnum = 2;    
}

message StateTransferMessage {
    message LogEntry {
        required uint64 view = 1;
        required uint64 opnum = 2;
        required replication.Request request = 3;
        optional uint32 state = 4;
        optional bytes hash = 5;
    }
    required uint64 view = 1;
    required uint64 opnum = 2;
    repeated LogEntry entries = 3;
}

message StartViewChangeMessage {
    required uint64 view = 1;
    required uint32 replicaIdx = 2;
    required uint64 lastCommitted = 3;
}

message DoViewChangeMessage {
    message LogEntry {
        required uint64 view = 1;
        required uint64 opnum = 2;
        required replication.Request request = 3;
        optional uint32 state = 4;
        optional bytes hash = 5;
    }
    required uint64 view = 1;
    required uint64 lastNormalView = 2;
    required uint64 lastOp = 3;
    required uint64 lastCommitted = 4;
    repeated LogEntry entries = 5;
    required uint32 replicaIdx = 6;    
}

message StartViewMessage {
    message LogEntry {
        required uint64 view = 1;
        required uint64 opnum = 2;
        required replication.Request request = 3;
        optional uint32 state = 4;
        optional bytes hash = 5;
    }
    required uint64 view = 1;
    required uint64 lastOp = 2;
    required uint64 lastCommitted = 3;
    repeated LogEntry entries = 4;
}