Skip to content
forked from tjake/mvbench

Benchmark tool for comparing cassandra auto MV to manual MV

Notifications You must be signed in to change notification settings

Global19/mvbench

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MATERIALIZED VIEW BENCHMARK

Summary

This tools will run a synthetic workload against Apache Cassandra with the intention of stressing the system. It can maintain multiple views of data either manually (in app) or via Materialized Views (in server)

Workload Story

Imagine we run a music service that allows users to create playlists. The core table for our service is:

CREATE TABLE user_playlists
(
  user_name           text,
  playlist_name       text,
  song_id             text,
  added_time          bigint,
  artist_name         text,
  genre               text,
  last_played         bigint,
  PRIMARY KEY (user_name, playlist_name, song_id) 
);

Now with this information we can create add, update, delete playlists in our system. But we want to answer other questions using this data like:

Which users like the same song? Which users like the same artist? Which users like the same genre? What was the recently played tracks for a given user?

So our system maintains other views on this data (defined in the schema)

How to use?

   # Load the schema into your C* cluster
   cqlsh < bench_schema.cql
   
   # compile 
   mvn compile
   
   # run with server based materialized view mode
   mvn exec:java -Dexec.args=""

   # To with in app based manual view mode
   mvn exec:java -Dexec.args="--manual" 

   # To see all options
   mvn exec:java -Dexec.args="--help"
   

After running, there will be a detailed csv files under ./reports/view and ./reports/manual

by @tjake

About

Benchmark tool for comparing cassandra auto MV to manual MV

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%