From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 8B9281FA12 for ; Fri, 7 Aug 2020 01:14:07 +0000 (UTC) From: Eric Wong 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> In-Reply-To: <20200807011406.12285-1-e@yhbt.net> References: <20200807011406.12285-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: 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 and L 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 when used with C<--compact>. -=item --no-sync +=item --no-fsync Disable L and L. 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})) {