view_builder: Add system_keyspace dependency
The view builder updates system.scylla_views_builds_in_progress and .built_views tables and thus needs the system keyspace instance. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -1742,8 +1742,9 @@ future<> mutate_MV(
|
||||
});
|
||||
}
|
||||
|
||||
view_builder::view_builder(replica::database& db, db::system_distributed_keyspace& sys_dist_ks, service::migration_notifier& mn)
|
||||
view_builder::view_builder(replica::database& db, db::system_keyspace& sys_ks, db::system_distributed_keyspace& sys_dist_ks, service::migration_notifier& mn)
|
||||
: _db(db)
|
||||
, _sys_ks(sys_ks)
|
||||
, _sys_dist_ks(sys_dist_ks)
|
||||
, _mnotifier(mn)
|
||||
, _permit(_db.get_reader_concurrency_semaphore().make_tracking_only_permit(nullptr, "view_builder", db::no_timeout)) {
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
namespace db {
|
||||
|
||||
class system_keyspace;
|
||||
class system_distributed_keyspace;
|
||||
|
||||
}
|
||||
@@ -147,6 +148,7 @@ class view_builder final : public service::migration_listener::only_view_notific
|
||||
using base_to_build_step_type = std::unordered_map<table_id, build_step>;
|
||||
|
||||
replica::database& _db;
|
||||
db::system_keyspace& _sys_ks;
|
||||
db::system_distributed_keyspace& _sys_dist_ks;
|
||||
service::migration_notifier& _mnotifier;
|
||||
reader_permit _permit;
|
||||
@@ -185,7 +187,7 @@ public:
|
||||
static constexpr size_t batch_memory_max = 1024*1024;
|
||||
|
||||
public:
|
||||
view_builder(replica::database&, db::system_distributed_keyspace&, service::migration_notifier&);
|
||||
view_builder(replica::database&, db::system_keyspace&, db::system_distributed_keyspace&, service::migration_notifier&);
|
||||
view_builder(view_builder&&) = delete;
|
||||
|
||||
/**
|
||||
|
||||
2
main.cc
2
main.cc
@@ -1589,7 +1589,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
|
||||
static sharded<db::view::view_builder> view_builder;
|
||||
if (cfg->view_building()) {
|
||||
supervisor::notify("starting the view builder");
|
||||
view_builder.start(std::ref(db), std::ref(sys_dist_ks), std::ref(mm_notifier)).get();
|
||||
view_builder.start(std::ref(db), std::ref(sys_ks), std::ref(sys_dist_ks), std::ref(mm_notifier)).get();
|
||||
view_builder.invoke_on_all([&mm] (db::view::view_builder& vb) {
|
||||
return vb.start(mm.local());
|
||||
}).get();
|
||||
|
||||
@@ -894,7 +894,7 @@ public:
|
||||
});
|
||||
|
||||
sharded<db::view::view_builder> view_builder;
|
||||
view_builder.start(std::ref(db), std::ref(sys_dist_ks), std::ref(mm_notif)).get();
|
||||
view_builder.start(std::ref(db), std::ref(sys_ks), std::ref(sys_dist_ks), std::ref(mm_notif)).get();
|
||||
view_builder.invoke_on_all([&mm] (db::view::view_builder& vb) {
|
||||
return vb.start(mm.local());
|
||||
}).get();
|
||||
|
||||
Reference in New Issue
Block a user