Live data from Hacker News

Graviton Database: ZFS for key-value stores

github.com

51–59 of 59 posts

Re: Graviton Database: ZFS for key-value stores

#51
post #46

Earlier quoted context omitted.

You misinterpreted, I think. The point isn’t “snapshot isolation” in the MVCC sense (working with multiple snapshots-in-progress); it’s the ability to, in est, work with the database the way git works with commits: opening a transaction “on top of” a base commit, then “committing” that transaction to create a new commit object, with its own explicit ref, where you can later “check out” an arbitrary ref. Except, unlik…

It seems like coupling a database checkpoint process with file system’s snapshot process should be theoretically possible: 1) Database informed snapshot needed 2) Database finalizes any in progress writes and starts logging new writes to another file 3) Take file system snapshot 4) Inform database snapshot is fine Between #3 and the file system snapshot, you should have a perfect and quick representation of the datab…

File system snapshots are a system that have the analogous desired properties for files; but filesystem snapshots are actually quite heavyweight, because they deal with dirents, inodes, extents, etc. CoW filesystem snapshots are designed for ops-task-granularity usage, e.g. daily backups; not for per-transaction historical archiving. CoW filesystems tend to fall over once you get to 100K snapshots. (I tested!) A database that took a snapshot after every CQRS/ES transaction, could be expected to potentially have billions of snapshots.

A system that did its snapshots “inline” to itself, by e.g. managing a pool of pages with a free-list the way LMDB does — but where Txs ultimately add a new version to the root bucket as a snapshot, rather than replacing the root bucket page with themselves — would get a lot closer to allowing one to have at least tens-of-millions of snapshots online. At that point, to achieve a billion snapshots online, you “only” need to shard your timeline across a cluster of 100 nodes.

This is precisely one of the experiments I’m trying. :)

Re: Graviton Database: ZFS for key-value stores

#52

You can run a Graviton database. You can also run a database on a Graviton: https://aws.amazon.com/about-aws/whats-new/2020/07/announcin... For best results, run Graviton on a Graviton: https://aws.amazon.com/ec2/graviton/

Naming things is difficult.

Re: Graviton Database: ZFS for key-value stores

#53
post #45

>Graviton is currently alpha software. More like the "BTRFS for key-value stores" ;) Kidding aside, I dislike when new unproven software claims the name of industry standards like this. When I saw the headline, I was hoping this somehow actually leveraged ZFS's storage layer, but actually it is just a new database that thinks Copy-on-Write is cool.

Title is very click baity, this is just another kv store, completely unrelated to ZFS.

Even their README is click baity then. I quickly glanced at their repo and thought it somehow is related to ZFS, before reading comments here.

Re: Graviton Database: ZFS for key-value stores

#54
post #33

Earlier quoted context omitted.

> You need a team probably The cardinal rule of database development: http://www.dbms2.com/2013/03/18/dbms-development-marklogic-h...

Yup, I do not mean to discourage the authors. I truly like the project and I have a few things in mind that could make use of it already. (Heck, one of them is pretty much Graviton + a front end). But I cannot just jump into it as there's some real money involved and no one wants to experiment with that. I see a bright future for Graviton, once it becomes tested and stable in production environments.

I'm sure the devs would be interested in hearing about your use cases, should you open an issue on the repo, or got in touch via https://dero.io/#contacts-section

(I'm not on the team, just interested in the project.)

Re: Graviton Database: ZFS for key-value stores

#55
post #50

Earlier quoted context omitted.

If I am understanding you properly, couldn't you do this with SQL by specifying the range of data that represents the timeseries you care about, selected via materialized view? If you used a stored procedure to compute the range that becomes the view, then all you need to store are the parameters to feed to the stored procedure again, which data you could itself store in a separate table.

As I said in a sibling comment — every version needs to be “hot” / “online” at the same time. The point of this system is to allow for random access to OLAP queries for arbitrary historical versions of the system; and, in fact, to even do time-series reports that perform a given analysis against every available version of the data, hopefully with some degree of parallelism. In matview terms, that means that every ver…

So use views instead of materialized view. How much time/effort could be saved by simply making better queries? Are you sure that you are looking for or controlling for the right problems?

Re: Graviton Database: ZFS for key-value stores

#56
post #45

>Graviton is currently alpha software. More like the "BTRFS for key-value stores" ;) Kidding aside, I dislike when new unproven software claims the name of industry standards like this. When I saw the headline, I was hoping this somehow actually leveraged ZFS's storage layer, but actually it is just a new database that thinks Copy-on-Write is cool.

Every new unproven software is alpha during launch. Yet to see any software perfect since launch. Graviton provides ZFS leverages and features beyond ZFS. :)

Re: Graviton Database: ZFS for key-value stores

#57
post #36

Does anyone know of an embedded key-value store that does do versioning/snapshots, but doesn’t bother with cryptographic integrity (and so gets better OLAP performance than a Merkle-tree-based implementation)? My use-case is a system that serves as an OLAP data warehouse of representations of how another system’s state looked at various points in history. You’d open a handle against the store, passing in a snapshot v…

Worked on a project with similar goals [0]. By no means a production level implementation, but much of the system exists as a proof-of-concept.

[0]: https://makedist.com/projects/cruzdb/

Re: Graviton Database: ZFS for key-value stores

#58
post #50

Earlier quoted context omitted.

As I said in a sibling comment — every version needs to be “hot” / “online” at the same time. The point of this system is to allow for random access to OLAP queries for arbitrary historical versions of the system; and, in fact, to even do time-series reports that perform a given analysis against every available version of the data, hopefully with some degree of parallelism. In matview terms, that means that every ver…

So use views instead of materialized view. How much time/effort could be saved by simply making better queries? Are you sure that you are looking for or controlling for the right problems?

The goal is to host an infrastructure to accelerate arbitrary user queries, ala a Business Intelligence data-warehouse backend. We don't get to specify what queries the users are doing. It's the classical problem that SQL RDBMSes were introduced to solve: having the data, and having to shape it in advance of knowledge of reporting workload.

Re: Graviton Database: ZFS for key-value stores

#59

You can run a Graviton database. You can also run a database on a Graviton: https://aws.amazon.com/about-aws/whats-new/2020/07/announcin... For best results, run Graviton on a Graviton: https://aws.amazon.com/ec2/graviton/

Naming things is difficult.

Not according to git!

We can just call this: ad58cd9088995cfb528187b11c275dad60ce2ec5

And the chip: 59b54f61dd17c27744e884542e35b34172e2cc79

So easy!

Post reply on HN