Live data from Hacker News

We use RethinkDB

blog.workshape.io

1–10 of 78 posts

Re: We use RethinkDB

#3
Things I love about RethinkDB as a NodeJS dev:

- first class support for JS bindings, unlike mongoose which wraps the super low level mongodb js library into something palatable but crashes in a horribly undebuggable way.

- server-side joins

- a nice web UI for monitoring and running queries packaged up with the service

- public docker images that are super simple to run

- easy clustering

Re: We use RethinkDB

#4
I've always wondered what's the best way to integrate a database engine with the application.

1) Use a middleware/ORM/Whatever which abstracts away the query-lang of the db, and provides a pluggable multi-db support

2) Just use native db query language with all exclusive features of the engine.

Companies like workshape.io, why do they prefer the latter?

Re: We use RethinkDB

#6
From RethinkDB docks [1], I am still a bit confused how this locking system works for read/write and also a bit skeptical regarding their claim that 'in most cases writes can be performed essentially lock-free'.

I am using MongoDB and didn't have many issues when my databases had 120,000 documents either, the problem began when we hit the millions... The combination of write locks and our need for dynamic queries (meaning: we can't index) made the database the worst performance bottleneck in our system by far. Although I must be honest that we haven't yet tried MongoDB's new 3.0 version that promises a boost in performance [2] and also has 'document-level locking and compression' [3]

Is anybody aware of any benchmark that perform random writes (inserts/updates) and non-indexed reads for RethinkDB? (Is it even a common use scenario, anyways?)

[1] http://rethinkdb.com/docs/architecture/#how-does-rethinkdb-e...

[2] http://www.mongodb.com/mongodb-3.0#performance

[3] http://docs.mongodb.org/manual/release-notes/3.0/#wiredtiger...

Re: We use RethinkDB

#7

From RethinkDB docks [1], I am still a bit confused how this locking system works for read/write and also a bit skeptical regarding their claim that 'in most cases writes can be performed essentially lock-free'. I am using MongoDB and didn't have many issues when my databases had 120,000 documents either, the problem began when we hit the millions... The combination of write locks and our need for dynamic queries (me…

> I am still a bit confused how this locking system works for read/write and also a bit skeptical regarding their claim that 'in most cases writes can be performed essentially lock-free'.

Hi, Slava at RethinkDB here.

RethinkDB uses MVCC to do looking. Essentially, when we lock down a block for a write, we make a copy of the block. If another query comes along that wants to read, it reads from the copy. When the write completes, the old copies are destroyed.

There are lots of details I'm glossing over -- optimizations to avoid copying too much, copying entire subbranches of the btree to have a consistent view of the shard, etc. All this stuff isn't unique to RethinkDB -- it's pretty standard database internals stuff, and we haven't done anything new in that department. It's just an implementation of standard database architectures (as far as the caching/query engine/storage engine are concerned).

Re: We use RethinkDB

#8
+1 to using RethinkDB! I'm also using RethinkDB in production, and I love it! The only issue is that you have to set up persistent filters via iptables in addition to having an authKey. They do have a guide[0] for that, however they do not provide any instructions for ensuring that the filters on iptables stay up, or how to restore them if they are temporarily wiped out :/

[0] http://rethinkdb.com/docs/security/

Re: We use RethinkDB

#9
We use RethinkDB in production and our main frustration lies around the lack of automatic failover. We're looking forward to 2.0, which is supposed to bring automatic failover (using Raft for consensus) to RethinkDB.

Re: We use RethinkDB

#10

Why is it so trendy these days to say that everything was built "with love"?

It's a way to imply that the all of the fiddly little details don't suck.

Everyone's run into that library, SaaS product, or other bit of software where all of the features sound awesome, it appears to do exactly what you need ... and you'd rather debug a plugged in blender than actually use it.

Post reply on HN