The database world is very big and it is very difficult to compare multiple databases with each other. The reality is that every database organization talks about the unique features of their database in such fashion that each database is the best among the competition. When I go for a database consultation, my customers often ask, which is the best possible database out there in the industry which can handle different operational workloads efficiently. If you search on the internet, you will realize that there are tons of the database products out there. In this blog post we will discuss about how we can select the best possible database with the help of YCSB Benchmark.
Before we continue further, let us understand what is YCSB Benchmark.
YCSB Benchmark
As per Wikipedia – The Yahoo! Cloud Serving Benchmark (YCSB) is an open-source specification and program suite for evaluating retrieval and maintenance capabilities of computer programs. It is often used to compare relative performance of NoSQL database management systems.
So in the simple words – we can use this benchmark to compare multiple open source databases and find out which one is the most efficient database. This benchmark was originally developed by the research division of Yahoo! in the year 2010.
The best part of the YCSB benchmark is the extensibility, it can be easily extended to support new workloads for absolutely new system.
The best part of the YCSB benchmark is the extensibility, it can be easily extended to support new workloads for absolutely new system.
Here are three major characteristics of the cloud serving system.
- Scale-out
- Elasticity
- High Availability
This particular benchmark focuses the various available tradeoffs in the cloud system. Here are the major tradeoffs for the cloud serving systems.
- Read performance versus write performance
- Latency versus durability
- Synchronous versus asynchronous replication
- Data partitioning
Additionally, the benchmark process is done in various different tiers.
- Tier 1—Performance
- Tier 2—Scaling
- Tier 3—Availability
- Tier 4—Replication
We can benchmark new database system via writing new classes for read, insert, update, delete and scan methods. I, personally, believe this particular behavior of the benchmark has made it extremely popular in the big database industry.
Recent Benchmarking Exercise
Recently solution architecture from the NuoDB ran a benchmarking exercise for Google Cloud Spanner, CockroachDB and NuoDB. They ran the following workload which are standard in the YCSB benchmarks –
- A – Heavy update (50% read, 50% update)
- B – Mostly read (95% read, 5% update)
- C – Read-only (100% read)
- D – Read the latest inserted (90% read, 10% insert)
- E – Scan the latest inserted (90% read, 10% insert)
- F – Read-modify-write (50% read, 50% update)
Here are three major graphs from the YCSB Benchmarking.
This graph measures the number of transactions per second for each database during peak throughput. In all five of the tested workloads, NuoDB significantly outperforms both Cloud Spanner and CockroachDB.
This graph measures average latency experienced by the application for READs during periods of peak throughput. Minimal latency is ideal for the best user experience.
This graph measures average latency experienced by the application for UPDATEs and INSERTs during periods of peak throughput. Minimal latency is ideal for the best user experience. Note that Workload C is not represented here as it is a READ-only workload.
Conclusion
You can clearly see that NuoDB is flexible and fast. It can achieve superior performance for throughput and volume. You can read about this entire benchmarking exercise over here: Benchmarking Google Cloud Spanner, CockroachDB, and NuoDBND.
I suggest you download NuoDB and try it out yourself.
Reference: Pinal Dave (https://blog.sqlauthority.com)
First appeared on YCSB Benchmark and Latest Evaluation With NuoDB