user/dev discussion of public-inbox itself
 help / color / mirror / Atom feed
4f72f352b7bbe2ceeb28573954967ff240e04c14 blob 4934 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
 
From: Eric Wong <e@yhbt.net>
To: meta@public-inbox.org
Subject: [WIP] public-inbox 1.6.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

A big release containing several performance optimizations, a
new anonymous IMAP server, and more.  It represents an
incremental improvement over 1.5 in several areas with more to
come in 1.7.

The read-only httpd and nntpd daemons no longer block the event
loop when retrieving blobs from git, making better use of SMP
systems while accomodating slow storage.

Indexing can be now be tuned to give somewhat usable performance
on HDD storage, though we can't defy the laws of physics, either.

* General changes:

  - ~/.cache/public-inbox/inline-c is automatically used for Inline::C
    if it exists.  PERL_INLINE_DIRECTORY in env remains supported
    and prioritized to support `nobody'-type users without HOME.

  - msgmap.sqlite3 uses journal_mode=TRUNCATE, matching over.sqlite3
    behavior for a minor reduction in VFS traffic

  - public-inbox-tuning(7) - new manpage containing pointers to
    various tuning options and tips for certain HW and OS setups.

  - Copy-on-write is disabled on BTRFS for new indices to avoid
    fragmentation.  See the new public-inbox-tuning(7) manpage.

  - message/{rfc822,news,global} attachments are decoded recursively
    and indexed for search.  Reindexing (see below) is required
    to ensure these attachments are indexed in old messages.

  - inbox.lock (v2) and ssoma.lock (v1) files are written to
    on message delivery (or spam removal) to wake up read-only
    daemons via inotify or kqueue.

* Upgrading

  The ordering of these steps is only necessary if you intend to
  use some new features of this release.

  0. install (use your OS package manager, or "make install")

  1. restart public-inbox-watch instances if you have any

  2. Optional: remove Plack::Middleware::Deflater if you're using
     a custom .psgi file for PublicInbox::WWW.  This only saves
     some memory and CPU cycles, and you may also skip this step
     if you expect to roll back to 1.5.0 for any reason.

  Steps 3a and 3b may happen in any order, 3b is optional
  and is only required to use new WWW and IMAP features.

  3a. restart existing read-only daemons if you have them
      (public-inbox-nntpd, public-inbox-httpd)

  3b. run "public-inbox-index -c --reindex --rethread --all"
      to reindex all configured inboxes

  4. configure and start the new public-inbox-imapd.  This
     requires reindexing in 3b, but there's no obligation to
     run an IMAP server, either.

* public-inbox-index

  There are several new options to improve usability on slow,
  rotational storage.

  - `--batch-size=BYTES' or publicinbox.indexBatchSize parameter
    to reduce frequency of random writes on HDDs

  - `--sequential-shard' or publicInbox.sequentialShard parameter
    to improve OS page cache utilization on HDDs.

  - `--no-fsync' when combined with Xapian 1.4+ can be used to
    speed up indexing on SSDs and small (default) `--batch-size'

  - `--rethread' option to go with `--reindex' (use sparringly,
    see manpage)

  - parallelize v2 updates by default, `--sequential-shard' and
    `-j0' is (once again) allowed to disable parallelization

  - (re-)indexing parallelizes blob reads from git

  - `--all' may be specified to index all configured inboxes

* public-inbox-learn

  - `rm' supports `--all' to remove from all configured inboxes

* public-inbox-imapd

  - new read-only IMAP daemon similar to public-inbox-nntpd
    `AUTH=ANONYMOUS' is supported, but any username and
    password for clients without `AUTH=ANONYMOUS' support.

* public-inbox-nntpd

  - blob reads from git are handled asynchronously

* public-inbox-httpd

  - Plack::Middleware::Deflater is no longer loaded by default
    when no .psgi file is specified; PublicInbox::WWW can rely
    on gzip for buffering (see below)

* PublicInbox::WWW

  - use consistent blank line around attachment links

  - Attachments in message/{rfc822,news,global} messages can be
    individually downloaded.  Downloading the entire message/rfc822
    file in full remains supported

  - $INBOX_DIR/description is treated as UTF-8

  - HTML, Atom, and text/plain responses are gzipped without
    relying on Plack::Middleware::Deflater

  - Multi-message endpoints (/t.mbox.gz, /T/, /t/, etc) are ~10% faster
    when running under public-inbox-httpd with asynchronous blob
    retrieval

  - mbox search results may now include all messages pertaining to that
    thread (requires `--reindex' mentioned in `Upgrading').

* public-inbox-watch

  - Linux::Inotify2 or IO::KQueue is used directly,
    Filesys::Notify::Simple is no longer required

Please report bugs via plain-text mail to: meta@public-inbox.org

See archives at https://public-inbox.org/meta/ for all history.
See https://public-inbox.org/TODO for what the future holds.
debug log:

solving 4f72f352 ...
found 4f72f352 in https://80x24.org/public-inbox.git

user/dev discussion of public-inbox itself

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://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/ http://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