Просмотр исходного кода

Use a do nothing persister in durio.

Jing Yang 3 лет назад
Родитель
Сommit
87c7445eff
2 измененных файлов с 9 добавлено и 35 удалено
  1. 7 33
      durio/src/persister.rs
  2. 2 2
      durio/src/run.rs

+ 7 - 33
durio/src/persister.rs

@@ -1,42 +1,16 @@
-use parking_lot::Mutex;
+#[derive(Default)]
+pub struct DoNothingPersister {}
 
-#[derive(Clone)]
-pub struct State {
-    pub bytes: bytes::Bytes,
-    pub snapshot: Vec<u8>,
-}
-
-pub struct Persister {
-    state: Mutex<State>,
-}
-
-impl Persister {
-    pub fn new() -> Self {
-        Self {
-            state: Mutex::new(State {
-                bytes: bytes::Bytes::new(),
-                snapshot: vec![],
-            }),
-        }
-    }
-}
-
-impl ruaft::Persister for Persister {
+impl ruaft::Persister for DoNothingPersister {
     fn read_state(&self) -> bytes::Bytes {
-        self.state.lock().bytes.clone()
+        bytes::Bytes::new()
     }
 
-    fn save_state(&self, data: bytes::Bytes) {
-        self.state.lock().bytes = data;
-    }
+    fn save_state(&self, _data: bytes::Bytes) {}
 
     fn state_size(&self) -> usize {
-        self.state.lock().bytes.len()
+        0
     }
 
-    fn save_snapshot_and_state(&self, state: bytes::Bytes, snapshot: &[u8]) {
-        let mut this = self.state.lock();
-        this.bytes = state;
-        this.snapshot = snapshot.to_vec();
-    }
+    fn save_snapshot_and_state(&self, _state: bytes::Bytes, _snapshot: &[u8]) {}
 }

+ 2 - 2
durio/src/run.rs

@@ -4,7 +4,7 @@ use std::sync::Arc;
 use kvraft::KVServer;
 
 use crate::kv_service::start_kv_service_server;
-use crate::persister::Persister;
+use crate::persister::DoNothingPersister;
 use crate::raft_service::{start_raft_service_server, LazyRaftServiceClient};
 
 pub(crate) async fn run_kv_instance(
@@ -19,7 +19,7 @@ pub(crate) async fn run_kv_instance(
         remote_rafts.push(LazyRaftServiceClient::new(raft_peer));
     }
 
-    let persister = Arc::new(Persister::new());
+    let persister = Arc::new(DoNothingPersister::default());
 
     let kv_server = KVServer::new(remote_rafts, me, persister, None);
     let raft = Arc::new(kv_server.raft().clone());