mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-24 18:40:38 +00:00
Origin does that, so should we. Both ttl and expiry time are stored in sstables. The value of ttl seems to be used to calculate the read digest (expiry is not used for that). The API for creating atomic_cells changed a bit. To create a non-expiring cell: atomic_cell::make_live(timestamp, value); To create an expiring cell: atomic_cell::make_live(timestamp, value, expiry, ttl); or: // Expiry is calculated based on current clock reading atomic_cell::make_live(timestamp, value, ttl_optional);
27 lines
841 B
C++
27 lines
841 B
C++
#include "database.hh"
|
|
#include "perf.hh"
|
|
|
|
static atomic_cell make_atomic_cell(bytes value) {
|
|
return atomic_cell::make_live(0, value);
|
|
};
|
|
|
|
int main(int argc, char* argv[]) {
|
|
auto s = make_lw_shared(schema({}, "ks", "cf",
|
|
{{"p1", utf8_type}}, {{"c1", int32_type}}, {{"r1", int32_type}}, {}, utf8_type));
|
|
|
|
column_family cf(s);
|
|
|
|
std::cout << "Timing mutation of single column within one row...\n";
|
|
|
|
auto key = partition_key::from_exploded(*s, {to_bytes("key1")});
|
|
auto c_key = clustering_key::from_exploded(*s, {int32_type->decompose(2)});
|
|
bytes value = int32_type->decompose(3);
|
|
|
|
time_it([&] {
|
|
mutation m(key, s);
|
|
const column_definition& col = *s->get_column_definition("r1");
|
|
m.set_clustered_cell(c_key, col, make_atomic_cell(value));
|
|
cf.apply(std::move(m));
|
|
});
|
|
}
|