Alex Bordei on Scaling NoSQL Databases
Network performance, virtualization and testing are some of the considerations to address the performance and scalability issues with NoSQL databases. Alex Bordei wrote about scaling NoSQL databases and tips for increasing performance when using these data stores. He is also a co-host of the webcast on best practices for optimizing performance on NoSQL databases.
Alex discussed the following five areas for increasing NoSQL database performance.
Linearity in Scaling: Scaling distributed applications just by making them parallel doesn't necessarily increase performance. And, the hardware prices can grow exponentially as their specifications increase. Alex suggests to find the sweet-spot between scaling horizontally and vertically where you can get the best performance for the price spent on the hardware setup. This setup can be different depending on the application design and the use case for which a NoSQL database solution is used.
Testing: The best way to get an idea of how your particular software stack scales is to test it. You can test your application either on a virtualized environment or bare metal cloud both of which allow you to create the test environment on multiple machines without spending lot of money or time.
Memory & CPU Resources: Memory and CPU details really matter in the performance and scalability of NoSQL databases. Memory access speeds vary from one specification detail to another (for example, from 1333 MHz to 1866 MHz DIMMs) which can be a significant factor for databases like Redis or Couchbase. Alex suggests to not assume the speed of RAM but pay attention to details of memory specifications. On the CPU side, Hyper Threading and turning off virtualization (Intel VT) where it's not required, can improve the performance.
Network Performance: Network latency and throughput impact the performance of the overall setup. Virtual machines (VMs) will give lower network connectivity compared to the bare metal server infrastructure. So, it's important to assess the network performance for overall increased performance of the database solution.
Virtualization with NoSQL databases: Virtualization provides the flexibility to use a single machine for multiple purposes, with reasonable security for non-critical business data. Unfortunately, it also influences memory access speed, which is critical for some NoSQL databases. NoSQL and big data vendors like Datastax (provides commercial support for Cassandra database) and Splunk recommend bare metal for installing their software products.
Alex stresses that no matter how fast and scalable the software, the quality of every component in the underlying hardware matters. Also, investing in testing efforts will save you time in the long run.