Over a million developers have joined DZone.

Interview with the Ghost of MongoDB Scalability

DZone's Guide to

Interview with the Ghost of MongoDB Scalability

· Java Zone
Free Resource

Managing a MongoDB deployment? Take a load off and live migrate to MongoDB Atlas, the official automated service, with little to no downtime.

Originally Written by Shane Johnson

Have you heard the rumors about the Ghost of MongoDB Scalability? Do you know someone who came close to finding it? Have you been haunted by it?

These are the questions that keep me up at night.

I’ve been searching for the Ghost of MongoDB Scalability for as long as I can remember. Finally, I came to the conclusion that it was time for experts. I reached out to Ghost Hunters of SyFy fame. If anyone could help me find the Ghost of MongoDB Scalability, it would be this crack team of paranormal investigators.

It took us three months, but we found him and I interviewed him.

First things first, are you a ghost?

Ghost of MongoDB Scalability

So, for a time, you existed in the physical world?

Ghost of MongoDB Scalability
No, I did not. I was an ideal. I existed only to give the MongoDB community hope. That is the sole purpose for which I was created.

What happened?

Ghost of MongoDB Scalability
I was the light at the end of an endless tunnel. I faded.

I'm sorry to hear that. I’ve heard rumors of MongoDB scaling?

Ghost of MongoDB Scalability
If I install MongoDB on a server with a 6TB HDD and write 1.6B documents to it, is that scalability?

Well, I suppose it's not. Perhaps it's vertical scalability. What about horizontal scalability?

Ghost of MongoDB Scalability
If I make copies of it, is that scalability?

You’re referring to a replica set. I suppose it's not. However, you could scale reads if you sacrifice consistency or performance.

Ghost of MongoDB Scalability
That’s true, but I can’t scale writes.

What about sharding?

Ghost of MongoDB Scalability
I’d rather not talk about it, but I will. I could create a few replica sets, assign each one a subset of the data, and call them shards. However, it’s still inefficient because only one-third of the instances will handle write requests. If consistency is required, only one-third of the instances will handle read requests. Not to mention there’s routers, config servers, and arbiters. It’s ridiculous. MongoDB, at its core, is not designed for horizontal scalability. It’s an active / passive deployment, not an active / active deployment.

I’ve heard sharding is a challenge. To be honest, I’ve heard it invokes fear. Skeleton key? Shard key? I can’t remember.

Ghost of MongoDB Scalability
I do know of one person. Albert. You think the president has aged a lot over the past six years. You should see what happens to people who shard MongoDB.

Ghost of MongoDB Scalability shows me a couple of photos.

This is Albert before sharding MongoDB. This is Albert after sharding MongoDB. These photos were taken one year apart.

Wow. I have one last question. Do you know the Ghost of MongoDB Cross Data Center Replication?

Ghost of MongoDB Scalability

With that, it was gone. Does it know the Ghost of MongoDB Cross Data Center Replication? I don’t know for certain, but I suspect it does.

That’s one mystery solved. Now, it’s time to find the Ghost of MongoDB Cross Data Center Replication. Perhaps I will start by checking with the community over at TSS.

Would you like to know more about the interview?

Hacker News


MongoDB Atlas is the easiest way to run the fastest-growing database for modern applications — no installation, setup, or configuration required. Easily live migrate an existing workload or start with 512MB of storage for free.


Published at DZone with permission of Shane Johnson, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}