Chr*_*nty 8 scalability sharding ravendb
我最近一直在学习RavenDB,并希望将其投入使用.
我想知道什么意见或建议,人们已经围绕建设系统的方式,准备向规模化,跨服务器具体分片数据,但可以启动一台服务器上,并只在需要增长.
在单个实例上创建多个数据库并在它们之间实现分片是可取的,甚至是否可行.那么扩展它只是在机器上传播这些数据库的问题?
我的第一印象是这种方法可行,但我很想听听别人的意见和经验.
更新1:
我一直在考虑这个话题.我认为我的"后来排序"方法的问题是,在这种情况下,我似乎很难在服务器之间均匀地传播数据.我不会有一个我可以打开的字符串键(AE,FM ..)它将用数字完成.
这留下了我可以看到的两个选项.要么在边界处打破它,所以1-50000在分片1上,50001-100000在分片2上,但随后有一个年龄的网站,比如说这个,你的原始分片将会做很少的工作.或者,如果您需要将文档移动到新的分片,那么循环分片并将分片ID放入密钥的策略将会受到影响,它会更改密钥并破坏使用密钥的URL.
因此,我的新想法,以及我在那里发表评论,将是从第一天开始建立一个铲斗系统.这类似于将分片ID填充到密钥中,但是您从一个大数字开始,比如1000,您可以在它们之间均匀分配.然后,当需要将负载分成碎片时,您可以说将桶501-1000移动到新服务器并编写碎片逻辑,1-500转到碎片1,501-1000转到碎片2.然后当第三台服务器上线你选择另一系列的水桶并进行调整.
在我看来,这使您能够分割成最初创建桶的碎片,在数量和年龄方面均匀分布负载.无需更改密钥.
思考?
这是可能的,但确实没有必要。您可以开始使用一个实例,然后在必要时通过设置分片进行扩展。
另请参阅:
http://ravendb.net/documentation/docs-sharding
http://ayende.com/blog/4830/ravendb-auto-sharding-bundle-design-early-thoughts
http://ravendb.net/documentation/replication/sharding
| 归档时间: |
|
| 查看次数: |
2127 次 |
| 最近记录: |