美文网首页
Consistent Hashing

Consistent Hashing

作者: 尚无花名 | 来源:发表于2019-03-16 04:43 被阅读0次

一致性哈希算法
不管SQL 还是NoSQL都需要用它。 NoSQL帮你实现了, SQL没有帮你实现。需要自己实现

简单的一致性算法

将key模一个很大的数,比如360
找到相邻区间,均分。保证了连续性,但是没有必要。不够均匀。

更实用的方法

把圆周从0 - 359 变成 0 ~ 2^64 - 1;
机器也看成圆上的点。数据也看成圆上的点。 把数据放到它顺时针碰到的第一台机器上。

然而数据结构里没有环,用 BBST, 红黑树 实现

MicroShards/Virtual Nodes

让一台机器对应着环上的1000个点(比如) 一千个分身
memcache01.1 memcache01.2 memcache01.3..... 用mac地址, 或者名字, 然后加后缀, 不能用ip地址
用Hash函数投射,用机器名字算Hash,然后投射到环上。
分身投射: 让环更均匀。
这样子做对数据迁移会不会有很多影响 ?会! 减小了数据的移动。 这是一个概率算法。

consistent hashing -ii, lintcode

Replica vs Backup

Backup: 是周期性的,(每天晚上一次?) 当数据丢失时backup只能恢复到之前的某个时间点。不能分摊读请求。
Replica: 在线数据服务,分摊读; 数据丢时可以马上通过其他replica恢复。 实时的 。
为什么还要 backup? 双重保险

MySQL Replica

通常自带Master Slave Replica。 Write ahead log
读请求分摊, 写请求不分摊。
Master挂了的话,就把其中一个slave promote to Master
手动的方式也可以consistent hashing环上一式三份

NoSQL Replica

自带的 以Cassandra为代表, 将数据顺时针存在consistent hashing环上的三个virtual nodes中
手动不需要了

相关文章

  • 一致性hash算法

    consistent hashing算法早在1997年就在论文Consistent hashing and...

  • 何为一致性Hash算法

    一致性哈希算法(Consistent Hashing)最早在论文《Consistent Hashing and R...

  • Consistent Hashing

    场景描述:假设有n个cache server,为了方便每个用户访问,要将用户的缓存数据存放在某一台cache se...

  • Consistent Hashing

    一致性哈希算法不管SQL 还是NoSQL都需要用它。 NoSQL帮你实现了, SQL没有帮你实现。需要自己实现 ...

  • Consistent Hashing

    一致性哈希是一种应对系统存储架构扩展的技术,主要应用的场景提供可伸缩(根据负载动态的添加和移除)的缓存服务器,其次...

  • Consistent Hashing

    哈希 哈希的本质是一个长度可变的数组,哈希的时间复杂度为O(1)。 哈希为什么不用在数组中遍历呢?其他类型的数据查...

  • [LintCode][System Design] Consis

    Problem More in LeetCode Discussion在 Consistent Hashing I...

  • 一致性哈希算法及其在分布式系统中的应用

    转载:http://blog.codinglabs.org/articles/consistent-hashing...

  • [转]Consistent Hashing

    引入 在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的...

  • 一致性哈希算法理解 ( consistent hashing )

    概述 维基百科上的解释: Consistent hashing is a special kind of hash...

网友评论

      本文标题:Consistent Hashing

      本文链接:https://www.haomeiwen.com/subject/dffjmqtx.html