mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
BrokerStore<->Zeek tables: allow setting storage location & tests
With this, the basic functionality of &backend seems to be working. It is not yet integrated with zeekctl, one has to manually specify the storage location for the sqlite files somewhere when using sqlite. Usage for memory stores: global table_to_share: table[string] of count &backend=Broker::MEMORY; Usage for sqlite stores: redef Broker::auto_store_db_directory = "[path]"; global table_to_share: table[string] of count &backend=Broker::SQLITE; In both cases, the cluster should automatically sync to changes done by any node. When using sqlite, data should also be saved to disk and re-loaded on startup.
This commit is contained in:
parent
a220b02722
commit
f6251e62a0
7 changed files with 349 additions and 6 deletions
|
@ -235,16 +235,29 @@ void Manager::InitializeBrokerStoreForwarding()
|
|||
id->GetVal()->AsTableVal()->SetBrokerStore(storename);
|
||||
AddForwardedStore(storename, {NewRef{}, id->GetVal()->AsTableVal()});
|
||||
|
||||
|
||||
// we only create masters here. For clones, we do all the work of setting up
|
||||
// the forwarding - but we do not try to initialize the clone. We can only initialize
|
||||
// the clone, once a node has a connection to a master. This is currently done in scriptland
|
||||
// - check FIXME.
|
||||
if ( zeek_table_manager )
|
||||
{
|
||||
auto backend = bro_broker::to_backend_type(e);
|
||||
MakeMaster(storename, backend, broker::backend_options{});
|
||||
}
|
||||
if ( ! zeek_table_manager )
|
||||
continue;
|
||||
|
||||
auto backend = bro_broker::to_backend_type(e);
|
||||
auto suffix = ".store";
|
||||
|
||||
switch ( backend ) {
|
||||
case broker::backend::sqlite:
|
||||
suffix = ".sqlite";
|
||||
break;
|
||||
case broker::backend::rocksdb:
|
||||
suffix = ".rocksdb";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
auto path = zeek_table_db_directory + "/" + storename + suffix;
|
||||
|
||||
MakeMaster(storename, backend, broker::backend_options{{"path", path}});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue