Improving Kieker′s Scalability by Employing Linked Read- Optimized and Write-Optimized NoSQL Storage

Kieker's monitoring output can be persistently saved into logs by utilizing relational databases or file systems. Currently, there is no support for noSQL storage. As part of our Regression Benchmarking Execution Environment (RBEE) we introduce a self-contained system offering noSQL storage capabilities and acting as gateway between Kieker and RBEE. We show, how polyglot persistence can increase Kieker's scalability by employing separate read-optimized and write-optimized noSQL storage. For this purpose we extend Kieker to store its monitoring output in Apache Cassandra, which is a write-optimized wide-column noSQL database. For the analysis of the generated monitoring output we are using ElasticSearch, a read-optimized document store noSQL storage. We are interlinking read-optimized and write-optimized noSQL storage within RBEE. To ensure scalability, we are employing a container infrastructure. The mentioned noSQL storages and the linker are operating within one single Docker container which scales horizontally. For generating reference values, we instrument a Java SE application with Kieker's file system writer and measure throughput and method's execution times. Consecutively, we instrument the same Java SE application with our Apache Cassandra writer and measure throughput and method's execution time. Finally, we will compare measurement results of Kieker's file system writer with the measurement results of our Apache Cassandra writer.