Tech - NOSQL Tutorial - Part 2 (Overview)
I started looking at
various NOSQL databases like Hbase, CouchDB and MongoDB. I finally settled on
MongoDB, mainly because it was easy to setup in Windows. The name Mongo is
derived from 'humongous', interesting name! For more
details, you can refer - http://www.mongodb.org. As it says on the website, it is very
easy to setup and highly scalable. Here are my first set of statistics -
- Time to download the software (64 bit edition) - 2 minutes
- Time to setup the database - 2 minutes
- Time to get the database up and running - 1 minute
- Light foorprint. Easy to setup either single or replicated instances and to administer.
- Schema-free data storage. In other words, there is no need to define any data structure.
- Incredibly quick for reads and writes.
- Map Reduce (with Javascript).
- Very easy to scale horizontally.
- RESTful API's available to access the database.
Here is the next set of statistics around some complimentary software.
- RockMongo - Web (PHP) based administration console. Time to download - 1 minute. Time to configure - 1 minute.
- MongoLive - Web (Chrome App) based monitoring tool. Time to download - 1 minute. Time to configure - 1 minute.
One of the key features I wanted to try out was the performance of the database. So, I had to get a 'meaty' set of data. I generated my own dummy data with about 20 million rows and 10 columns.
I used the default mongoimport tool to import the data. It took about 3 hours to import. Next, I created the indexes. They took another 5 hours, a bit more time than I expected. All set now to test it. I also have a web page (using PHP) that queries the data based on the key. The time it took to access the data was 0.0083 seconds! Of course this is with 1 query running at a time. Wait for the next post on performance testing, it's MongoDB vs SQL Server 2008!
Click here for - Part 3.
Comments
Post a Comment