NoSQL solutions are now vital to many applications. When evaluating the use of NoSQL in new projects or upgrades to existing projects, project managers should take close examination of the potentially hidden costs of NoSQL.
Have you experienced some hidden costs in your NoSQL implementation? Let us know in the comments.
Learning NoSQL is not for the faint at heart. Many NoSQL applications are still in relative infancy, and thus by utilizing these technologies early adopters get to experience the pain of being pioneers. Although some would argue learning new database design patterns and implementation methods is not as bad as getting dysentery or typhoid, the benefits of successfully learning and mastering your NoSQL database is equal to that of frontiering the Oregon Trail. Be sure to consider the considerable costs of developer time and resources needed to learn to efficiently and effectively utilize these new technologies.
New software often requires new hardware to be fully utilized. In fact, many NoSQL databases seek to improve performance by leveraging hardware that is more readily available now than when traditional RDMS databases were initially developed. Memory is one of these key resources that NoSQL databases often heavily rely on for performance boosts, as high memory servers are much more readily available than in the past. However, the high reliance on memory creates performance issues when physical disks are needed. For instance, if your MongoDB indexes can’t fit into memory, the seek times on your hard drive become vital to performance. To aid in performance, Raid 10 arrays or SSDs are recommended. These features are not cheap, especially when paired with a high-memory instance on your cloud provider. Where traditional relational database systems can perform efficiently on older hardware, NoSQL solutions often flounder. If newer hardware is not available, utilization of NoSQL may be limited.