Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NoSQL technologies, use cases, strengths and weaknesses [closed]

I really interesting in non relational databases, but due the many reason familiar only with the small part of it. So I want to list all NoSQL technologies you use with basic use cases, pros and cons.

If you have some specific issues during the work with some technologies, interesting experience, etc. you are welcome to share it with community.


Personally I worked with:

Mongodb:

Usecases: For my opinion is one of the best if you need good aggregation features, automatic replication. Good in scale. Have many features which allow using it like everyday use database and if for some reason you don't want to use SQL solution - Mongo could be the great choice. Also mongo is great if you need dynamic queries. And also mongodb support indexing - it's also important feature.

Pros: Fast, good scale, easy to use, internal geospatial Indexes

Cons: Comparatively slow write operation, blocking atomic operation could make a lot of problems. Memory consuming process could "eat" all available memory.

Couchdb:

Usecases: I use it in Wiki liked project and I think for that cases is the perfect database. The fact that each document automatically saves in new revision during update helps to see all the changes. For accumulating, occasionally changing data, on which pre-defined queries are to be run.

Pros: Easy to use, REST oriented interface, versions.

Cons: Problem with performance when amount of docs is quite huge (more than half a million), a bit pure query features (could be solving with adding Lucene)

SimpleDB:

Usecases: This is dataservice from Amazon, the cheapest from the all stuff they provide. Very limited in features so the main use case is using it if you want to use Amazon service, but paying as less ass possible.

Pros: Cheap, all data stored like text - simple to operate, easy to use.

Cons: Very much limitation (document size, collections size, attribute count, attribute size). The way that all data stored like a text also creating additional problems during sorting by date or by number (because it use lexicographical sorting, which need some workaround when saving date or numbers).

like image 876
Ph0en1x Avatar asked Oct 22 '22 19:10

Ph0en1x


1 Answers

Cassandra

Cassandra is perfect solution if writing is your main goal, it's designed to write a lot (in some cases writing could be faster then reading), so it's perfect for logging. Also it very useful for data analysis. Except that Cassandra have built in geographical distribution features.

Strengths Supported by Apache (good community and high quality), fast writing, no single point for failure. Easy to manage when scale (easy to deploy and enlarge cluster).

Weaknesses indexes implementation have problems, querying by index have some limitation, and if you using indexes inserting performance decrease. Problems with stream data transfering.

like image 101
silent_coder Avatar answered Oct 27 '22 09:10

silent_coder