文档章节

Virtual Shard

猪刚烈
 猪刚烈
发布于 2014/10/12 11:47
字数 466
阅读 8
收藏 1
点赞 0
评论 0

      对于DB Shard而言,Reshard是一个在系统扩容时不得不面对的问题.Reshard需要解决两个问题:1.修改散列规则以适应新的结点规模.2.将已有数据重新分布到正确的结点.Virtual Shard主要用于解决第一个问题.

  Virtual Shard的基本思想是:建立一组虚拟的结点,虚拟结点的数量是固定的,一般定义为一个系统可预期的最大结点数.具体数字并不重要,只要足够大就可以,比如100,1000等等.数据的散列和路由规则都是以虚拟结点为基础进行的.在系统上线初期,多个虚拟结点会映射到一个物理结点,当系统需要扩容时,只需要修改虚拟结点和物理结点之间的隐射关系即可,不需要修改数据散列和路由规则.这是Virtual Shard的主要目的.举例说:如个一个系统虚拟结点是100,在上线初期,有两个物理结点,虚拟结点和物理结点的映射关系为:1-50的虚拟结点映射到1号物理结点上.51-100结点映射到2号结点上.当后期系统扩容至4个物理结点时,可将映射策略修改为:1-25号虚拟结点对应1号物理结点, 26-50号虚拟结点对应2号物理结点,51-75号虚拟结点对应3号物理结点,76-100号虚拟结点对应4号物理结点.

  但是,Virtual Shard只能解决第一个问题,对于数据的重新分布是无能为力的.目前没有一种通用的技术用于系统扩容时的数据重新分布.这是因为它是一项非常偏向特定应用的工作.

© 著作权归作者所有

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
Mongodb源码分析--Mongos之balancer(均衡)

在之前的一篇文章中,介绍了mongos的启动流程,在那篇文章的结尾,介绍了mongos使用balancer来进行均衡,今天就继续讲其实现方式。 首先我们看一下Balancer及相关实现策略的类图: 可以看到B...

长平狐 ⋅ 2012/11/06 ⋅ 0

SolrCloud Wiki翻译(2)Nodes,Cores,Clusters & Leaders

Nodes and Cores Node和Core In SolrCloud, a node is Java Virtual Machine instance running Solr, commonly called a server. Each Solr core can also be considered a node. Any node c......

曾杰 ⋅ 2014/02/11 ⋅ 0

基于Mongodb分布式存储物理文件

在之前的文章中介绍了如何对关系型数据数据通过auto-sharding进行分布式数据存储,今天介绍如何对物理文件(小文件,基本小于100K)进行分布式存储。 接着看一下要配置的测试环境(与前一篇中...

长平狐 ⋅ 2012/11/06 ⋅ 0

SolrCloud Wiki翻译(1) Getting Started with SolrCloud

SolrCloud是被设计用来提供一个高可用性、可容错的环境用来索引您的数据再进行搜索。在SolrCloud里面,数据都被组织成多个“块”或者叫做“shards”(分片),使数据能够存放在多台物理机器上...

曾杰 ⋅ 2014/02/08 ⋅ 4

日志服务支持Shard自动分裂

日志服务的数据模型中,使用Shard来控制Logstore的写入、读取吞吐能力,每个Shard提供5MB/sec写入、10MB/sec读取,通常情况下,shard越多,Logstore的吞吐越大。 在创建Logstore时,可以根据...

suntingtao ⋅ 今天 ⋅ 0

让我纠结的phpredis

在最近的项目中,需要用php访问redis,我们选择了phpredis,下面是让人纠结的一些问题。 redis持久连接不靠谱。 可以说这是php的通病了,不管是mysql、memcache还是redis,指望由php本身(包...

lincoln.yu ⋅ 2013/09/16 ⋅ 0

Elasticseach(2)

1、Elasticseach对复杂分布式机制的透明隐藏特性 分片、cluster discovery、shared负载均衡,shared副本 请求路由、集群扩容、shared重分配 2、Elasticseach的垂直扩容与水平扩容 (1)垂直扩容...

会说话的鱼 ⋅ 05/07 ⋅ 0

Sharding:Shard Cluster 删除 shard 节点

一 删除 shard 节点的基本思路 1.移走要删除 Shard 节点的数据; 2.确保要删除的 shard 节点不是任何库的 Primary 节点,如果是,将这些库的 Primary节点移到其它 shard 节点; 3.从 Shard ...

古城寨主 ⋅ 2017/11/16 ⋅ 0

SolrCloud Wiki翻译(3)Shards & Indexing Data

When your data is too large for one node, you can break it up and store it in sections by creating one or more shards. Each is a portion of the logical index, or core, and it's ......

曾杰 ⋅ 2014/02/12 ⋅ 1

mongodb sharding 集群

目前有已搭好的mongodb 分片集群 状况为:三台 服务器 每台上运行 一个路由进程(mongos) 一个config_sever 和三个分片,其中三台服务器上的每一个相同shard搭建了副本集 --架构如下 seve...

LYcould ⋅ 2016/03/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 26分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 46分钟前 ⋅ 0

a href="#"

<a href="#">是链接到本页,因为你有的时候需要有个链接的样式,但是又不希望他跳转,这样写,你可以把这个页面去试试

颖伙虫 ⋅ 53分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 53分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 今天 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部