#define GIB(x) (x * 1024 * 1024 * 1024ull) #define GB(x) (x * 1000 * 1000 * 1000ull) #define KEY_SIZE 10 #define VALUE_SIZE 90 #define INDEX_SIZE 5 #define BLOCK_SIZE 4096 // Need not be equal to physical block size #define READ_BUFFER_SIZE GB(10) // RUNs are equal to READ buffer size #define WRITE_BUFFER_SIZE GB(10) // WB can be < RB where multiple write cycles take place. #define READ_SIZE 1 // in BLOCK_SIZE #define WRITE_SIZE 1 //////////////////////////////////////////////////////////////////// #define RECORD_SIZE (KEY_SIZE + VALUE_SIZE) #define REC_PER_BLOCK (BLOCK_SIZE / RECORD_SIZE) #define READ_BUFFER_COUNT (READ_BUFFER_SIZE / BLOCK_SIZE) #define WRITE_BUFFER_COUNT (WRITE_BUFFER_SIZE / BLOCK_SIZE) #define REC_PER_WRITE_BUFFER ((WRITE_BUFFER_COUNT * BLOCK_SIZE) / RECORD_SIZE) #define REC_PER_READ_BUFFER ((READ_BUFFER_COUNT * BLOCK_SIZE) / RECORD_SIZE)