3 ms·
> there’s not really a difference between a database and a file system Having written an interface to FoundationDB in preparation to moving my app over to it,
by jwr 3y ago
> there’s not really a difference between a database and a file system
Having written an interface to FoundationDB in preparation to moving my app over to it, I couldn't disagree more.
Even "has proper indexes" is not something we'd agree on. In my case, for example, I am extremely happy with the fact that my indexes are computed in my app code, in my language, and that I am not restricted to some arbitrary concept of database-determined "indexable fields" and "indexable types".
Then there are correct transactions, versionstamps (for both keys and values), streaming large amounts of data, all of that in a distributed database, it's really nothing like a filesystem.
- deleted 3y ago[deleted]
- toolz 3y agoI'm interested in having you expand on these thoughts, so I'll play devils advocate here. I personally don't have strong opinions on the subject. > has proper indexes Does it matter where in the code the index lives? Are you arguing that databases don't have proper indexes or that filesystems don't? I'm not sure I'd agree with either argument. > correct transactions filesystems and databases have transactions, which one is "incorrect"? > versionstamps (for both keys and values) filesystems have timestamps, not sure what a versionstamp is but I suspect it's some domain specific name for a more general concept that both databases and filesystems utilize. > streaming large amounts of data many databases stream massive data and filesystems certainly do > all of that in a distributed database every major PaaS has some form of distributed filesystem
- drewbug01 3y agoVersionstamps are not a simple timestamp; it’s a cluster-wide order-able unique id. https://apple.github.io/foundationdb/data-modeling.html#versionstamps https://apple.github.io/foundationdb/data-modeling.html#vers...
- toolz 3y agoHow do they differ from vector clocks? Just a different implementation of the same thing maybe? Either way, distributed filesystems definitely have the same general concept.
- azurelake 3y agoVector clocks give a partial ordering. FDB version stamps give a total ordering by having a single process issue them for the entire cluster. There's a good breakdown here: https://blog.the-pans.com/notes-on-the-foundationdb-paper/ https://blog.the-pans.com/notes-on-the-foundationdb-paper/
- timc3 3y agoI suggest you write a file system, then write a database and then re-evaluate whether you still think the same way.