RavenDB was by far the worst document storage "solution" I have ever had the displeasure of working with.
- Loading data crashed the service.
- Queries crashed the service.
- Monitoring applications crashed the service.
- It didn't support clustering or HA of any kind.
- Sometimes it just worked for no good reason.
- Often it broke for completely random reasons.

  • 2
    Try MongoDB?
  • 0
    @GinjaNinja we did... It solved some problems and created hundreds more.

    RavenDB had one bullet point that MongoDB doesn't have: It returns the data you ask for every time... (assuming the service was up and working)

    MongoDB likes to guess sometimes and give you stale data.

    Elasticsearch is where it is at. Bring resources though...
  • 1
    Errr... stale data from a MongoDB database?

    I think there's an underlying problem with your concurrency there, buddy?
  • 0
    I've never seen the RavenDB service crash. What the hell are you doing to it?
  • 1
    @configurator We might have been trying to stuff ~2.4 million documents, each one was several hundred KBs of json... 😇

    Everything was updated daily as a dump/reload.
  • 1
    @GinjaNinja Yes, load...

    MongoDB simply couldn't handle what we threw at it and when things get busy in MongoDB, it starts guessing...
  • 0
    @T3hbeowulf while that's a heavy load beyond the scope of what RavenDB was designed to handle, I've tested it on similar loads and had no issues. I'm guessing another part of the issue is your indexes.
  • 0
    @T3hbeowulf if you want to chat about it I'm confident I can make it work for you.
  • 1
    Why the daily dump/reload, if I may ask?

    I'm guessing a database that size would take some strain having to do that job every day! Perhaps do that in off peak times? Or share the load with another server or 3? MongoDB is excellent for distributing across servers 😎
  • 1
    @configurator I appreciate the offer but that project has long since moved on away from both MongoDB and RavenDB.
  • 0
    @GinjaNinja Poor design choices and difficulties with getting RavenDB to handle partial document upserts reliably.

    Every day many of the documents had some very trivial change in a nested node.
    RavenDB seemed to struggle (at the time we used it) with upserts, and would often return the originally written document.
    MongoDB worked better but the volume of changes caused significant drift between nodes. Eventually, nodes would go offline cause load spikes which exacerbated the problem unless things could settle down.

    After all things tested, the best "solution" presented was to treat RavenDB and later MongoDB as caches and just dump/reload them daily to avoid inconsistent data and instability.
Add Comment