Summary: | "NoSQL solution" is today a term that represents a wide spectrum of ways of storing and requesting data. From graph-oriented databases to key-value databases, each solution has been developed to be the best choice in a specific case and for given parameters. As NoSQL solutions are new, there is no guide explaining which solution is best depending on someone's use case. In the first part of this document, we give an overview of each type of solution, explaining when and why a certain type of solution would be a good or a poor choice for a given use case. Once a company has chosen the technology that seems to fit well its need, it faces another problem : how to deploy this new type of data store. Directly deploying a production store would certainly result in poor performances, because some pieces of knowledge are absolutely necessary to implement an efficient NoSQL store. However, there is no "best practices" guide to get this knowledge. This is the reason why building a prototype, with fewer resources, can improve everyone's knowledge. Then, with the experience retrieved from this first experience, engineers and technicians can deploy a store that will be much more efficient than the store they would have deployed without the prototype experience. For this reason, we decided to implement a MongoDB prototype store. Building this prototype, we have tested several configurations that resulted in different levels of performance. In the second part of this document, we explain the main result we got from our experiments. These results could be useful for other companies that are willing to use MongoDB, but they mostly show why a specific knowledge is essential to deploy a good NoSQL store.
|