[ 
https://issues.apache.org/jira/browse/CASSANDRA-6572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lyuben Todorov updated CASSANDRA-6572:
--------------------------------------

    Attachment: 6572-trunk.diff

The process goes like this:
# We enable recording via JMX SS#enableQueryRecording
# Insert n number of queries
# Replay queries to a new cluster using tools/bin/workloadreplayer

Running through an example:

# JMX Call to SS#enableQueryRecording where we supply parameters of 5 for 5MB 
log limit, 4 for record ever 1/4 queries and finally 
{{/var/lib/cassadra/querylog}} as the directory for the logs
# Insert 100k rows
This should result in 2 query logs, one of which is 5mb and has been renamed to 
store a timestamp in its name, the other will be named QueryLog.log. Between 
the two logs there should be 25k queries.
# Replaying the logs is done via the replay tool (workloadreplayer) where we 
first supply the directory of the query logs and then various flags ([see git 
branch 
here|https://github.com/lyubent/cassandra/commit/526672982870bec49e5b234e8d11ef5e1f17cd28#diff-91cd490dd94b74e10ade733f61dc6ab7R207])
 e.g:
{{./tools/bin/workloadreplayer /Users/lyubentodorov/Desktop/Log/ -t 1000000}}

Concerns:
Two synchronize blocks (one in 
[QueryProcessor#maybeLogQuery|https://github.com/lyubent/cassandra/commit/526672982870bec49e5b234e8d11ef5e1f17cd28#diff-9c19942eca6c858baad84e942b3c7e21R402]
 and the other in 
[QueryRecorder#append|https://github.com/lyubent/cassandra/commit/526672982870bec49e5b234e8d11ef5e1f17cd28#diff-7d2a64c8ee2a2b78b3f1921e673b423eR73])
 have been added on the read path, but since these blocks will only be hit when 
query logging is enabled it shouldn't hinder performance where it matters most. 
I've used the thrift client so I'm not sure if queries routing will be optimal.

Feature branch [here|https://github.com/lyubent/cassandra/tree/6572], also 
attaching a patch for trunk. I'll patch this for cassandra-2.0 tomorrow :)

> Workload recording / playback
> -----------------------------
>
>                 Key: CASSANDRA-6572
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6572
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core, Tools
>            Reporter: Jonathan Ellis
>            Assignee: Lyuben Todorov
>             Fix For: 2.0.8
>
>         Attachments: 6572-trunk.diff
>
>
> "Write sample mode" gets us part way to testing new versions against a real 
> world workload, but we need an easy way to test the query side as well.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to