Hacker News new | past | comments | ask | show | jobs | submit login
RethinkDB: new documentation site, cookbook with examples, practical guides (rethinkdb.com)
109 points by mglukhovsky on July 31, 2013 | hide | past | favorite | 28 comments



I've been playing around with Rethink for a couple of days now, and I just can't get over how nice the admin web UI is. Scaling up machines is quick and easy, and it's pretty simple to resolve master/secondary issues when one of the servers goes down (or it's shut off).

I'm seeing some performance issues, and I'm definitely going to spend some time messing with my test data and optimizing it for Rethink. Right now, a couple of basic counting queries take ~1 second when the MySQL equivalent takes milliseconds. The other issue I'm having is that I simply did an import of existing data from MySQL that contains dates, which are treated as strings, so I'll need to convert the dates into a native format (integer based timestamps) before I can get some more performance numbers.


Keep us posted on the performance issues you experience-- the team hangs out on IRC (#rethinkdb on freenode) and are usually more than happy to help work through these problems. If you identify a specific query that isn't performant, please open an issue on Github as well (http://rethinkdb.com/docs/comparison-tables/).

Also, RethinkDB 1.8 (shipping next week) will include native date support. You can follow the progress and discussion of the planned interface here: https://github.com/rethinkdb/rethinkdb/issues/977?source=cc


Great. I've been meaning to jump on IRC with some questions, but haven't had the time to do so yet. I'll definitely be waiting for 1.8.


Anyway timestamps are better. First reason is difference in implementations of "date"-formats in almost each database, and second reason - integers will always faster than strings or structures.


Awesome to see. The docs have been pretty good even prior to this update, but it's nice to know they get some love in an open-source project.

(I'm preparing to launch a Go application w/ RethinkDB up back using the [community] Go driver: https://github.com/christopherhesse/rethinkgo — couldn't be an easier DB to use without an ORM)


I'm going to use same stack (and driver) for side-projects ;) really attractive DB and language.


Awesome to hear!


Is RethinkDB now "production-ready"? I recall some people using it production, however I think the devs still don't call it production ready.


They track "production ready" with the following item in their tracker:

https://github.com/rethinkdb/rethinkdb/issues/1174


There are dozens of production projects built on top of RethinkDB. We're starting to work with customers to publish case studies about their infrastructures and applications.

As bjg pointed out, you can track what we internally consider production-ready (when we hit 2.0) here: https://github.com/rethinkdb/rethinkdb/issues/1174 (although RethinkDB is already really good for doing real work, and we support all our users).


I've following this project for a few months now. Most of it really sounds to good to be true, so I waiting for someone to use it in a big application where reliability is important. Is there anyone using it in production for a big application? Would love to hear about it.


I guess it depends on what you mean by reliability - from the FAQ:

RethinkDB is not a good choice if you need full ACID support or strong schema enforcement — in this case you are better off using a relational database such as MySQL.


No.. I am not talking about full ACID support. Hardly any of the new object stores like MongoDB guarantee that in all conditions. I am talking about being generally reliable to store data and fetch data for a relatively important application on production.


Since the RethinkDB guys are usually quick to answer here:

How is the JVM driver for RethinkDB going? Are there any ORMs that work well yet?


There are a few community drivers worth noting:

- kclay's Scala driver (rethink-scala): https://github.com/kclay/rethink-scala

- esycat's Scala driver (scala-rql): https://github.com/esycat/scala-rql

- dkhenry's Java driver (rethinkjava): https://github.com/dkhenry/rethinkjava

As far as ORMs go, there aren't any for Java that I'm aware of. ORMs for other languages can be found here: http://rethinkdb.com/docs/frameworks-and-libraries/. There are several ORMs for JavaScript, Python, and Ruby so far.

We would love contributions for other languages. Shoot me an email at mike [at] rethinkdb.com if you're interested in building an ORM or community driver.


The Scala driver has some ORM features and I've been throwing around the idea of creating a java only version of the driver.. I guess you could use it now but would run into some of Scala odd method naming when trying to access from from java.


Great work with the new docs! I think there's a missing comma before the secondary index object argument in the cookbook at "Efficiently retrieving multiple documents by secondary index":

  r.table("posts").getAll(1, 2, 3 {index: 'author_id'}).
    run(connection, function(err, result) {
        if (err) throw err;
        console.log(result);
  })


Thanks! I just pushed a fix for that.


Has anyone used RethinkDB with Heroku? I know there isn't an official add-on, but I was wondering if anyone had made it work. If so, I'd be interested to hear of anyone's experience, good or bad.


As mglukhovsky has mentioned RethinkDB Cloud has a plugin in beta at the moment. If you would like to use/test it let me know at cam@rethinkdbcloud.com. We recently launched free shared instances at https://www.rethinkdbcloud.com/ for people to use.


It looks like someone is working on building a service provider for RethinkDB: https://www.rethinkdbcloud.com/


There isn't an official add-on yet, but as mfenniak pointed out, RethinkDB Cloud has an add-on in beta: https://addons.heroku.com/rethinkdb-cloud


Quick word to say I really like the website.. congrats on the team behind it! : )


Thanks! We'd love feedback from other people on usability, content, and design.


Awesome job, congrats!

Do you plan to implement automatic re-election in case of master failure?


It's on the roadmap -- See https://github.com/rethinkdb/rethinkdb/issues/223 to track progress.

There is no precise ETA for now though. Feel free to comment on the github issue if you need it. We build our roadmap on the feedback we get from our users : )


I would also point out that it's included in the list of requirements before we declare RethinkDB production-ready (see https://github.com/rethinkdb/rethinkdb/issues/1174).


It's actually listed as a maybe there.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: