Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replaying on rds #1

Open
rbase8888 opened this issue May 25, 2022 · 5 comments
Open

replaying on rds #1

rbase8888 opened this issue May 25, 2022 · 5 comments

Comments

@rbase8888
Copy link

rbase8888 commented May 25, 2022

some definitions

v1: (EC2) aws account is a single gigantic lift and shift approach with no proper redundancy, configuration management, or orchestration

v2: (RDS) is a set of separated accounts that follow aws best practices, fully leveraging aws services as the first option starting completely with configuration as code

ok now the issues im experiencing

workload tools is collecting xevents fine, and storing them for replay from v1 - but when I try to replay sql statements on v2 there are two issues -

  1. prepared statements do not contain all the metadata in v2 to run properly and i would need to update the statement in the workload tools db to get it to run without the metadata. is there a configuration in workload tools to strip that out so prepared statements are more portable?

  2. overall when workload tools replays the sessions in v2 i get quite a few locks than when they are replayed manually. is there an isolation level being set too aggressively? some other workload tools session config that needs to be dialed back related to transactions or locking? to restate, rerunning these same queries manually don't seem to have the same problems

i will be poking around after this post to determine if there is a solution and i will post if i find any thing
best
Rob

@spaghettidba
Copy link
Owner

Hi Rob,

I'm not sure I understand what you mean with "metadata"? Can you give an example?
Regarding locks, WT replays all the commands, including SET TRANSACTION ISOLATION LEVEL commands. It should hence use the original isolation level. Have you investigated the isolation level being used, compared to the one you get when running manually?

Thanks
Gianluca

@rbase8888
Copy link
Author

hey,
is there a way to set the SET TRANSACTION ISOLATION LEVEL configuration for replaying the traffic?
if that makes since lol
best

@spaghettidba
Copy link
Owner

Currently no. It is something that we could discuss implementing. How would you like it to behave?
I am not sure I can prevent the original transaction isolation level from being used (could be inside stored procedures and the like). We can at least try.

@rbase8888
Copy link
Author

rbase8888 commented Jun 27, 2022

ok so we were able to get around the locking issues we were experiencing.. on our rds instance we changed our MAXDOP from "unlimited" to 1 and increased out parallelism from 50 to 100.. so if any one else is experiencing lots of weird locking that could help.. we are still having issues running prepared statements tho... there seems to be missing metadata from when we try to replay the ec2 traffic on our rds instance.. the transaction isolation levels are the same.. any other thoughts?
Warn - WorkloadTools.Consumer.Replay.ReplayWorker : Worker [200] - Sequence[26742921] - Error: Could not find prepared statement with handle 48479.

@spaghettidba
Copy link
Owner

Yes, I know that prepared statements are a weak spot of WorkloadTools. I am trying my best to honor prepared statement executions but some escape my efforts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants