-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Good Migration Plan? #151
Comments
What's the problem with bootstrapping a twemproxy + redis setup with a rdb file through redis-cli? |
I assume you're referencing this post? #33 |
twemproxy is just a proxy for redis. I believe redis-cli uses redis protocol to bootstrap a redis instance from a rdb file. The same behavior should work if redis (or many redises) are frontende'd by twemproxy |
I haven't researched this fully yet. But the high level idea is to convert rdb file to redis commands and use redis-cli to populate the redis cluster through twemproxy. This might require supporting --pipe behavior in twemproxy to figure out when data upload ended |
Ah right, that's what I was referring to with the rdbtools. The problem with an rdb file is you need to convert it to the redis protocol spec before you can import it using the pipeline command. Converting large rdb files is problematic when you encounter invalid chars, etc. Just was hoping for a better method. |
@dmcfaul how about using this step. |
Hey guys, sorry for delayed response, got caught up in other things. Tried loading rdb and writing to aof today, however this isn't working as I'm runinng out of memory getting the following error: I'd prefer not to have to bump this up as I'm already on an aws m2.4xl (64GB). Thanks |
can't we fix rdbtools. I'm sure the fix would be helpful to a lot of folks in redis community |
That is my next step, will be looking into it over the next few days, I'll keep this thread up to date if I find a fix. |
Just to update this thread: in the end I've decided to migrate my .rdb file from my current single server setup and startup each of the redis nodes connected to twemproxy with the entire dataset. Although this is obviously overkill it appears to be the simplest way to migrate a large dataset currently. I fixed several issues with rdbtools that were due to character encoding in my dataset (not actual issues with rdbtools) and eventually was able to output my entire dataset to the redis protocol. However, the final dataset size was in excess of 60GB which was cumbersome to try and import through a redis pipeline. I turned off all timeouts on twemproxy/nutcracker but loading anything larger than a 1GB chunk at a time through nutcracker would result in the process being killed due to excess memory consumption on a machine with 64GB of memory. Thanks for the help manjuraj and charsyam. |
you can try this: https://github.com/idning/redis/tree/replay
|
@idning thanks very much, you are my life safer. |
We did a migration from a single redis server to a twemproxy managed pair of redis server nodes this way:
(If concerned about memory usage, can be done on a later time:) Any ideas on a better plan if someone would like to use 64 nodes instead of just 2 nodes? |
ref: |
Hello, I've been trying to find a solid migration plan from my current single server setup to twemproxy. Wondering if anyone can point me in the direction of something solid? Currently have a master setup that is replicating to slaves and I've been mucking about with rdbtools to try and convert my rdb file to pipelined commands and then sending them to my twemproxy setup through redis-cli. Pretty hit or miss results there, however.
After searching for several hours, decided I'd ask. Hopefully this is in the correct place.
Thanks!
The text was updated successfully, but these errors were encountered: