aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-06-10 11:23:40 +0200
committerAlex Auvolat <alex@adnab.me>2022-06-10 11:23:40 +0200
commitc054de43dd3ccbf6a884f73a474b423bbab41d08 (patch)
treec94a44e74c0a12e99eeb4078bc5c386bbd51dfe4
parentbc29d77ed3865fcadfc8d99d029851f6d0f2dee1 (diff)
downloadgarage-c054de43dd3ccbf6a884f73a474b423bbab41d08.tar.gz
garage-c054de43dd3ccbf6a884f73a474b423bbab41d08.zip
Revert "Change object counter table to use full replication"
This reverts commit bc29d77ed3865fcadfc8d99d029851f6d0f2dee1.
-rw-r--r--src/model/garage.rs10
-rw-r--r--src/model/index_counter.rs8
-rw-r--r--src/model/k2v/item_table.rs3
-rw-r--r--src/model/s3/object_table.rs4
4 files changed, 12 insertions, 13 deletions
diff --git a/src/model/garage.rs b/src/model/garage.rs
index a776789b..15769a17 100644
--- a/src/model/garage.rs
+++ b/src/model/garage.rs
@@ -52,8 +52,8 @@ pub struct Garage {
/// Table containing S3 objects
pub object_table: Arc<Table<ObjectTable, TableShardedReplication>>,
- /// Counting table containing object counters for each bucket
- pub object_counter_table: Arc<IndexCounter<Object, TableFullReplication>>,
+ /// Counting table containing object counters
+ pub object_counter_table: Arc<IndexCounter<Object>>,
/// Table containing S3 object versions
pub version_table: Arc<Table<VersionTable, TableShardedReplication>>,
/// Table containing S3 block references (not blocks themselves)
@@ -68,7 +68,7 @@ pub struct GarageK2V {
/// Table containing K2V items
pub item_table: Arc<Table<K2VItemTable, TableShardedReplication>>,
/// Indexing table containing K2V item counters
- pub counter_table: Arc<IndexCounter<K2VItem, TableShardedReplication>>,
+ pub counter_table: Arc<IndexCounter<K2VItem>>,
/// K2V RPC handler
pub rpc: Arc<K2VRpcHandler>,
}
@@ -176,7 +176,7 @@ impl Garage {
&db,
);
info!("Initialize key_table_table...");
- let key_table = Table::new(KeyTable, control_rep_param.clone(), system.clone(), &db);
+ let key_table = Table::new(KeyTable, control_rep_param, system.clone(), &db);
// ---- S3 tables ----
info!("Initialize block_ref_table...");
@@ -201,7 +201,7 @@ impl Garage {
);
info!("Initialize object counter table...");
- let object_counter_table = IndexCounter::new(system.clone(), control_rep_param, &db);
+ let object_counter_table = IndexCounter::new(system.clone(), meta_rep_param.clone(), &db);
info!("Initialize object_table...");
#[allow(clippy::redundant_clone)]
diff --git a/src/model/index_counter.rs b/src/model/index_counter.rs
index a8837e0f..36e8172b 100644
--- a/src/model/index_counter.rs
+++ b/src/model/index_counter.rs
@@ -138,17 +138,17 @@ impl<T: CountedItem> TableSchema for CounterTable<T> {
// ----
-pub struct IndexCounter<T: CountedItem, R: TableReplication + 'static> {
+pub struct IndexCounter<T: CountedItem> {
this_node: Uuid,
local_counter: db::Tree,
propagate_tx: mpsc::UnboundedSender<(T::CP, T::CS, LocalCounterEntry<T>)>,
- pub table: Arc<Table<CounterTable<T>, R>>,
+ pub table: Arc<Table<CounterTable<T>, TableShardedReplication>>,
}
-impl<T: CountedItem, R: TableReplication + 'static> IndexCounter<T, R> {
+impl<T: CountedItem> IndexCounter<T> {
pub fn new(
system: Arc<System>,
- replication: R,
+ replication: TableShardedReplication,
db: &db::Db,
) -> Arc<Self> {
let background = system.background.clone();
diff --git a/src/model/k2v/item_table.rs b/src/model/k2v/item_table.rs
index 0d91f5e9..baa1db4b 100644
--- a/src/model/k2v/item_table.rs
+++ b/src/model/k2v/item_table.rs
@@ -6,7 +6,6 @@ use garage_db as db;
use garage_util::data::*;
use garage_table::crdt::*;
-use garage_table::replication::*;
use garage_table::*;
use crate::index_counter::*;
@@ -188,7 +187,7 @@ impl Entry<K2VItemPartition, String> for K2VItem {
}
pub struct K2VItemTable {
- pub(crate) counter_table: Arc<IndexCounter<K2VItem, TableShardedReplication>>,
+ pub(crate) counter_table: Arc<IndexCounter<K2VItem>>,
pub(crate) subscriptions: Arc<SubscriptionManager>,
}
diff --git a/src/model/s3/object_table.rs b/src/model/s3/object_table.rs
index b9995d79..23cce1d3 100644
--- a/src/model/s3/object_table.rs
+++ b/src/model/s3/object_table.rs
@@ -8,7 +8,7 @@ use garage_util::background::BackgroundRunner;
use garage_util::data::*;
use garage_table::crdt::*;
-use garage_table::replication::*;
+use garage_table::replication::TableShardedReplication;
use garage_table::*;
use crate::index_counter::*;
@@ -223,7 +223,7 @@ impl Crdt for Object {
pub struct ObjectTable {
pub background: Arc<BackgroundRunner>,
pub version_table: Arc<Table<VersionTable, TableShardedReplication>>,
- pub object_counter_table: Arc<IndexCounter<Object, TableFullReplication>>,
+ pub object_counter_table: Arc<IndexCounter<Object>>,
}
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]