linux-bcachefs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kent Overstreet <kent.overstreet@linux.dev>
To: Martin Steigerwald <martin@lichtvoll.de>
Cc: linux-bcachefs@vger.kernel.org
Subject: Re: Questions related to BCacheFS
Date: Sun, 19 Nov 2023 18:10:01 -0500	[thread overview]
Message-ID: <20231119231001.tb3teva5j4azqp7i@moria.home.lan> (raw)
In-Reply-To: <2273246.iZASKD2KPV@lichtvoll.de>

On Sun, Nov 19, 2023 at 12:13:29PM +0100, Martin Steigerwald wrote:
> Take your time and have a great Sunday :)
> 
> Kent Overstreet - 19.11.23, 00:42:05 CET:
> > On Sun, Nov 19, 2023 at 12:15:19AM +0100, Martin Steigerwald wrote:
> > > Kent Overstreet - 18.11.23, 22:07:27 CET:
> > > > > As far as I understand one specific performance related aspect of
> > > > > BCacheFS would be low latencies due to the frontend / backend
> > > > > architecture which in principle is based on what has been there in
> > > > > BCache already. I am intending to explore a bit into that concept
> > > > > in
> > > > > my article.
> > > > 
> > > > The low latency stuff actually wasn't in bcache - that work came
> > > > later.
> > > 
> > > So the frontend / backend architecture is not that much of what makes
> > > BCacheFS unique? Important to know as it seems I may have
> > > misunderstood
> > > something here.
> > 
> > The "filesystem on top of a database" is the main thing that makes
> > bcachefs unique - you have that right.
> 
> Phew! Seems I did not get it completely wrong then :)
> 
> > bcache had much of the core btree design - log structured btree nodes
> > with eytzinger search trees; that's how we got a high enough performance
> > btree to make the "filesystem on top of a database" thing practical.
> > 
> > But the btree in bcache was, from a performance POV, prototype quality -
> > stable, but a lot of performance corner cases unfinished.
> > 
> > The latency work, real iterators, and the whole transaction layer came
> > later :)
> 
> So it is fair to say that being based on BCache enabled that low latency 
> work?
> 
> I am trying to find a balance here. The audience of the article are 
> experienced sys admins working in small and large organizations, but not 
> (primarily) kernel hackers. So I like to explain possible reasons to 
> consider BCacheFS while also having BTRFS and ZFS and XFS, but without 
> going into so much detail that one needs to be a kernel developer to 
> understand it. For XFS it is easy as while there was a proof of concept 
> with subvolumes and snapshots based on XFS in files on XFS, AFAIR from 
> Dave Chinner, some years back, it does not have those advanced features 
> (yet). For ZFS one can always argue it is not in the mainline kernel. But 
> regarding BTRFS it becomes important to really explain something. I 
> started to do some BCacheFS / BTRFS feature comparison chart, but I also 
> like to explain on the benefits BCacheFS can have in the text and a bit 
> about the background of those benefits. Of course also mentioning that 
> BCacheFS is in development for more than 10 years, even without taking all 
> the work for BCache itself into account.
> 
> So my idea currently is to explain that the BCache BTree and/or frontend/
> backend architecture, not sure how to best word it, enabled a database 
> approach to a filesystem to be feasible. And that in a sense it also 
> enabled the latency work. And I can mention sixlocks and all the nice 
> other stuff you mentioned. However… I may not explain exactly what those 
> nice things are and how they work for example. For two reasons: 1. I need 
> to understand those nice features myself, 2. limit of pages I may use and 
> scope of the article. Currently I understood that sixlocks for certain use 
> cases are the next best thing since the invention of a wheel or something 
> like that. But not much more :)
> 
> Would something like that be accurate enough in your opinion?

Yeah, that all sounds reasonable :)

It would be a great project to get all this stuff documented better...
when I have more free time... :)

> I will review the user manual once again, I read about the database 
> approach, and aim to find a good balance. Cause for certain I won't be 
> getting 24 pages for the article :)
> 
> 
> I got two setbacks regarding trying BCacheFS on my laptop yesterday and 
> today:
> 
> 1) Linux 6.7-rc1, as mentioned almost rc2, did not hibernate on ThinkPad 
> T14 AMD Gen 1. It just blanked screen and nothing happened. So I went back 
> to 6.6.1 temporarily. I do not really intend to do a git bisect between 
> rc1 and 6.6 on a production laptop. It would be very time-consuming and 
> possibly be dangerous. I may go back to 6.7 even without hibernation, just 
> using standby over night for a while. I bet BCacheFS is compatible with 
> hibernation (as in writing memory contents to encrypted swap and resuming 
> from it)?

I believe so - I have not tested hibernation specifically.

> 
> 2) But after I removed 6.7-rc1 yesterday night after having booted into 
> 6.6.1 this morning I was greeted by GRUB command line. As I had a meeting 
> scheduled my primary aim was to get things running again. I certainly did 
> not really get the humorous aspect about it. I thought I'd had copied etc 
> in the broken state to a another place, but do not find it anymore, maybe 
> I copied it to /root or the GRML live distro accidently and so it is gone. 
> Also I missed to copy the broken /boot to another place. So I am not 
> really able to do any forensic analysis of what might have happened. I do 
> not recall having seen any error messages either, but I may have missed 
> something. I reviewed hook and script for initial RAM disk in bcachefs-
> tools repo, but did not find anything in there that could have caused grub 
> 2 not finding its config file and modules anymore. Also it booted into 6.7 
> and even 6.6.1 then after having executed "make install" from bcachefs-
> tools directory. Also I see nothing being done with grub itself within 
> bcachefs-tools. So this really is quite the mystery for me. I am on Devuan 
> Ceres (based on Debian Sid) so maybe something else got messed up. Will 
> review their bug trackers. I really have no idea what went wrong here, 
> luckily I was able to recover with GRML. I use LVM on LUKS for BTRFS and 
> test BCacheFS filesystem.
> 
> Maybe I need to continue testing BCacheFS on a virtual machine, but I'd 
> really love to have a BCacheFS filesystem on my laptop and actually really 
> using it for something. Well I am going to leave it at that and probably 
> research on this after the weekend. Now it is time to have a Sunday off.

The Nixos install process with bcachefs as root is pretty smooth, just
make sure to set up a separate filesystem for /boot!

  parent reply	other threads:[~2023-11-19 23:10 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-18 19:15 Questions related to BCacheFS Martin Steigerwald
2023-11-18 19:50 ` Kent Overstreet
2023-11-18 20:57   ` Martin Steigerwald
2023-11-18 21:07     ` Kent Overstreet
2023-11-18 23:15       ` Martin Steigerwald
2023-11-18 23:42         ` Kent Overstreet
2023-11-19 11:13           ` Martin Steigerwald
2023-11-19 16:43             ` Martin Steigerwald
2023-11-19 23:10             ` Kent Overstreet [this message]
2023-11-20 17:34               ` Martin Steigerwald
2023-12-03 16:58               ` Martin Steigerwald
2023-12-18 16:50                 ` Martin Steigerwald
2023-12-28 22:29     ` deletion time of big files (was: Re: Questions related to BCacheFS) Martin Steigerwald
2023-12-29 18:48       ` Kent Overstreet
2023-12-30 10:51         ` Martin Steigerwald

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=20231119231001.tb3teva5j4azqp7i@moria.home.lan \
    --to=kent.overstreet@linux.dev \
    --cc=linux-bcachefs@vger.kernel.org \
    --cc=martin@lichtvoll.de \
    /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).