Skip to content

Commit 3127a4a

Browse files
authored
Safekeeper::Storage::write_wal: clarify behavior (#679)
It previously took &SafeKeeperState similar to persist(), but only for its `server` member. Now it takes &ServerInfo only, so there it's clear the state is not persisted. Also added a comment about sync.
1 parent 6d99341 commit 3127a4a

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

walkeeper/src/safekeeper.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,8 @@ impl AcceptorProposerMessage {
275275
pub trait Storage {
276276
/// Persist safekeeper state on disk, optionally syncing it.
277277
fn persist(&mut self, s: &SafeKeeperState, sync: bool) -> Result<()>;
278-
/// Write piece of wal in buf to disk.
279-
fn write_wal(&mut self, s: &SafeKeeperState, startpos: Lsn, buf: &[u8]) -> Result<()>;
278+
/// Write piece of wal in buf to disk and sync it.
279+
fn write_wal(&mut self, server: &ServerInfo, startpos: Lsn, buf: &[u8]) -> Result<()>;
280280
}
281281

282282
/// SafeKeeper which consumes events (messages from compute) and provides
@@ -423,7 +423,7 @@ where
423423
let mut last_rec_lsn = Lsn(0);
424424
if !msg.wal_data.is_empty() {
425425
self.storage
426-
.write_wal(&self.s, msg.h.begin_lsn, &msg.wal_data)?;
426+
.write_wal(&self.s.server, msg.h.begin_lsn, &msg.wal_data)?;
427427

428428
// figure out last record's end lsn for reporting (if we got the
429429
// whole record)
@@ -546,7 +546,7 @@ mod tests {
546546
Ok(())
547547
}
548548

549-
fn write_wal(&mut self, _s: &SafeKeeperState, _startpos: Lsn, _buf: &[u8]) -> Result<()> {
549+
fn write_wal(&mut self, _server: &ServerInfo, _startpos: Lsn, _buf: &[u8]) -> Result<()> {
550550
Ok(())
551551
}
552552
}

walkeeper/src/timeline.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ use zenith_utils::zid::{ZTenantId, ZTimelineId};
1818

1919
use crate::replication::{HotStandbyFeedback, END_REPLICATION_MARKER};
2020
use crate::safekeeper::{
21-
AcceptorProposerMessage, ProposerAcceptorMessage, SafeKeeper, SafeKeeperState, Storage,
22-
SK_FORMAT_VERSION, SK_MAGIC,
21+
AcceptorProposerMessage, ProposerAcceptorMessage, SafeKeeper, SafeKeeperState, ServerInfo,
22+
Storage, SK_FORMAT_VERSION, SK_MAGIC,
2323
};
2424
use crate::WalAcceptorConf;
2525
use postgres_ffi::xlog_utils::{XLogFileName, XLOG_BLCKSZ};
@@ -337,14 +337,14 @@ impl Storage for FileStorage {
337337
Ok(())
338338
}
339339

340-
fn write_wal(&mut self, s: &SafeKeeperState, startpos: Lsn, buf: &[u8]) -> Result<()> {
340+
fn write_wal(&mut self, server: &ServerInfo, startpos: Lsn, buf: &[u8]) -> Result<()> {
341341
let mut bytes_left: usize = buf.len();
342342
let mut bytes_written: usize = 0;
343343
let mut partial;
344344
let mut start_pos = startpos;
345345
const ZERO_BLOCK: &[u8] = &[0u8; XLOG_BLCKSZ];
346-
let wal_seg_size = s.server.wal_seg_size as usize;
347-
let ztli = s.server.ztli;
346+
let wal_seg_size = server.wal_seg_size as usize;
347+
let ztli = server.ztli;
348348

349349
/* Extract WAL location for this block */
350350
let mut xlogoff = start_pos.segment_offset(wal_seg_size) as usize;
@@ -365,7 +365,7 @@ impl Storage for FileStorage {
365365
/* Open file */
366366
let segno = start_pos.segment_number(wal_seg_size);
367367
// note: we basically don't support changing pg timeline
368-
let wal_file_name = XLogFileName(s.server.tli, segno, wal_seg_size);
368+
let wal_file_name = XLogFileName(server.tli, segno, wal_seg_size);
369369
let wal_file_path = self
370370
.conf
371371
.data_dir

0 commit comments

Comments
 (0)