What happens if an entire cluster goes down? There can be a natural disaster such as a hurricane or a power failure in an entire region that lasts longer than most backup plans allow for. Do you have a disaster recovery plan? With a secondary database in a different geographic location, you can continue to operate uninterrupted. One customer I’d worked with had been in operation 100% of the time in the 4 years since they went into production with NoSQL and continue to grow that record.
With good planning and management on the part of Dev and IT, and the right NoSQL database architecture and design, it is possible to have the database up and running all the time.
* Full-Featured. As a second customer determined during their evaluation, one NoSQL solution could do what they needed by integrating a dozen components and it would fulfill everything on their checklist. But realistically, how well would it be able to operate, and still be able to achieve over 25,000 transactions/s, support over 35 million global browsers accessing the main site on multiple types of devices and update over 10,000 web pages as the events were happening without giving them a lot of grief?
It is certainly easier to use a solution that has all the features “under one roof” so to speak, so they work together seamlessly and require fewer resources on your part.
* Performance. How well can your database do what you need it to do and still have reasonable performance? There are two general classes of performance requirements for NoSQL.
The first group is applications that need to be real time, often under 20ms or sometimes as low as 10ms or 5ms. These applications likely have more simplified data and query needs, but this usually means having a cache or in-memory database to accommodate these kinds of speeds.
The second group is applications that need to have human reasonable performance, so we, as recipients of the information don’t notice the lag time too much. These applications may need to look at more complex data, spanning larger sets and do more complicated filtering. Performance for these are usually around .1s to 1s in response time.
And there is the combination, where you have a system of record that cannot be replaced, and a NoSQL database is used as a cache to speed up the ability to use the information.
* Interface. NoSQL databases commonly have programmatic interfaces to access the information, supporting Java and variations of Java script languages, C, C++ and C#, as well as various scripting languages like Perl, PHP, Python, and Ruby. Some have included a SQL interface to support RDBMS users in transitioning to NoSQL solutions. Many NoSQL databases also provide a REST interface to allow for more flexibility in accessing the database – data and functionality.
Sign up for CIO Asia eNewsletters.