]> Sergey Matveev's repositories - public-inbox.git/commitdiff
searchidx: default BATCH_BYTES to 8MB on 64-bit systems
authorEric Wong <e@80x24.org>
Wed, 30 Jun 2021 17:58:54 +0000 (17:58 +0000)
committerEric Wong <e@80x24.org>
Wed, 30 Jun 2021 21:27:47 +0000 (21:27 +0000)
This default seems closer to reasonable on 64-bit systems which
are the norm these days.  32-bit systems gain 48K so it's an
even 1 MB, but we need to keep 32-bit systems from using too
much since there's still some ancient systems out there with
small inboxes.

lib/PublicInbox/SearchIdx.pm

index 65764cc81a81b167a7e5a59561d4e1084401531e..f4f3ba34f5c951f3a0b3045a7babbb3cbd0f0934 100644 (file)
@@ -24,12 +24,17 @@ use PublicInbox::Spawn qw(spawn nodatacow_dir);
 use PublicInbox::Git qw(git_unquote);
 use PublicInbox::MsgTime qw(msg_timestamp msg_datestamp);
 use PublicInbox::Address;
+use Config;
 our @EXPORT_OK = qw(log2stack is_ancestor check_size prepare_stack
        index_text term_generator add_val is_bad_blob);
 my $X = \%PublicInbox::Search::X;
 our ($DB_CREATE_OR_OPEN, $DB_OPEN);
 our $DB_NO_SYNC = 0;
-our $BATCH_BYTES = $ENV{XAPIAN_FLUSH_THRESHOLD} ? 0x7fffffff : 1_000_000;
+our $BATCH_BYTES = $ENV{XAPIAN_FLUSH_THRESHOLD} ? 0x7fffffff :
+       # assume a typical 64-bit system has 8x more RAM than a
+       # typical 32-bit system:
+       (($Config{ptrsize} >= 8 ? 8192 : 1024) * 1024);
+
 use constant DEBUG => !!$ENV{DEBUG};
 
 my $xapianlevels = qr/\A(?:full|medium)\z/;