| syntax = "proto2"; |
| |
| package dittosuiteproto; |
| |
| enum AccessType { |
| SEQUENTIAL = 0; |
| RANDOM = 1; |
| } |
| |
| enum Reseeding { |
| ONCE = 0; |
| EACH_ROUND_OF_CYCLES = 1; |
| EACH_CYCLE = 2; |
| } |
| |
| message InstructionOpenFile { |
| oneof file { |
| string path_name = 1; |
| string input = 2; |
| } |
| optional string output_fd = 3; |
| optional bool create = 4 [default = true]; |
| } |
| |
| message InstructionDeleteFile { |
| oneof file { |
| string path_name = 1; |
| string input = 2; |
| } |
| } |
| |
| message InstructionCloseFile { |
| required string input_fd = 1; |
| } |
| |
| message InstructionResizeFile { |
| required string input_fd = 1; |
| required int64 size = 2; |
| } |
| |
| message InstructionResizeFileRandom { |
| required string input_fd = 1; |
| required int64 min = 2; |
| required int64 max = 3; |
| optional uint32 seed = 4; |
| optional Reseeding reseeding = 5 [default = ONCE]; |
| } |
| |
| message InstructionWriteFile { |
| required string input_fd = 1; |
| optional int64 size = 2 [default = -1]; |
| optional int64 block_size = 3 [default = 4096]; |
| optional int64 starting_offset = 4 [default = 0]; |
| optional AccessType type = 5 [default = SEQUENTIAL]; |
| optional uint32 seed = 6; |
| optional bool fsync = 7 [default = false]; |
| optional Reseeding reseeding = 8 [default = ONCE]; |
| } |
| |
| message InstructionReadFile { |
| enum ReadFAdvise { |
| AUTOMATIC = 0; |
| NORMAL = 1; |
| SEQUENTIAL = 2; |
| RANDOM = 3; |
| } |
| required string input_fd = 1; |
| optional int64 size = 2 [default = -1]; |
| optional int64 block_size = 3 [default = 4096]; |
| optional int64 starting_offset = 4 [default = 0]; |
| optional AccessType type = 5 [default = SEQUENTIAL]; |
| optional uint32 seed = 6; |
| optional ReadFAdvise fadvise = 7 [default = AUTOMATIC]; |
| optional Reseeding reseeding = 8 [default = ONCE]; |
| } |
| |
| message InstructionReadDirectory { |
| required string directory_name = 1; |
| required string output = 2; |
| } |
| |
| message Instruction { |
| optional int32 repeat = 1 [default = 1]; |
| oneof instruction_oneof { |
| InstructionSet instruction_set = 2; |
| InstructionOpenFile instruction_open_file = 3; |
| InstructionDeleteFile instruction_delete_file = 4; |
| InstructionCloseFile instruction_close_file = 5; |
| InstructionResizeFile instruction_resize_file = 6; |
| InstructionWriteFile instruction_write_file = 7; |
| InstructionReadFile instruction_read_file = 8; |
| InstructionReadDirectory instruction_read_directory = 9; |
| InstructionResizeFileRandom instruction_resize_file_random = 10; |
| } |
| } |
| |
| message InstructionSet { |
| repeated Instruction instructions = 1; |
| optional InstructionSetIterate iterate_options = 2; |
| } |
| |
| message InstructionSetIterate { |
| required string list_name = 1; |
| required string item_name = 2; |
| optional AccessType type = 3 [default = SEQUENTIAL]; |
| optional Reseeding reseeding = 4 [default = ONCE]; |
| optional uint32 seed = 5; |
| } |
| |
| message Global { |
| optional string absolute_path = 1 [default = ""]; |
| } |
| |
| message Benchmark { |
| required Instruction main = 1; |
| required Global global = 2; |
| } |