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
怎么手动指定bucket分布 #2
Comments
2013/10/30 Alex.F notifications@github.com
当需要手动对数据分配进行管理时,只需要用rsync 来拷贝若干个子目录(1/16的数据)到新的节点,
如果需要迁移多个区间,是可以一次做完的。多台机器的话,最好一台一台地来。
|
如果使用 beanseye ,就不需要定期使用 sync.py 对数据进行同步了,beanseye 自动做了这个步骤? |
没有,仍然是需要的。
|
使用beanseye管理4个beansdb服务器,设置N=2,beanseye会自动将内容分配到4台beansdb上面,并且保证每一份数据都有2份。那什么时候需要定期运行sync.py? |
最好设定定时任务,每分钟运行。如果数据没有差异,它会很快退出。 |
数据在存储的时候,会根据key算出存储到哪个bucket,然后查询该bucket存储的服务器(beanseye里面好像是默认每个bucket会存储到每台beansdb服务器上面),然后根据负载什么的算出实际需要存储的N个服务器,并写入。 当N小于服务器数目的时候,实际上只有N台服务器会写入同一份数据,其他服务器是没有这些数据。也就是有4个服务器,N=2情况下,1 2写入A数据,1 3 写入B数据, 1 4写入C数据, 2 3写入 D数据, 2 4 写入 E数据, 3 4写入 F数据,那sync.py 该怎么运行? |
2013/10/31 Alex.F notifications@github.com
|
…tate 这是个功能性的改变
通过proxy 一份数据x写W份,并且记录分布在那几台机器上(比如 a c f 机器上) |
所有proxy的配置文件是一样的 |
还有就是数据怎么平均的落到每个节点 |
proxy根据key做hash,决定写哪个bucket(0-f),每个bucket的三个后端都会被写,写成功W个就认为写成功。 |
谢谢你的回答,但我还是觉得没有解决数据比较平均分配到每台机器的上面。 |
代码里面好像默认直接写死了用16个bucket,bucket的分布是根据key的hash来确定,有办法手动指定bucket分布不?
如果现在有4台beansdb,N=2, W=3。然后其中一台机器挂掉了(这台机器数据全部丢失),如何能恢复这台机器?我知道应该是可以通过其他的机器恢复数据,不知道有没有现成的方法,还是直接把其他所有的数据都同步一份过来?
还有如果现在用了4台beansdb,想再加一台beansdb,现有在使用一致性hash基础上,该如何做?
在beansdb机器数目发生改变的时候,是通过什么方法来保证数据的备份数(即N是配置文件里面设置的数目)?
The text was updated successfully, but these errors were encountered: