linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Boaz Harrosh <boazh@netapp.com>
To: Andreas Dilger <adilger@dilger.ca>, Boaz Harrosh <boazh@netapp.com>
Cc: linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Ric Wheeler <rwheeler@redhat.com>,
	Miklos Szeredi <mszeredi@redhat.com>,
	Steve French <smfrench@gmail.com>,
	Steven Whitehouse <swhiteho@redhat.com>,
	Jefff moyer <jmoyer@redhat.com>, Sage Weil <sweil@redhat.com>,
	Jan Kara <jack@suse.cz>, Amir Goldstein <amir73il@gmail.com>,
	Andy Rudof <andy.rudoff@intel.com>,
	Anna Schumaker <Anna.Schumaker@netapp.com>,
	Amit Golander <Amit.Golander@netapp.com>,
	Sagi Manole <sagim@netapp.com>,
	Shachar Sharon <Shachar.Sharon@netapp.com>
Subject: Re: [RFC 2/7] fs: Add the ZUF filesystem to the build + License
Date: Wed, 14 Mar 2018 19:21:03 +0200	[thread overview]
Message-ID: <c2133d8c-dbfa-726d-6da0-9f1dc9e702e3@netapp.com> (raw)
In-Reply-To: <A2ED64D0-5B7F-425D-98BD-FE40C5650524@dilger.ca>

On 13/03/18 22:16, Andreas Dilger wrote:
<>
>> + */
>> +#define ZUFS_MINORS_PER_MAJOR	1024
>> +#define ZUFS_MAJOR_VERSION 1
>> +#define ZUFS_MINOR_VERSION 0
> 
> I haven't really been following this development, but my recommendation
> would be to use feature flags (e.g. at least __u64 compat, __u64 incompat)
> for the API and separately for the disk format, rather than using version
> numbers.  This makes it clear what "version" relates to a specific feature,
> and also allows *removal* of features if they turn out to be a bad idea.
> With version numbers you can only ever *add* features, and have to keep
> support for every old feature added.
> 
> Also, having separate feature flags allows independent development of new
> features, and doesn't require that feature X has to be in version N or it
> will break for anyone using/testing that feature outside of the main tree.
> 
> This has worked for 25 years for ext2/3/4 and 15 years for Lustre.  ZFS
> has a slightly more complex feature flags, distinguishing between features
> that _could_ be used (i.e. enabled at format time or by the administrator),
> and features that _are_ used (with a refcount).  That avoids gratuitous
> incompatibility if some feature is enabled, but not actually used (e.g.
> ext4 files over 2TB), and also allows removing that incompatibility if the
> feature is no longer used (e.g. all > 2TB files are deleted).
> 

Yes thank you. As you can see at this RFC stage I have not even put any
code to enforce the ABI/API versioning yet. Exactly because I don't like
it as you explained. I will think about your suggestion and see. This is
not on disk stuff. This is more the communication channel between
ZUF<=>ZUS. Though there are a couple on disk stuff.
(The on disk things are all hidden from here inside the usermode FS plugin)

The thing is that I want to work a system with the distro's that the
ZUF<=>ZUS ABI can freely change, by forcing the zusd package be dependent
on the kernel package. And it be signed by the Kernel's make key. Meaning
it will only run against the kernel it was compiled against.

And keep the stable ABI with feature and versioning between the
ZUSD<=>zusFS-plugin(s)
We'll have to see

Thanks
Boaz
> 
> Cheers, Andreas
> 

  reply	other threads:[~2018-03-14 17:33 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-13 17:14 [RFC 0/7] first draft of ZUFS - the Kernel part Boaz Harrosh
2018-03-13 17:15 ` [RFC 1/7] mm: Add new vma flag VM_LOCAL_CPU Boaz Harrosh
2018-03-13 18:56   ` Matthew Wilcox
2018-03-14  8:20     ` Miklos Szeredi
2018-03-14 11:17       ` Matthew Wilcox
2018-03-14 11:31         ` Miklos Szeredi
2018-03-14 11:45           ` Matthew Wilcox
2018-03-14 14:49             ` Miklos Szeredi
2018-03-14 14:57               ` Matthew Wilcox
2018-03-14 15:39                 ` Miklos Szeredi
     [not found]                   ` <CAON-v2ygEDCn90C9t-zadjsd5GRgj0ECqntQSDDtO_Zjk=KoVw@mail.gmail.com>
2018-03-14 16:48                     ` Matthew Wilcox
2018-03-14 21:41       ` Boaz Harrosh
2018-03-15  8:47         ` Miklos Szeredi
2018-03-15 15:27           ` Boaz Harrosh
2018-03-15 15:34             ` Matthew Wilcox
2018-03-15 15:58               ` Boaz Harrosh
2018-03-15 16:10             ` Miklos Szeredi
2018-03-15 16:30               ` Boaz Harrosh
2018-03-15 20:42                 ` Miklos Szeredi
2018-04-25 12:21                   ` Boaz Harrosh
2018-05-07 10:46                     ` Miklos Szeredi
2018-03-13 17:17 ` [RFC 2/7] fs: Add the ZUF filesystem to the build + License Boaz Harrosh
2018-03-13 20:16   ` Andreas Dilger
2018-03-14 17:21     ` Boaz Harrosh [this message]
2018-03-15  4:21       ` Andreas Dilger
2018-03-15 13:58         ` Boaz Harrosh
2018-03-13 17:18 ` [RFC 3/7] zuf: Preliminary Documentation Boaz Harrosh
2018-03-13 20:32   ` Randy Dunlap
2018-03-14 18:01     ` Boaz Harrosh
2018-03-14 19:16       ` Randy Dunlap
2018-03-13 17:22 ` [RFC 4/7] zuf: zuf-rootfs && zuf-core Boaz Harrosh
2018-03-13 17:36   ` Boaz Harrosh
2018-03-14 12:56     ` Nikolay Borisov
2018-03-14 18:34       ` Boaz Harrosh
2018-03-13 17:25 ` [RFC 5/7] zus: Devices && mounting Boaz Harrosh
2018-03-13 17:38   ` Boaz Harrosh
2018-03-13 17:28 ` [RFC 6/7] zuf: Filesystem operations Boaz Harrosh
2018-03-13 17:39   ` Boaz Harrosh
2018-03-13 17:32 ` [RFC 7/7] zuf: Write/Read && mmap implementation Boaz Harrosh

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=c2133d8c-dbfa-726d-6da0-9f1dc9e702e3@netapp.com \
    --to=boazh@netapp.com \
    --cc=Amit.Golander@netapp.com \
    --cc=Anna.Schumaker@netapp.com \
    --cc=Shachar.Sharon@netapp.com \
    --cc=adilger@dilger.ca \
    --cc=amir73il@gmail.com \
    --cc=andy.rudoff@intel.com \
    --cc=jack@suse.cz \
    --cc=jmoyer@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=mszeredi@redhat.com \
    --cc=rwheeler@redhat.com \
    --cc=sagim@netapp.com \
    --cc=smfrench@gmail.com \
    --cc=sweil@redhat.com \
    --cc=swhiteho@redhat.com \
    /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).