[haiku-development] Re: Contribute to "Create an XFS file system driver"

  • From: Saket Sinha <saket.sinha89@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 10 Nov 2014 00:38:57 +0530

Hi Julian,

            Thank you for the link. It helped me understand the
file-system stack in Haiku.

I would like to get the guidance/feedbacks from the Haiku community on
implementing XFS on Haiku.

If the entire implementation of XFS gets ported to Haiku, it would
bring in the following features-

1) Scalability- supporting large files.
2) Better I/O Performance

I have gone through the ext2 filesystem port on Haiku and have seen
that even ext4 has been supported but it is difficult to match the
scalability that XFS may bring in.

To introduce design changes in XFS implementation as compared to ext
filesystems, I would list down a few -

1)  XFS file system is partitioned into regions called allocation
groups, somewhat similar to the block groups in ext  but they are
typically much larger than block groups and are used for scalability
and parallelism rather than disk locality.

2) ext, uses linear bitmaps to track free space, which is inefficient
especially for larger contiguous allocations whereas XFS
instead uses a pair of B+ trees in each allocation group.

3) Inode implementation is different as they are dynamically allocated.

4) XFS uses direct I/O where reads and writes to a file opened for
direct I/O bypass the kernel file cache and go directly from
the user buffer to the underlying I/O hardware.

There can be issues in implementing the exact design in Haiku, for
which I would like to discuss with the rest of the community.
Any suggestions/feedback from Haiku developers would be appreciated.

Regards,
Saket Sinha


















On Sun, Nov 2, 2014 at 10:07 PM, Julian Harnath
<julian.harnath@xxxxxxxxxxxxxx> wrote:
> Saket Sinha <saket.sinha89@xxxxxxxxx> schrieb:
>>
>> What I really want to ask is that is there a generic
>> layer/functions(since VFS's interaction with filesystems I could not
>> track) that are common to all the filesystems.
>
> I'm not entirely sure I understand your question correctly, but the VFS
> layer itself is the the layer containing the functionality that is
> common to all filesystems.
> Have you looked at the documentation for writing file system modules at
> http://api.haiku-os.org/fs_modules.html
> yet? If not, maybe it could answer some of your questions.
>
> --
> So long, jua
>

Other related posts: