/dbmswt/ - Database Management Systems War Thread

Behold the amazing MongoDB strategy.
1. Create a shit product
2. Optimize the first hour of dev experience (doesn't matter if it turns into hell later) and produce fake benchmarks
3. OMG thousands of users
4. Get millions of $$$ in funding
5. Buy better companies and fix the product
And it fucking worked. MongoDB is not broken now. It persists data to the disk correctly, handles network partitions (jepsen.io/analyses/mongodb-3-4-0-rc3) and even has ACID transactions (mongodb.com/transactions). Truly amazing.

Attached: mongodb.jpg (250x250, 9K)

Other urls found in this thread:

cockroachlabs.com/product/cockroachdb/.
twitter.com/NSFWRedditImage

Mongo is a short term for mongoloid.
At least where I live.

The MongoDB team claims they didn't know that.

just use sqlite

fookin spacka

>6. everyone is happy

I don't see the problem OP?

I used mongodb for a few projects. And even when the project was small, mongodb was slow and just sucked.
When you really need to store documents, just use the postgresql jsonb datatype.

Not those who got tricked.

Thank ALLAH I never fell for the NoSQL meme, NoSQL should only be used as a secondary store/cache

SQLite does JSON now. It's actually a really neat API.

Haven't used mongodb, but being able to store json either as a native type in postgres or just jsonified in mysql has proven really useful from my experiences at different companies

i used mongo db at work and couldnt do joins between two tables
am i dumb as shit or its impossible

It has no joins built in. You have to do them manually in your code like it's the 1960s.

Postgres when you need relations. Cassandra when you dont.

Why Cassandra and not CouchDB or Mongo or something?

Who /graph/ here?

where cassandra really shines is it's architecture is masterless and scales linearly. I've moved databases from datacenters with zero downtime. We've had servers go down on the weekend and dont have to mess with anything (assuming we have enough redundancy). You set something called a replication factor with value N, and that sends the rows to N nodes meaning you can survive a loss of N-1 servers. When you need to scale you just throw more hardware at it.
Im not going to claim it's the most fun to write queries and such (but when has that ever been fun?). It's similar to SQL. It's design by read so you design your tables by the queries you need to run not just by some standard design principles. This results in some duplicate data in separate tables but disk space is cheap now. The largest benefit is the less pains you encounter in production

Sounds pretty good. CouchDB can do master/master replication, but failover isn't always smooth. The way you describe Cassandra, it's closer to something like Riak or FoundationDB but with actual tables.

yeah cassandra isn't painless. The pains you encounter are mostly in development but it makes up for it orders of magnitude in production pain reduction. And it's not always the right choice. Sometimes you do need relations or graphs, and in that situation you wouldn't want to use it. I haven't used Riak or FoundationDB but i will take a look. Cassandra is used by a lot of big companies so knowing it is quite marketable. A good read for cassandra is the dynamodb paper ("Dynamo: Amazon’s Highly Available Key-value Store"). It has a lot in common with dynamodb. Also an interesting read is the bigtable paper (Bigtable: A Distributed Storage System for Structured Data).

I read the BigTable paper a while ago, but I haven't read the Dynamo one. Thanks for recommending it, user.

I have not actually used Riak, only read a book about it. I think it is more or less a legacy database at this point because the original company is dead, but people consider it solid. FoundationDB is an active project and very impressive. It has the most extensive test network suite ever. It was proprietary, but Apple bought for their own purposes and later open sourced it. When I used it in a toy web app the API took some adjusting to, but it wasn't difficult to use. FDB is what I'd go for if I had a problem that required massive amounts of redundant non-relational storage. I say, check out both.

Australia?

Attached: flag.jpg (1200x800, 73K)

I've used MySQL and Firebase before for work and personal projects. Should I learn MongaDB or DynamoDB from AWS?

I thought that was general knowledge..

Anyone experience with basex?

>mongo
Could they have chosen a worse name.

I present to you cockroachlabs.com/product/cockroachdb/.

Attached: literal cockroach.jpg (830x500, 29K)

So it's not consistent?

It is consistent. This is supposed to be the cockroach's head.

Attached: 1537301890442.png (830x500, 125K)

Germany

>tfw you index every column in your database so it will run super fast

Attached: 1532999721314.jpg (325x325, 19K)

If you're looking for that check out datomic. It's interesting.

How about Spastic Storage?

so how do you go around having no way to sort at query time?

no skip feature is also pretty crazy.

Scaling linearly is one of those things that sounds useful but people forget that a single beefy server can do a LOT. And it performs a lot better within that range and is easier to manage.

I'm not saying you don't need it, but the vast majority of people who are looking for "scaling" are falling for a meme. A single good postgres server is better 99% of the time (with replicated slaves... er... "childs" for equivalent safety)

Also the more complex your "highly available" system is with its "automatic failover" the more likely human error or some black swan event is going to fuck you up really hard

>a single beefy server can do a LOT
True. Doesn't StackOverflow run off one DB server?

I mean, it's better than having no indexes.

its developed in turkey?

NYC

Attached: Joe's_Apartment.jpg (220x314, 31K)

I thought the point of mongo/nosql was no joins? You just use $populate or refs or some shit. or just embed the related doc I guess