2 Commits

3 changed files with 6 additions and 4 deletions
Split View
  1. +1
    -0
      db/db_impl.cc
  2. +1
    -1
      db/vlog.h
  3. +4
    -3
      db/vlog_set.cpp

+ 1
- 0
db/db_impl.cc View File

@ -1276,6 +1276,7 @@ Status DBImpl::Put(const WriteOptions& opt, const Slice& key, const Slice& val)
// TODO: allocate slot_num in slotpage and put value in vlog
size_t slot_num = slot_page_->alloc_slot();
// std::string slot_num_str((char *)&slot_num, sizeof(size_t));
struct slot_content sc;
vlog_set_->put_value(&sc.vlog_num, &sc.value_offset, val);
slot_page_->set_slot(slot_num, &sc);

+ 1
- 1
db/vlog.h View File

@ -19,7 +19,7 @@
// config file: | vlog_nums_(size_t) | vlog_1_name | vlog_2_name | ... |
// vlog: | curr_size(size_t) | value_nums(size_t) | value1 | value2 | ... |
// value: | value_size(uint16_t) field_nums(uint16_t) | slot_num(size_t) | value |
// value: | value_size(uint16_t) | slot_num(size_t) | field_nums(uint16_t) value |
#define vlog_num_size sizeof(size_t)
#define vlog_name_size 256

+ 4
- 3
db/vlog_set.cpp View File

@ -290,7 +290,7 @@ struct vlog_handler * VlogSet::get_vlog_handler(size_t vlog_num) {
return vlog_handler_map_[get_vlog_name(vlog_num)];
}
// value: | field_nums(uint16_t) | slot_num(size_t) | value |
// value: | value_size(uint16_t) | slot_num(size_t) | field_nums(uint16_t) | value |
void VlogSet::read_vlog_value(uint32_t vlog_num, uint32_t value_offset, std::string *value) {
auto vlog_name = get_vlog_name(vlog_num);
auto handler = std::fstream(vlog_name, std::ios::in | std::ios::out);
@ -302,8 +302,9 @@ void VlogSet::read_vlog_value(uint32_t vlog_num, uint32_t value_offset, std::str
uint16_t value_size;
memcpy(&value_size, value_buff, sizeof(uint16_t));
value_size &= VALUE_SIZE_MASK;
*value = std::string(value_buff);
// value->assign(&value_buff[sizeof(uint16_t)], value_size);
// *value = std::string(value_buff);
assert(value_size <= VALUE_BUFF_SIZE);
value->assign(&value_buff[sizeof(uint16_t)], value_size);
handler.close();
}

Loading…
Cancel
Save