9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: Re: [9fans] 9pfuse and O_APPEND
Date: Fri, 19 Dec 2008 09:21:02 -0500	[thread overview]
Message-ID: <640302a69bf28aee719ac6561af7be50@quanstro.net> (raw)
In-Reply-To: <4bdece4cd73b46e7fe957da67fa215c6@plan9.bell-labs.com>

> The places that DMAPPEND is used most commonly are log files and mail
> boxes.

mailboxes are append only, however
deleting a message requires rewriting
the mailbox, which isn't possible.  so
a temporary mbox is written, has its
mode tweaked and then replaces the
mbox.  L.mbox is exclusive open and
locks the whole directory to prevent
accidents.

since each message is in its own file,
mdir uses atomic create(2) (OEXCL)
for delivery.  deleting is trivial.  no
L.mbox required.

back to the subject.  i agree with the
point mixing append-only and regular
fids would be a disaster.  this is because
(in general) it takes multiple writes to
accomplish one's goal.  in the case of
a mailbox, it would not be safe to be
adding a new message while rewriting
to delete messages.  an exclusive-open
file would make much more sense.

log files are the big exception, of
course, nobody cares if the entries
are reordered, as long as they remain
intact.  and since each entry is smaller
than the iounit (syslog uses a 1k
buffer), the can fit into a single write
and can be ordered.

- erik



  parent reply	other threads:[~2008-12-19 14:21 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-18 23:34 Roman Shaposhnik
2008-12-18 23:57 ` Russ Cox
2008-12-19  0:03   ` ron minnich
2008-12-19  3:06     ` Roman Shaposhnik
2008-12-19  3:26       ` ron minnich
2008-12-19  3:59         ` Roman Shaposhnik
2008-12-19 16:44           ` ron minnich
2008-12-19 19:21             ` Anthony Sorace
2008-12-19 19:31               ` erik quanstrom
2008-12-19 19:41               ` ron minnich
2008-12-19 19:59             ` Roman Shaposhnik
2008-12-19 20:06               ` erik quanstrom
2008-12-19 20:18               ` Charles Forsyth
2008-12-21  5:08                 ` Roman V. Shaposhnik
2008-12-19  3:03   ` Roman Shaposhnik
2008-12-19  3:43     ` erik quanstrom
2008-12-19  3:54       ` Roman Shaposhnik
2008-12-19  4:13         ` geoff
2008-12-19  8:23           ` Russ Cox
2008-12-19 19:49             ` Roman Shaposhnik
2008-12-19 19:56               ` erik quanstrom
2008-12-19 20:10                 ` Roman Shaposhnik
2008-12-19 20:22                   ` erik quanstrom
2008-12-19 20:02               ` ron minnich
2008-12-19 14:21           ` erik quanstrom [this message]
2008-12-19 21:00 ` ron minnich
2008-12-19 21:32   ` Charles Forsyth
2008-12-19 21:29     ` ron minnich
2008-12-21  5:05   ` Roman V. Shaposhnik
2008-12-21 14:45     ` erik quanstrom
2008-12-22 10:02       ` roger peppe
2008-12-25  6:04       ` Roman Shaposhnik
2008-12-25  6:33         ` erik quanstrom

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=640302a69bf28aee719ac6561af7be50@quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).