Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Seems the speed it really declines with the size of the inserted documents. My production data is a hash with 14-15 keys and string/int values of maybe 10 characters each

When I loop and keep generating these documents:

    to_insert = {}
    10.times {|i| to_insert["key#{i}"] = rand(33333).to_s * rand(6)  }
I get around 140/s. Without the insert() call, I reach 50.000+, so it doesn't seem to be the overhead.

With simple documents (3 keys, int values) I reach 350-400.

p.s. script @ https://gist.github.com/rb2k/5777997



Ah, I see. This is a known problem with the performance of the protobuf serialization library we're using in the Ruby driver (see https://github.com/rethinkdb/rethinkdb/issues/897). It bottlenecks the CPU and should be fixed in the next release.

In the meantime, you could try running a multithreaded/multiprocess script -- that would significantly increase throughput.

Sorry you ran into this -- it'll be fixed ASAP.


the driver doesn't seem to be threadsafe and just locks once I start using it in threads :(


Sorry -- the drivers are meant to be used in a way where you create a new connection in each thread. If you do it this way, things will work.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: