From: Eric Wong <e@yhbt.net> To: meta@public-inbox.org Subject: [PATCH 7/7] index+xcpdb: rename `--no-sync' to `--no-fsync' Date: Fri, 7 Aug 2020 01:14:06 +0000 Message-ID: <20200807011406.12285-8-e@yhbt.net> (raw) In-Reply-To: <20200807011406.12285-1-e@yhbt.net> We'll continue supporting `--no-sync' even if its yet-to-make it it into a release, but the term `sync' is overloaded in our codebase which may be confusing to new hackers and users. None of our our code nor dependencies issue the sync(2) syscall, either, only fsync(2) and fdatasync(2). --- Documentation/public-inbox-index.pod | 2 +- Documentation/public-inbox-xcpdb.pod | 2 +- lib/PublicInbox/OverIdx.pm | 2 +- lib/PublicInbox/SearchIdx.pm | 6 +++--- lib/PublicInbox/V2Writable.pm | 4 ++-- lib/PublicInbox/Xapcmd.pm | 2 +- script/public-inbox-index | 8 ++++---- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Documentation/public-inbox-index.pod b/Documentation/public-inbox-index.pod index f525ba54..a4edc57a 100644 --- a/Documentation/public-inbox-index.pod +++ b/Documentation/public-inbox-index.pod @@ -117,7 +117,7 @@ below. Available in public-inbox 1.6.0 (PENDING). -=item --no-sync +=item --no-fsync Disables L<fsync(2)> and L<fdatasync(2)> operations on SQLite and Xapian. This is only effective with Xapian 1.4+. diff --git a/Documentation/public-inbox-xcpdb.pod b/Documentation/public-inbox-xcpdb.pod index 7fe1e5fe..89eed079 100644 --- a/Documentation/public-inbox-xcpdb.pod +++ b/Documentation/public-inbox-xcpdb.pod @@ -45,7 +45,7 @@ too many shards given the capabilities of the current hardware. These options are passed directly to L<xapian-compact(1)> when used with C<--compact>. -=item --no-sync +=item --no-fsync Disable L<fsync(2)> and L<fdatasync(2)>. diff --git a/lib/PublicInbox/OverIdx.pm b/lib/PublicInbox/OverIdx.pm index c8f61e01..4543bfa1 100644 --- a/lib/PublicInbox/OverIdx.pm +++ b/lib/PublicInbox/OverIdx.pm @@ -21,7 +21,7 @@ use Carp qw(croak); sub dbh_new { my ($self) = @_; - my $dbh = $self->SUPER::dbh_new($self->{-no_sync} ? 2 : 1); + my $dbh = $self->SUPER::dbh_new($self->{-no_fsync} ? 2 : 1); # TRUNCATE reduces I/O compared to the default (DELETE) # We do not use WAL since we're optimized for read-only ops, diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index a1baa65b..22489731 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -67,7 +67,7 @@ sub new { $self->{lock_path} = "$inboxdir/ssoma.lock"; my $dir = $self->xdir; $self->{over} = PublicInbox::OverIdx->new("$dir/over.sqlite3"); - $self->{over}->{-no_sync} = 1 if $ibx->{-no_sync}; + $self->{over}->{-no_fsync} = 1 if $ibx->{-no_fsync}; $self->{index_max_size} = $ibx->{index_max_size}; } elsif ($version == 2) { defined $shard or die "shard is required for v2\n"; @@ -138,7 +138,7 @@ sub idx_acquire { } } return unless defined $flag; - $flag |= $DB_NO_SYNC if $self->{ibx}->{-no_sync}; + $flag |= $DB_NO_SYNC if $self->{ibx}->{-no_fsync}; my $xdb = eval { ($X->{WritableDatabase})->new($dir, $flag) }; if ($@) { die "Failed opening $dir: ", $@; @@ -389,7 +389,7 @@ sub _msgmap_init ($) { die "BUG: _msgmap_init is only for v1\n" if $self->{ibx_ver} != 1; $self->{mm} //= eval { require PublicInbox::Msgmap; - my $rw = $self->{ibx}->{-no_sync} ? 2 : 1; + my $rw = $self->{ibx}->{-no_fsync} ? 2 : 1; PublicInbox::Msgmap->new($self->{ibx}->{inboxdir}, $rw); }; } diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index 6b1effe5..a029fe4c 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -122,7 +122,7 @@ sub new { rotate_bytes => int((1024 * 1024 * 1024) / $PACKING_FACTOR), last_commit => [], # git epoch -> commit }; - $self->{over}->{-no_sync} = 1 if $v2ibx->{-no_sync}; + $self->{over}->{-no_fsync} = 1 if $v2ibx->{-no_fsync}; $self->{shards} = count_shards($self) || nproc_shards($creat); bless $self, $class; } @@ -292,7 +292,7 @@ sub _idx_init { # with_umask callback # for SQLite: my $mm = $self->{mm} = PublicInbox::Msgmap->new_file( "$self->{ibx}->{inboxdir}/msgmap.sqlite3", - $self->{ibx}->{-no_sync} ? 2 : 1); + $self->{ibx}->{-no_fsync} ? 2 : 1); $mm->{dbh}->begin_work; } diff --git a/lib/PublicInbox/Xapcmd.pm b/lib/PublicInbox/Xapcmd.pm index 97a51d1b..8423194f 100644 --- a/lib/PublicInbox/Xapcmd.pm +++ b/lib/PublicInbox/Xapcmd.pm @@ -418,7 +418,7 @@ sub cpdb ($$) { my $flag = eval($PublicInbox::Search::Xap.'::DB_CREATE()'); die if $@; my $XapianWritableDatabase = $PublicInbox::Search::X{WritableDatabase}; - $flag |= $PublicInbox::SearchIdx::DB_NO_SYNC if !$opt->{sync}; + $flag |= $PublicInbox::SearchIdx::DB_NO_SYNC if !$opt->{fsync}; my $dst = $XapianWritableDatabase->new($tmp, $flag); my $pr = $opt->{-progress}; my $pfx = $opt->{-progress_pfx} = progress_pfx($new); diff --git a/script/public-inbox-index b/script/public-inbox-index index a52fb1bf..dc9bdde1 100755 --- a/script/public-inbox-index +++ b/script/public-inbox-index @@ -14,9 +14,9 @@ PublicInbox::Admin::require_or_die('-index'); use PublicInbox::Xapcmd; my $compact_opt; -my $opt = { quiet => -1, compact => 0, maxsize => undef, sync => 1 }; -GetOptions($opt, qw(verbose|v+ reindex rethread compact|c+ jobs|j=i prune sync! - xapianonly|xapian-only +my $opt = { quiet => -1, compact => 0, maxsize => undef, fsync => 1 }; +GetOptions($opt, qw(verbose|v+ reindex rethread compact|c+ jobs|j=i prune + fsync|sync! xapianonly|xapian-only indexlevel|L=s maxsize|max-size=s batchsize|batch-size=s sequentialshard|seq-shard|sequential-shard)) or die "bad command-line args\n$usage"; @@ -73,7 +73,7 @@ for my $ibx (@ibxs) { if ($opt->{compact} >= 2) { PublicInbox::Xapcmd::run($ibx, 'compact', $compact_opt); } - $ibx->{-no_sync} = 1 if !$opt->{sync}; + $ibx->{-no_fsync} = 1 if !$opt->{fsync}; my $ibx_opt = $opt; if (defined(my $s = $ibx->{indexsequentialshard})) {
prev parent reply other threads:[~2020-08-07 1:14 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-07 1:13 [PATCH 0/7] index: --sequential-shard and other stuff Eric Wong 2020-08-07 1:14 ` [PATCH 1/7] xapcmd: quietly no-op on indexlevel=basic Eric Wong 2020-08-07 1:14 ` [PATCH 2/7] xapcmd: remove redundant searchidx require Eric Wong 2020-08-07 1:14 ` [PATCH 3/7] xapcmd: drop outdated comment Eric Wong 2020-08-07 1:14 ` [PATCH 4/7] v2writable: fix rethread cleanup Eric Wong 2020-08-07 1:14 ` [PATCH 5/7] index: v2: --sequential-shard option Eric Wong 2020-08-07 1:14 ` [PATCH 6/7] index: support --xapian-only switch Eric Wong 2020-08-07 1:14 ` Eric Wong [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://public-inbox.org/README * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200807011406.12285-8-e@yhbt.net \ --to=e@yhbt.net \ --cc=meta@public-inbox.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
user/dev discussion of public-inbox itself This inbox may be cloned and mirrored by anyone: git clone --mirror https://public-inbox.org/meta git clone --mirror http://czquwvybam4bgbro.onion/meta git clone --mirror http://hjrcffqmbrq6wope.onion/meta git clone --mirror http://ou63pmih66umazou.onion/meta # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 meta meta/ https://public-inbox.org/meta \ meta@public-inbox.org public-inbox-index meta Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta nntp://news.gmane.io/gmane.mail.public-inbox.general note: .onion URLs require Tor: https://www.torproject.org/ code repositories for the project(s) associated with this inbox: https://80x24.org/public-inbox.git AGPL code for this site: git clone https://public-inbox.org/public-inbox.git