四、关键代码

1. 随机写入

  1. 实现逻辑

通过锁一个bucket使得key-value在bucket中一一对应, 并且使得bucket的 -count被正确地更改; 写入之前先写bucket对应buffer, buffer满了之后进行阻塞的pwrite系统调用。

大体逻辑如下代码所示:

{    unique_lock<mutex> lock(bucket_mtx_[bucket_id]);    // Write value to the value file, with a tmp file as value_buffer.    uint32_t val_buffer_offset = (mmap_ _cnt_[bucket_id] % TMP_VALUE_BUFFER_SIZE) * VALUE_SIZE
收藏 打印