syntax = "proto3"; package volume_server_pb; ////////////////////////////////////////////////// service VolumeServer { //Experts only: takes multiple fid parameters. This function does not propagate deletes to replicas. rpc BatchDelete (BatchDeleteRequest) returns (BatchDeleteResponse) { } rpc VacuumVolumeCheck (VacuumVolumeCheckRequest) returns (VacuumVolumeCheckResponse) { } rpc VacuumVolumeCompact (VacuumVolumeCompactRequest) returns (VacuumVolumeCompactResponse) { } rpc VacuumVolumeCommit (VacuumVolumeCommitRequest) returns (VacuumVolumeCommitResponse) { } rpc VacuumVolumeCleanup (VacuumVolumeCleanupRequest) returns (VacuumVolumeCleanupResponse) { } rpc DeleteCollection (DeleteCollectionRequest) returns (DeleteCollectionResponse) { } rpc AllocateVolume (AllocateVolumeRequest) returns (AllocateVolumeResponse) { } rpc VolumeSyncStatus (VolumeSyncStatusRequest) returns (VolumeSyncStatusResponse) { } rpc VolumeIncrementalCopy (VolumeIncrementalCopyRequest) returns (stream VolumeIncrementalCopyResponse) { } rpc VolumeMount (VolumeMountRequest) returns (VolumeMountResponse) { } rpc VolumeUnmount (VolumeUnmountRequest) returns (VolumeUnmountResponse) { } rpc VolumeDelete (VolumeDeleteRequest) returns (VolumeDeleteResponse) { } // copy the .idx .dat files, and mount this volume rpc VolumeCopy (VolumeCopyRequest) returns (VolumeCopyResponse) { } rpc ReadVolumeFileStatus (ReadVolumeFileStatusRequest) returns (ReadVolumeFileStatusResponse) { } rpc CopyFile (CopyFileRequest) returns (stream CopyFileResponse) { } rpc VolumeTail (VolumeTailRequest) returns (stream VolumeTailResponse) { } } ////////////////////////////////////////////////// message BatchDeleteRequest { repeated string file_ids = 1; } message BatchDeleteResponse { repeated DeleteResult results = 1; } message DeleteResult { string file_id = 1; int32 status = 2; string error = 3; uint32 size = 4; } message Empty { } message VacuumVolumeCheckRequest { uint32 volume_id = 1; } message VacuumVolumeCheckResponse { double garbage_ratio = 1; } message VacuumVolumeCompactRequest { uint32 volume_id = 1; int64 preallocate = 2; } message VacuumVolumeCompactResponse { } message VacuumVolumeCommitRequest { uint32 volume_id = 1; } message VacuumVolumeCommitResponse { } message VacuumVolumeCleanupRequest { uint32 volume_id = 1; } message VacuumVolumeCleanupResponse { } message DeleteCollectionRequest { string collection = 1; } message DeleteCollectionResponse { } message AllocateVolumeRequest { uint32 volume_id = 1; string collection = 2; int64 preallocate = 3; string replication = 4; string ttl = 5; } message AllocateVolumeResponse { } message VolumeSyncStatusRequest { uint32 volume_id = 1; } message VolumeSyncStatusResponse { uint32 volume_id = 1; string collection = 2; string replication = 4; string ttl = 5; uint64 tail_offset = 6; uint32 compact_revision = 7; uint64 idx_file_size = 8; } message VolumeIncrementalCopyRequest { uint32 volume_id = 1; uint64 since_ns = 2; } message VolumeIncrementalCopyResponse { bytes file_content = 1; } message VolumeMountRequest { uint32 volume_id = 1; } message VolumeMountResponse { } message VolumeUnmountRequest { uint32 volume_id = 1; } message VolumeUnmountResponse { } message VolumeDeleteRequest { uint32 volume_id = 1; } message VolumeDeleteResponse { } message VolumeCopyRequest { uint32 volume_id = 1; string collection = 2; string replication = 3; string ttl = 4; string source_data_node = 5; } message VolumeCopyResponse { } message CopyFileRequest { uint32 volume_id = 1; bool is_idx_file = 2; bool is_dat_file = 3; } message CopyFileResponse { bytes file_content = 1; } message VolumeTailRequest { uint32 volume_id = 1; uint64 since_ns = 2; uint32 drainingSeconds = 3; } message VolumeTailResponse { bytes needle_header = 1; bytes needle_body = 2; } message ReadVolumeFileStatusRequest { uint32 volume_id = 1; } message ReadVolumeFileStatusResponse { uint32 volume_id = 1; uint64 idx_file_timestamp = 2; uint64 idx_file_size = 3; uint64 dat_file_timestamp = 4; uint64 dat_file_size = 5; uint64 file_count = 6; } message DiskStatus { string dir = 1; uint64 all = 2; uint64 used = 3; uint64 free = 4; } message MemStatus { int32 goroutines = 1; uint64 all = 2; uint64 used = 3; uint64 free = 4; uint64 self = 5; uint64 heap = 6; uint64 stack = 7; }