Since Amason launched SimpleDB, distributed data storage systems based on Key-value key values have received widespread attention, similar systems include Apache COUCHDB, and the recent blockbuster Google App Engine based on the BigTable Datastore API, there is no doubt that the distributed data storage system provides better lateral scalability, is the future direction of development. But at this stage, compared with the traditional RDBMS, there are some gaps and deficiencies. Ryan Park wrote about the 10 major deficiencies of SimpleDB:
1. Data integrity is not guaranteed
Distributed data storage systems such as SimpleDB are currently unable to implement the same strict integrity constraints as RDBMS, such as uniqueness constraints and foreign key constraints, so data integrity needs to be implemented in applications.
2. Data consistency is not guaranteed, resulting in a very poor user experience
SimpleDB do a write optimization, call the API only to write data to a SIMPLEDB server that returns write success information, then the data will be distributed to more SimpleDB servers, and the distribution is complete before the latest data can be queried. Therefore, it is necessary to deal with the data consistency problem caused by this query delay in the application.
3. Data aggregation will require additional coding implementations
SimpleDB does not implement such things as Join,group by,sum/average,sort, which need to be implemented in the application.
4. Complex queries and ad hoc queries are more difficult to implement
SQL standards have been available for many years, and the database engine has done enough to optimize some complex SQL queries. SimpleDB does not provide special support for overly complex queries and uncertain ad hoc queries, so simpledb is not well suited for OLAP applications such as data warehouses.
5. Data aggregation operation performance is worse than RDBMS
The RDBMS engine has done a lot of optimizations for join,group by and so on, and the optimizer can provide a way to use such as a hash join,nested loop join in different situations. Implementing these operations in your application may not be as efficient as a mature RDBMS. Of course, this is a bit far-fetched, the implementation of the application may be worse or better, from a distributed trend, the database will tend to do more and more simple data storage, computing more should be given to the previous application server to complete.
6. Data import and export, backup and other operations slower and more cumbersome
RDBMS provides a lot of mature data migration and backup tools, this is just the birth of simpledb, such as natural deficiencies, but this is not a problem, as long as there is demand and time, there will be tools.
7.SimpleDB is not as fast as you think.
Todd Hoff data in an article: Reading 10 records from a table in SimpleDB's 1000 records requires 141ms, 10 records from 100,000 records requires 266ms, and 1000000 from 10 records requires 433MS, This is significantly slower than an RDBMS. Of course, for distributed systems, the larger the amount of data, the greater the advantages. In the case of small amount of data, centralized distribution is certainly more advantageous than distributed.
8.RDBMS can also be good scalability
Examples of successful applications of RDBMS are listed, such as Facebook and LiveJournal using Mysql,myspace to use MS SQL server,salesforge.com to use Oracle. Through good application design, vertical data segmentation and horizontal segmentation, master-slave replication and clustering technology, traditional RDBMS can also achieve good scalability, supporting large web site system is no problem.
9. Super scalability is a kind of excessive design
Technology should be applied as a principle, and excessive design is a huge waste.
10.SimpleDB is very useful, but also used in the right situation
SimpleDB is not born to replace an OLTP database, its key-value storage structure is more suitable for processing semi-structured data. Good products also need to use the appropriate place to avoid weaknesses.
This article URL: http://www.ningoo.net/html/2008/top_10_reason_avoid_the_simpledb.html