Hacker News new | ask | show | jobs
Show HN: Kvpbase – a new way for developers to store data (kvpbase.tumblr.com)
25 points by cloudgeek 4030 days ago
5 comments

You might want to reconsider your Node.js callback API. The standard way of returning errors is via the first argument :

    callback(err, data)
while you suggest doing it like this:

    callback(data, err)
Apart from being an eyesore, it breaks compatibility with a ton of third-party libs like `caolan/async`.
Hi laggyluke, thanks for your comment. I'll check with a few developers I know - most of what I've seen has been the reverse but I'm not in node on a daily basis. Cheers
Just check the node docs.
Got it, changing now. Thanks
Thanks for the education laggyluke, much appreciated
This looks really neat! I took a look at your C# Sdk and it doesn't follow some of the standard C# conventions. Would you care if someone stepped in and helped with that? The naming conventions would make this Sdk stick out like a sore thumb in my source code.
Hi Adam, thanks for your comment. We wouldn't mind at all. In fact we're also getting ready to open up our trigger functionality so you can integrate code directly into the I/O path, and would love some help in that area too (i.e. integration of external libraries). Feel free to contribute to the SDK in whatever way you think makes it better, and drop me a line at joel@maraudersoftware.com if you're interested in the other piece too. Cheers
> kvpbase is the world's only fully programmable data storage platform.

World's Only always screams snake oil to me. Maybe I am being picky but I hate huge statements that are unnecessary and probably untrue.

Then stay away from Kickstarter! On the technology page today:

"HidrateMe, a smart water bottle that syncs to your phone"

and next to it

"Trago - The world's first connected smart water bottle"

https://www.kickstarter.com/discover/categories/technology

I have :) I think I have backed up three things which were all music projects and for a program I really appreciate (Krita).
Krita did a Kickstarter? Man have I been out of the loop.
They have done two: https://www.kickstarter.com/projects/krita/krita-free-paint-...

They basically pay for one full time developer and it really has worked this last year.

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!
> 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.
Couple of questions. 1/ Is it opensource? 2/ Does it support the S3 api? or just a custom/rest api 3/ What makes it more attractive then Ceph or Riak CS?
Hi Simon, 1) it is not. 2) it does not use the S3 API, but it is a simple and clean RESTful API. 3) happy to discuss directly (feel free to email me via the website), but in general it's simpler to get started, easier to use, and more flexible from a data management perspective.
I would love to know how it compares to RIAK. I'm not afraid to used used closed source software when the time is right. But RIAK has a long legacy and is open and free - and backed by commercial support if needed. When I went to download your product there was an incredibly long form. Maybe I'll check it out later, but perhaps you should reduce your barrier to entry.
Hi lucasjans, thanks for your note. The form should have been short and only a small set of fields required. We'll look into ways of optimizing that to reduce the appearance of friction. Happy to discuss your use case and how we feel about how we compare if you'd like to send me an email (joel at maraudersoftware dot com). Cheers
Not open source? Thanks. Now I don't have to waste my time and click the link.
I really like the code sample formatting on the kvpbase website. What do you guys use to do that?
Thanks eatonphil, it's mostly custom made, but we're using bootstrap's grid to help with the formatting/scaling.
Hi eatonphil, I'll check with Kevin (he's not on HN very often) and get back to you. Cheers