Commit d9fdbbdf authored by Ramon Nou's avatar Ramon Nou
Browse files

Added Size ops, modified update (to store slash 0 as in the put)

parent ae0fd10d
Loading
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -300,7 +300,7 @@ MetadataDB::update(const std::string& old_key, const std::string& new_key,

    n_key_value.k.size = new_key.size();
    n_key_value.k.data = new_key.c_str();
    n_key_value.v.size = val.length();
    n_key_value.v.size = val.length()+1;
    n_key_value.v.data = val.c_str();

    o_key.size = old_key.size();
@@ -336,11 +336,20 @@ MetadataDB::update(const std::string& old_key, const std::string& new_key,
 */
void
MetadataDB::increase_size(const std::string& key, size_t size, bool append) {
#ifdef ROCKSDB
    auto uop = IncreaseSizeOperand(size, append);
    auto s = db->Merge(write_opts, key, uop.serialize());
    if(!s.ok()) {
        MetadataDB::throw_rdb_status_excpt(s);
    }
#endif
#ifdef KREON
    auto value = get(key);
    // Decompress string
    Metadata md(value);
    md.size(size);
    update(key,key,md.serialize());
#endif
}

/**
@@ -352,11 +361,21 @@ MetadataDB::increase_size(const std::string& key, size_t size, bool append) {
 */
void
MetadataDB::decrease_size(const std::string& key, size_t size) {
#ifdef ROCKSDB
    auto uop = DecreaseSizeOperand(size);
    auto s = db->Merge(write_opts, key, uop.serialize());
    if(!s.ok()) {
        MetadataDB::throw_rdb_status_excpt(s);
    }
#endif
#ifdef KREON
    auto value = get(key);
    // Decompress string
    Metadata md(value);
    md.size(size);
    update(key,key,md.serialize());
#endif

}

/**