aboutsummaryrefslogtreecommitdiffstats
path: root/ydb/library/yql/dq/proto/dq_checkpoint.proto
blob: 5f32c92c5c046df0795bff4469c1f5cc0d995a48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
syntax = "proto3";
option cc_enable_arenas = true;

package NYql.NDqProto;

message TStateData {
    oneof State {
        TExtStateId StateId = 1; // Unique (for TComputeActorCheckpoint) state id for big blobs. // TODO: implement
        TData StateData = 2; // In-place blob data for small blobs
    }

    message TExtStateId {
        uint32 StateId = 1;
    }

    message TData {
        bytes Blob = 1;
        uint64 Version = 2;
        // TODO: codec
        // TODO: structured data (map, array)
        // TODO: minikql node explicit id (HOP)
    }
}

message TSourceState {
    // State data for source.
    // Typically there is only one element with state that
    // source saved. But when we are migrating states
    // between tasks there can be state
    // from several different tasks sources.
    repeated TStateData Data = 1;
    uint64 InputIndex = 2;
}

message TSinkState {
    TStateData Data = 1;
    uint64 OutputIndex = 2;
}

message TMiniKqlProgramState {
    TStateData Data = 1;
    uint64 RuntimeVersion = 2;
}

// Checkpoint for single compute actor.
message TComputeActorState {
    TMiniKqlProgramState MiniKqlProgram = 1;
    repeated TSourceState Sources = 2;
    repeated TSinkState Sinks = 3;
}