Hacker News new | ask | show | jobs
by cloudgeek 4030 days ago
Hi baldfat, I tried to be very careful with that wording. I'm not aware of storage platforms that allow you to embed actions into the I/O path using your own code. If you have examples where I am incorrect, please do share. Thanks!
1 comments

> kvpbase also allows you to program it - tell it what to do when data is read, written, or deleted - so you can offload heavy tasks from your app.

Isn't that exactly what "every database ever" calls triggers?

From the Postgres docs: http://www.postgresql.org/docs/9.4/static/trigger-definition...

> A trigger is a specification that the database should automatically execute a particular function whenever a certain type of operation is performed. Triggers can be attached to tables, views, and foreign tables.

Even NoSQL DB's like redis or riak have the ability to execute user-supplied Lua resp. Erlang.

http://docs.basho.com/riak/latest/dev/advanced/commit-hooks/

http://redis.io/commands/EVAL

Yes, but this isn't a database, it's an object store. Block, file, and object storage platforms have yet to implement similar functionality. Block and file platforms are in particular very closed.
Not really, Block systems are just glorified key:value databases.

Here are a few scalable open source block/object storage systems:

Lustre

Ceph

tahoe-lafs

XtreemFS

These are all opensource.

For example, if I wanted a fast global-coherent CDN, then all I need are webservers and GPFS, with some glue code to allow auth'd uploads/deletes. geographically scalable, with tiered storage levels.

If you want to run on dodgy hardware, then use XtreemFS. but you'll pay a performance price.

I'd be interested in a comparison in developer language(as in graphs code examples etc.), with a github link or similar.

We might not be using the same definition for "block". Happy to chat offline if you'd like to email me (joel@maraudersoftware.com). Cheers
What about riak's pre-commit hooks?
Appears to be only related to the write path, i.e. pre-write and post-write. Doesn't do anything for read, delete, rename, search. Also seems to be largely focused on validation. Thank you for pointing this out though.