9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Francisco J Ballesteros <nemo@lsub.org>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] The creepy WORM. (was: Re: Thinkpad T61 Installation Experience)
Date: Sat, 19 May 2012 00:45:58 +0200	[thread overview]
Message-ID: <23ED89F3-F760-428A-8CF4-0A046F52675B@lsub.org> (raw)
In-Reply-To: <20120518222257.386CFB827@mail.bitblocks.com>

[-- Attachment #1: Type: text/plain, Size: 3665 bytes --]




using ipad keyboard. excuse any typos.

>> 
> 
> Just curious.
> If the tree doesn't fit in memory, how do you decide who to
> kick out? LRU? Sounds much like a cache fs. What does it buy
> you over existing cache filesystems? Speaking more generally,
> not just in the plan9 context.
> 
> 

lru for clean blocks. but you really have the tree you use in memory, all if it fits.
what it buys is simplicity, thus reliability, and speed.
instead of a single program doing everything, you have several trying to use
their memory and to avoid copying blocks in the main server.
plus, it's going to be modified to exploit the upcoming nix zero copy framework.


>>          The disk is organized as a log of blocks. When a new version
>>          of the tree must be written to disk, all blocks that changed
>>          are given disk addresses and are appended to the log. Once
>>          written, they are frozen.  If new changes are made to the
>>          tree, blocks are melted and forget their previous addresses:
>>          each time they are written again, they are assigned new
>>          ones.
> 
> I don't understand use of the words frozen & melted here.  How
> is this different from how things work now? Something worse
> than what venti or zfs do, which is to leave the old blocks
> alone and allocate new space for new blocks.
> 

it's not cow. you reuse the memory of a frozen block instead of copying.
you just melt it and reuse it. 

all this is in memory. cow happens only on the disk, but you don't wait for that.
that's the main difference wrt others.



>>          When the disk gets full, all reachable blocks are marked and
>>          all other blocks are considered available for growing the
>>          log (this is a description of semantics, not of the imple-
>>          mentation). Thus, the log is circular but jumps to the next
>>          available block each time it grows.  If, after the mark pro-
>>          cess, the disk is still full, the file system becomes read
>>          only but for removing files.
> 
> Why does circularity matter? It would make more sense to allocate
> new blocks for a given file near its existing blocks regardless of
> writing order.
> 

for simplicity, I removed most of the fanciest things I had before in place in
previous versions that could be a source of bugs. there are no ref. counters,
for example. it's designed to operate on
main memory, and it seems it does well even though the disk algorithms are
naive.


> Why not just use venti or some existing FS underneath than
> come up with a new disk format?
> 

to avoid complexity, latency, and bugs.

it's now a set of tools, you can archive creepy into venti if you want, or archive
fossil into a creepy rip (it's the same program, actually).

for archival, you are going to use a pipe, and not a tcp connection.

you have a program half the size, or 1/4 depending on how you wc.

it takes half the time fossil takes in the silly tests I made, and you can understand
the code the first time you read it, which is not trivial with the others, but for Ken's.

last, it's expected not to give you corrupted files despite power failures, which we
had in both fossil and venti (I'm not saying its their fault, our environment is bumpy).

that was the motivation, exploiting large main memories and keeping things simple
and reliable. Time will tell if we managed to achieve that or not :)

sorry I wrote in Sioux this time. its been a long day here :)

> Sounds like a fun project but it would be nice to see the
> rationale for it.
> 
> Thanks!

[-- Attachment #2: Type: text/html, Size: 6233 bytes --]

  reply	other threads:[~2012-05-18 22:45 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-16 12:24 [9fans] Thinkpad T61 Installation Experience Burton Samograd
2012-05-16 12:32 ` Bruce Ellis
2012-05-16 12:49   ` Burton Samograd
2012-05-16 13:00     ` Peter A. Cejchan
2012-05-16 14:43   ` Martin Harriss
2012-05-16 15:00     ` Skip Tavakkolian
     [not found]     ` <CAJSxfmLZE3aNGmMusb=ZJAwn1AZEHuDxCeXJrRLADn+WV0KUEw@mail.gmail.c>
2012-05-16 15:02       ` erik quanstrom
2012-05-16 16:06         ` Charles Forsyth
2012-05-16 13:14 ` David du Colombier
2012-05-16 13:23   ` sl
2012-05-16 16:19     ` Burton Samograd
2012-05-16 16:34       ` cinap_lenrek
2012-05-17 12:39         ` Burton Samograd
2012-05-17 13:12           ` Jack Norton
2012-05-17 13:29             ` Burton Samograd
2012-05-17 14:01             ` erik quanstrom
2012-05-17 15:37           ` cinap_lenrek
2012-05-17 15:45             ` Burton Samograd
2012-05-17 16:00               ` cinap_lenrek
2012-05-18 21:13                 ` [9fans] The creepy WORM. (was: Re: Thinkpad T61 Installation Experience) Nemo
2012-05-18 22:22                   ` Bakul Shah
2012-05-18 22:45                     ` Francisco J Ballesteros [this message]
2012-05-20  3:13                       ` Bakul Shah
2012-05-20  8:37                         ` Charles Forsyth
2012-05-20  8:38                         ` Charles Forsyth
2012-05-20 10:07                         ` Francisco J Ballesteros
2012-05-17 15:48             ` [9fans] Thinkpad T61 Installation Experience erik quanstrom
     [not found]             ` <D2A5C7470D67A54FACE86B838946D49D14E466F852@NJ4MSGSCR02.markit.pa>
2012-05-17 15:57               ` erik quanstrom
2012-05-17 16:09             ` David Romano
2012-05-17 16:26               ` erik quanstrom
2012-05-17 19:43                 ` [9fans] +t and bind (Was Re: Thinkpad T61 Installation Experience) David Romano
2012-05-18 14:48                   ` Ethan Grammatikidis
     [not found]         ` <CAM8pOuM+TDRPjkiWPENr_5qA0Mi5R=-ytmQSA1_ruUmQ54YbGw@mail.gmail.c>
2012-05-17 13:11           ` [9fans] Thinkpad T61 Installation Experience erik quanstrom
2012-05-17 13:28             ` Burton Samograd
2012-05-17 14:08           ` erik quanstrom
2012-05-17 14:49             ` Burton Samograd
2012-05-16 13:51   ` Nicolas Bercher
2012-05-16 14:05     ` erik quanstrom
2012-05-16 14:25       ` Charles Forsyth
2012-05-16 14:31       ` David du Colombier
     [not found]       ` <CAOw7k5jBKN2bxUov=Dagn1aL6nA_OORN+G8iPnkOzvf8mbScyw@mail.gmail.c>
2012-05-16 14:34         ` erik quanstrom
2012-05-16 14:18     ` David du Colombier
2012-05-16 14:21     ` cinap_lenrek
2012-05-16 14:36       ` erik quanstrom
2012-05-16 13:44 ` Nicolas Bercher

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=23ED89F3-F760-428A-8CF4-0A046F52675B@lsub.org \
    --to=nemo@lsub.org \
    --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).