« Death to agents that add little value | Main | What is WAFL part IV: SAN and WAFL »

October 20, 2008

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Kostadis,

You are missing two elements, IMO.

1. Deleting data
2. Reclaiming space.

Anil

Kostadis,
I look forward to the next part because at the moment I'm leaning towards feeling what you describe is an incompletely implemented file-system. So really looking forward to the next part and the reveal.

Martin G,

I finished the series. Hope to see your reaction.

cheers,
kostadis

Anil,

Good point.

And actually the two use cases illustrate my point.

NFS provides a set of interfaces for deleting data. The ability to truncate a file using SETATTR deletes data. The ability to REMOVE a file also deletes data.

Internally WAFL has a set of mechanisms that allows both of those operations to be implemented.

However, the actual management of free space is done by WAFL itself.

cheers,
kostadis

Hi

What they did was create a common set of primitives on top of which the NFS and CIFS semantics could be commonly layered. The NFS and CIFS semantics, were part of the protocol stack, the shared primitives were part of WAFL. So even at this early stage, WAFL provided a mechanism for storing files and directories, without assuming the semantics of those operations.

Arent those just the expectations from a virtual file system?

Well it provides mechanisms for building file-system semantics, it manages the on-disk format, it manages the free and allocated space, and provides a logical and physical volume manager.

That is a very interesting way to look at it. Perhaps, a question future file system developers can ask themselves: What if we leave out some aspects of a file system and only provide certain functionality? What kinds of layering can we get, by combining different subsets of functions?

Oops, I quoted a few paras from your post within italics, but looks like the blog engine gobbled those up. :/

Shehjar,

Whether it's a VFS layer or not is an interesting question. VFS was intended to abstract out the details to the client application of whether the underlying file system was ufs or nfs or something else.

In WAFL's case WAFL sits below the software that makes the file system NFS.

But I think you get the broader point, that file systems assume a specific kind of layering.

What WAFL demonstrates is that within the set of layers of a file system there are software layers that are not file systems but that add tremendous value.

Thanks for your post.

kostadis

The comments to this entry are closed.

Subscribe to This Blog



Extensible NetApp Links

© NetApp, Inc.  |  "Safe Harbor" Statement  |  Privacy Policy