0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-25 21:38:18 +02:00

ircd:Ⓜ️:dbs: Rename room_space to room_state_space.

This commit is contained in:
Jason Volk 2019-05-13 10:29:20 -07:00
parent 614b9202fc
commit 758a266b1b
5 changed files with 124 additions and 124 deletions

View file

@ -54,7 +54,7 @@ namespace ircd::m::dbs::appendix
#include "room_events.h" // room_id | depth, event_idx => node_id #include "room_events.h" // room_id | depth, event_idx => node_id
#include "room_joined.h" // room_id | origin, member => event_idx #include "room_joined.h" // room_id | origin, member => event_idx
#include "room_state.h" // room_id | type, state_key => event_idx #include "room_state.h" // room_id | type, state_key => event_idx
#include "room_space.h" // room_id | type, state_key, depth, event_idx #include "room_state_space.h" // room_id | type, state_key, depth, event_idx
#include "state_node.h" // node_id => (m::state::node JSON) #include "state_node.h" // node_id => (m::state::node JSON)
/// Options that affect the dbs::write() of an event to the transaction. /// Options that affect the dbs::write() of an event to the transaction.
@ -208,7 +208,7 @@ enum ircd::m::dbs::appendix::index
ROOM_STATE, ROOM_STATE,
/// Involves room_space (all states) table. /// Involves room_space (all states) table.
ROOM_SPACE, ROOM_STATE_SPACE,
}; };
struct ircd::m::dbs::init struct ircd::m::dbs::init
@ -220,7 +220,7 @@ struct ircd::m::dbs::init
// Internal interface; not for public. (TODO: renamespace) // Internal interface; not for public. (TODO: renamespace)
namespace ircd::m::dbs namespace ircd::m::dbs
{ {
void _index__room_space(db::txn &, const event &, const write_opts &); void _index__room_state_space(db::txn &, const event &, const write_opts &);
void _index__room_state(db::txn &, const event &, const write_opts &); void _index__room_state(db::txn &, const event &, const write_opts &);
void _index__room_events(db::txn &, const event &, const write_opts &, const string_view &); void _index__room_events(db::txn &, const event &, const write_opts &, const string_view &);
void _index__room_joined(db::txn &, const event &, const write_opts &); void _index__room_joined(db::txn &, const event &, const write_opts &);

View file

@ -1,46 +0,0 @@
// Matrix Construct
//
// Copyright (C) Matrix Construct Developers, Authors & Contributors
// Copyright (C) 2016-2019 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#pragma once
#define HAVE_IRCD_M_DBS_ROOM_SPACE_H
namespace ircd::m::dbs
{
using room_space_key_parts = std::tuple<string_view, string_view, int64_t, event::idx>;
constexpr size_t ROOM_SPACE_KEY_MAX_SIZE
{
id::MAX_SIZE +
event::TYPE_MAX_SIZE +
event::STATE_KEY_MAX_SIZE +
sizeof(int64_t) +
sizeof(event::idx)
};
string_view room_space_key(const mutable_buffer &out, const id::room &, const string_view &type, const string_view &state_key, const int64_t &depth, const event::idx & = 0);
string_view room_space_key(const mutable_buffer &out, const id::room &, const string_view &type, const string_view &state_key);
string_view room_space_key(const mutable_buffer &out, const id::room &, const string_view &type);
room_space_key_parts room_space_key(const string_view &amalgam);
// room_id | type, state_key, depth, event_idx => --
extern db::index room_space;
}
namespace ircd::m::dbs::desc
{
extern conf::item<size_t> events__room_space__block__size;
extern conf::item<size_t> events__room_space__meta_block__size;
extern conf::item<size_t> events__room_space__cache__size;
extern conf::item<size_t> events__room_space__cache_comp__size;
extern conf::item<size_t> events__room_space__bloom__bits;
extern const db::prefix_transform events__room_space__pfx;
extern const db::comparator events__room_space__cmp;
extern const db::descriptor events__room_space;
}

View file

@ -0,0 +1,46 @@
// Matrix Construct
//
// Copyright (C) Matrix Construct Developers, Authors & Contributors
// Copyright (C) 2016-2019 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#pragma once
#define HAVE_IRCD_M_DBS_ROOM_STATE_SPACE_H
namespace ircd::m::dbs
{
using room_state_space_key_parts = std::tuple<string_view, string_view, int64_t, event::idx>;
constexpr size_t ROOM_STATE_SPACE_KEY_MAX_SIZE
{
id::MAX_SIZE +
event::TYPE_MAX_SIZE +
event::STATE_KEY_MAX_SIZE +
sizeof(int64_t) +
sizeof(event::idx)
};
string_view room_state_space_key(const mutable_buffer &out, const id::room &, const string_view &type, const string_view &state_key, const int64_t &depth, const event::idx & = 0);
string_view room_state_space_key(const mutable_buffer &out, const id::room &, const string_view &type, const string_view &state_key);
string_view room_state_space_key(const mutable_buffer &out, const id::room &, const string_view &type);
room_state_space_key_parts room_state_space_key(const string_view &amalgam);
// room_id | type, state_key, depth, event_idx => --
extern db::index room_state_space;
}
namespace ircd::m::dbs::desc
{
extern conf::item<size_t> events__room_state_space__block__size;
extern conf::item<size_t> events__room_state_space__meta_block__size;
extern conf::item<size_t> events__room_state_space__cache__size;
extern conf::item<size_t> events__room_state_space__cache_comp__size;
extern conf::item<size_t> events__room_state_space__bloom__bits;
extern const db::prefix_transform events__room_state_space__pfx;
extern const db::comparator events__room_state_space__cmp;
extern const db::descriptor events__room_state_space;
}

View file

@ -71,9 +71,9 @@ decltype(ircd::m::dbs::room_state)
ircd::m::dbs::room_state ircd::m::dbs::room_state
{}; {};
/// Linkage for a reference to the room_space column /// Linkage for a reference to the room_state_space column
decltype(ircd::m::dbs::room_space) decltype(ircd::m::dbs::room_state_space)
ircd::m::dbs::room_space ircd::m::dbs::room_state_space
{}; {};
/// Linkage for a reference to the state_node column. /// Linkage for a reference to the state_node column.
@ -167,7 +167,7 @@ ircd::m::dbs::init::init(std::string dbopts)
room_events = db::index{*events, desc::events__room_events.name}; room_events = db::index{*events, desc::events__room_events.name};
room_joined = db::index{*events, desc::events__room_joined.name}; room_joined = db::index{*events, desc::events__room_joined.name};
room_state = db::index{*events, desc::events__room_state.name}; room_state = db::index{*events, desc::events__room_state.name};
room_space = db::index{*events, desc::events__room_space.name}; room_state_space = db::index{*events, desc::events__room_state_space.name};
state_node = db::column{*events, desc::events__state_node.name}; state_node = db::column{*events, desc::events__state_node.name};
} }
@ -1053,8 +1053,8 @@ try
if(opts.appendix.test(appendix::ROOM_STATE)) if(opts.appendix.test(appendix::ROOM_STATE))
_index__room_state(txn, event, opts); _index__room_state(txn, event, opts);
if(opts.appendix.test(appendix::ROOM_SPACE)) if(opts.appendix.test(appendix::ROOM_STATE_SPACE))
_index__room_space(txn, event, opts); _index__room_state_space(txn, event, opts);
return new_root; return new_root;
} }
@ -1332,22 +1332,22 @@ ircd::m::dbs::_index__room_state(db::txn &txn,
} }
void void
ircd::m::dbs::_index__room_space(db::txn &txn, ircd::m::dbs::_index__room_state_space(db::txn &txn,
const event &event, const event &event,
const write_opts &opts) const write_opts &opts)
{ {
assert(opts.appendix.test(appendix::ROOM_SPACE)); assert(opts.appendix.test(appendix::ROOM_STATE_SPACE));
const ctx::critical_assertion ca; const ctx::critical_assertion ca;
thread_local char buf[ROOM_SPACE_KEY_MAX_SIZE]; thread_local char buf[ROOM_STATE_SPACE_KEY_MAX_SIZE];
const string_view &key const string_view &key
{ {
room_space_key(buf, at<"room_id"_>(event), at<"type"_>(event), at<"state_key"_>(event), at<"depth"_>(event), opts.event_idx) room_state_space_key(buf, at<"room_id"_>(event), at<"type"_>(event), at<"state_key"_>(event), at<"depth"_>(event), opts.event_idx)
}; };
db::txn::append db::txn::append
{ {
txn, room_space, txn, room_state_space,
{ {
opts.op, key, string_view{} opts.op, key, string_view{}
} }
@ -3143,77 +3143,77 @@ ircd::m::dbs::desc::events__room_state
// room all states sequential // room all states sequential
// //
decltype(ircd::m::dbs::desc::events__room_space__block__size) decltype(ircd::m::dbs::desc::events__room_state_space__block__size)
ircd::m::dbs::desc::events__room_space__block__size ircd::m::dbs::desc::events__room_state_space__block__size
{ {
{ "name", "ircd.m.dbs.events._room_space.block.size" }, { "name", "ircd.m.dbs.events._room_state_space.block.size" },
{ "default", 512L }, { "default", 512L },
}; };
decltype(ircd::m::dbs::desc::events__room_space__meta_block__size) decltype(ircd::m::dbs::desc::events__room_state_space__meta_block__size)
ircd::m::dbs::desc::events__room_space__meta_block__size ircd::m::dbs::desc::events__room_state_space__meta_block__size
{ {
{ "name", "ircd.m.dbs.events._room_space.meta_block.size" }, { "name", "ircd.m.dbs.events._room_state_space.meta_block.size" },
{ "default", 8192L }, { "default", 8192L },
}; };
decltype(ircd::m::dbs::desc::events__room_space__cache__size) decltype(ircd::m::dbs::desc::events__room_state_space__cache__size)
ircd::m::dbs::desc::events__room_space__cache__size ircd::m::dbs::desc::events__room_state_space__cache__size
{ {
{ {
{ "name", "ircd.m.dbs.events._room_space.cache.size" }, { "name", "ircd.m.dbs.events._room_state_space.cache.size" },
{ "default", long(16_MiB) }, { "default", long(16_MiB) },
}, [] }, []
{ {
const size_t &value{events__room_space__cache__size}; const size_t &value{events__room_state_space__cache__size};
db::capacity(db::cache(room_space), value); db::capacity(db::cache(room_state_space), value);
} }
}; };
decltype(ircd::m::dbs::desc::events__room_space__cache_comp__size) decltype(ircd::m::dbs::desc::events__room_state_space__cache_comp__size)
ircd::m::dbs::desc::events__room_space__cache_comp__size ircd::m::dbs::desc::events__room_state_space__cache_comp__size
{ {
{ {
{ "name", "ircd.m.dbs.events._room_space.cache_comp.size" }, { "name", "ircd.m.dbs.events._room_state_space.cache_comp.size" },
{ "default", long(8_MiB) }, { "default", long(8_MiB) },
}, [] }, []
{ {
const size_t &value{events__room_space__cache_comp__size}; const size_t &value{events__room_state_space__cache_comp__size};
db::capacity(db::cache_compressed(room_space), value); db::capacity(db::cache_compressed(room_state_space), value);
} }
}; };
decltype(ircd::m::dbs::desc::events__room_space__bloom__bits) decltype(ircd::m::dbs::desc::events__room_state_space__bloom__bits)
ircd::m::dbs::desc::events__room_space__bloom__bits ircd::m::dbs::desc::events__room_state_space__bloom__bits
{ {
{ "name", "ircd.m.dbs.events._room_space.bloom.bits" }, { "name", "ircd.m.dbs.events._room_state_space.bloom.bits" },
{ "default", 10L }, { "default", 10L },
}; };
ircd::string_view ircd::string_view
ircd::m::dbs::room_space_key(const mutable_buffer &out_, ircd::m::dbs::room_state_space_key(const mutable_buffer &out_,
const id::room &room_id, const id::room &room_id,
const string_view &type) const string_view &type)
{ {
return room_space_key(out_, room_id, type, string_view{}, 0L); return room_state_space_key(out_, room_id, type, string_view{});
} }
ircd::string_view ircd::string_view
ircd::m::dbs::room_space_key(const mutable_buffer &out_, ircd::m::dbs::room_state_space_key(const mutable_buffer &out_,
const id::room &room_id, const id::room &room_id,
const string_view &type, const string_view &type,
const string_view &state_key) const string_view &state_key)
{ {
return room_space_key(out_, room_id, type, string_view{}, 0L); return room_state_space_key(out_, room_id, type, state_key, -1L);
} }
ircd::string_view ircd::string_view
ircd::m::dbs::room_space_key(const mutable_buffer &out_, ircd::m::dbs::room_state_space_key(const mutable_buffer &out_,
const id::room &room_id, const id::room &room_id,
const string_view &type, const string_view &type,
const string_view &state_key, const string_view &state_key,
const int64_t &depth, const int64_t &depth,
const event::idx &event_idx) const event::idx &event_idx)
{ {
mutable_buffer out{out_}; mutable_buffer out{out_};
consume(out, copy(out, room_id)); consume(out, copy(out, room_id));
@ -3249,8 +3249,8 @@ ircd::m::dbs::room_space_key(const mutable_buffer &out_,
return { data(out_), data(out) }; return { data(out_), data(out) };
} }
ircd::m::dbs::room_space_key_parts ircd::m::dbs::room_state_space_key_parts
ircd::m::dbs::room_space_key(const string_view &amalgam) ircd::m::dbs::room_state_space_key(const string_view &amalgam)
{ {
const auto &key const auto &key
{ {
@ -3298,9 +3298,9 @@ ircd::m::dbs::room_space_key(const string_view &amalgam)
} }
const ircd::db::prefix_transform const ircd::db::prefix_transform
ircd::m::dbs::desc::events__room_space__pfx ircd::m::dbs::desc::events__room_state_space__pfx
{ {
"_room_space", "_room_state_space",
[](const string_view &key) [](const string_view &key)
{ {
return has(key, "\0"_sv); return has(key, "\0"_sv);
@ -3313,16 +3313,16 @@ ircd::m::dbs::desc::events__room_space__pfx
}; };
const ircd::db::comparator const ircd::db::comparator
ircd::m::dbs::desc::events__room_space__cmp ircd::m::dbs::desc::events__room_state_space__cmp
{ {
"_room_space", "_room_state_space",
// less // less
[](const string_view &a, const string_view &b) [](const string_view &a, const string_view &b)
{ {
static const auto &pt static const auto &pt
{ {
events__room_space__pfx events__room_state_space__pfx
}; };
const string_view pre[2] const string_view pre[2]
@ -3352,8 +3352,8 @@ ircd::m::dbs::desc::events__room_space__cmp
return false; return false;
// Perform standard comparison over the typed tuple. // Perform standard comparison over the typed tuple.
const auto _a(room_space_key(post[0])); const auto _a(room_state_space_key(post[0]));
const auto _b(room_space_key(post[1])); const auto _b(room_state_space_key(post[1]));
return _a < _b; return _a < _b;
}, },
@ -3365,10 +3365,10 @@ ircd::m::dbs::desc::events__room_space__cmp
}; };
const ircd::db::descriptor const ircd::db::descriptor
ircd::m::dbs::desc::events__room_space ircd::m::dbs::desc::events__room_state_space
{ {
// name // name
"_room_space", "_room_state_space",
// explanation // explanation
R"(All states of the room. R"(All states of the room.
@ -3387,7 +3387,7 @@ ircd::m::dbs::desc::events__room_space
{}, {},
// prefix transform // prefix transform
events__room_space__pfx, events__room_state_space__pfx,
// drop column // drop column
false, false,
@ -3399,16 +3399,16 @@ ircd::m::dbs::desc::events__room_space
bool(events_cache_comp_enable)? -1 : 0, bool(events_cache_comp_enable)? -1 : 0,
// bloom filter bits // bloom filter bits
size_t(events__room_space__bloom__bits), size_t(events__room_state_space__bloom__bits),
// expect queries hit // expect queries hit
false, false,
// block size // block size
size_t(events__room_space__block__size), size_t(events__room_state_space__block__size),
// meta_block size // meta_block size
size_t(events__room_space__meta_block__size), size_t(events__room_state_space__meta_block__size),
}; };
// //
@ -4867,7 +4867,7 @@ ircd::m::dbs::desc::events
// (room_id, (type, state_key, depth, event_idx)) // (room_id, (type, state_key, depth, event_idx))
// Sequence of all states of the room. // Sequence of all states of the room.
events__room_space, events__room_state_space,
// (state tree node id) => (state tree node) // (state tree node id) => (state tree node)
// Mapping of state tree node id to node data. // Mapping of state tree node id to node data.

View file

@ -2897,14 +2897,14 @@ const
{ {
auto it auto it
{ {
dbs::room_space.begin(room.room_id) dbs::room_state_space.begin(room.room_id)
}; };
for(; it; ++it) for(; it; ++it)
{ {
const auto &key const auto &key
{ {
dbs::room_space_key(it->first) dbs::room_state_space_key(it->first)
}; };
if(!closure(std::get<0>(key), std::get<1>(key), std::get<2>(key), std::get<3>(key))) if(!closure(std::get<0>(key), std::get<1>(key), std::get<2>(key), std::get<3>(key)))
@ -2938,22 +2938,22 @@ ircd::m::room::state::space::for_each(const string_view &type,
const closure &closure) const closure &closure)
const const
{ {
char buf[dbs::ROOM_SPACE_KEY_MAX_SIZE]; char buf[dbs::ROOM_STATE_SPACE_KEY_MAX_SIZE];
const string_view &key const string_view &key
{ {
dbs::room_space_key(buf, room.room_id, type, state_key, depth) dbs::room_state_space_key(buf, room.room_id, type, state_key, depth)
}; };
auto it auto it
{ {
dbs::room_space.begin(key) dbs::room_state_space.begin(key)
}; };
for(; it; ++it) for(; it; ++it)
{ {
const auto &key const auto &key
{ {
dbs::room_space_key(it->first) dbs::room_state_space_key(it->first)
}; };
if(type && std::get<0>(key) != type) if(type && std::get<0>(key) != type)
@ -2993,7 +2993,7 @@ ircd::m::room::state::space::rebuild::rebuild()
wopts.appendix.reset(); wopts.appendix.reset();
wopts.appendix.set(dbs::appendix::ROOM); wopts.appendix.set(dbs::appendix::ROOM);
wopts.appendix.set(dbs::appendix::STATE); wopts.appendix.set(dbs::appendix::STATE);
wopts.appendix.set(dbs::appendix::ROOM_SPACE); wopts.appendix.set(dbs::appendix::ROOM_STATE_SPACE);
event::fetch event; event::fetch event;
for(auto it(column.begin()); it; ++it) try for(auto it(column.begin()); it; ++it) try