=head1 NAME public-inbox-xcpdb - upgrade Xapian DB formats =head1 SYNOPSIS public-inbox-xcpdb [OPTIONS] INBOX_DIR =head1 DESCRIPTION public-inbox-xcpdb is similar to L for upgrading to the latest database format supported by Xapian (e.g. "glass" or "honey"), but is designed to tolerate and recover from Xapian database modifications from L or L. =head1 OPTIONS =over =item --compact In addition to performing the copy operation, run L on each Xapian shard after copying but before finalizing it. Compared to the cost of copying a Xapian database, compacting a Xapian database takes only around 5% of the time required to copy. Compared to L, use of this option is preferable for gigantic inboxes where the coarse-grained lock currently required for L can cause the compaction to take hours at-a-time. =item --reshard=N / -R N Reshard the Xapian database on a L inbox to C shards . Since L is not suitable for merging, users can rely on this switch to reshard the existing Xapian database(s) to any positive value of C. This is useful in case the Xapian DB was created with too few or too many shards given the capabilities of the current hardware. =item --blocksize / --no-full / --fuller These options are passed directly to L when used with C<--compact>. =back =head1 ENVIRONMENT =over 8 =item PI_CONFIG The default config file, normally "~/.public-inbox/config". See L =item XAPIAN_FLUSH_THRESHOLD The number of documents to update before committing changes to disk. This environment is handled directly by Xapian, refer to Xapian API documentation for more details. Default: 10000 =back =head1 UPGRADING This tool is intended for admins upgrading Xapian search databases used by public-inbox, NOT users upgrading public-inbox itself. In particular, it DOES NOT upgrade the schema used by the PSGI search interface (see L). =head1 CONTACT Feedback welcome via plain-text mail to L The mail archives are hosted at L and L =head1 COPYRIGHT Copyright 2019 all contributors L License: AGPL-3.0+ L =head1 SEE ALSO L, L, L