Hacker News new | past | comments | ask | show | jobs | submit login

S3 isn’t a file system. It’s a key-value store. If you’re trying to use it as a file system, you’re doing it wrong :)



That's exactly what a filesystem is.

Unix directories map directory and file names(keys) to inode numbers(values). And a file's inode(key) is a map to the data blocks(values) on disk that make up a file's content.

S3 might not have Posix semantics but to say it's not a filesystem is incorrect.


A Unix file system is not only a map from paths to inodes to bytes. Unix file systems support a host of additional apis, some of which are hard to implement on top of something like s3 (eg atomically renaming a parent path).

Even if you drop the Unix (posix) part, most practically used file systems have features that are hard to guarantee in a distributed setting, and in either case simply don't exist in S3.


The point in my post was to point out that storage implemented using keys and values is fundamental to all filesystems. To say that the very model that is fundamental to all filesystem is the thing that somehow precludes S3 from being considered a filesystem is kind of bizarre.

Also Nowhere did I say or even imply that a key/value store is all a Unix file system is. Different filesystems have different features. Object storage is a type of filesystem with a very specific feature set.


I understood the original poster as saying a system providing only key/value storage is not the same as a file system. I'd think that's something we can all agree on?


Except its actually an object store and is used as a "file system" for hadoop/emr clusters for big data. See EMRFS.


This.

It is an eventually consistent key-value store with some built-in optimization (indexes) for filtering/searching object timestamps and keys (e.g. listing keys by prefix), which allows for presenting them in a UI similar to how it is possible with files in a directory. That's about it.


What do you think a file system is?


Eventually someone will find a coincidental or unintended aspect of your API and then depend on it. This article is the ultimate exemplar of this rule.


but isn't a filename a key, and its content the value?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: