2 Commits

3 changed files with 6 additions and 4 deletions
Unified 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 // TODO: allocate slot_num in slotpage and put value in vlog
size_t slot_num = slot_page_->alloc_slot(); size_t slot_num = slot_page_->alloc_slot();
// std::string slot_num_str((char *)&slot_num, sizeof(size_t));
struct slot_content sc; struct slot_content sc;
vlog_set_->put_value(&sc.vlog_num, &sc.value_offset, val); vlog_set_->put_value(&sc.vlog_num, &sc.value_offset, val);
slot_page_->set_slot(slot_num, &sc); 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 | ... | // config file: | vlog_nums_(size_t) | vlog_1_name | vlog_2_name | ... |
// vlog: | curr_size(size_t) | value_nums(size_t) | value1 | value2 | ... | // 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_num_size sizeof(size_t)
#define vlog_name_size 256 #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)]; 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) { 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 vlog_name = get_vlog_name(vlog_num);
auto handler = std::fstream(vlog_name, std::ios::in | std::ios::out); 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; uint16_t value_size;
memcpy(&value_size, value_buff, sizeof(uint16_t)); memcpy(&value_size, value_buff, sizeof(uint16_t));
value_size &= VALUE_SIZE_MASK; 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(); handler.close();
} }

Loading…
Cancel
Save