`

大数据学习笔记10:一致性哈希

 
阅读更多

一致性哈希

 

 

1、一致性 Hash 算法简单的说,在移除 / 添加一个节点时,它能够尽可能小的改变已存在 key 映射关系,尽可能的满足单调性的要求。

 

 

2、比如使用整数 0--2的32次方-1  的数据范围构建一个环。

对节点  和 key  都哈希成一个整数值 ,然后按照顺时针方向 查找节点,比如下图中的k2、k3 都会放到 B节点

 

 

 

 

 

 

这样 当减少一个节点时,比如去掉了节点B ,k2 、k3会继续 顺时针找到 C 节点,而存放到C。这样受影响的 只是 原来在A节点到B节点之间的key。

 

假如现在在k2、k3之间 增加一个节点E  ,受影响的只有 K2.

 

这样就减小了节点变化 影响的范围。

 

 

3、如果 节点 较少的话,对象并不能被均匀的映射到节点 上。

    为了解决平衡性问题 后来引入了  “虚拟节点”( virtual node )。

    一实际个节点对应了若干个“虚拟节点”。

    划分为更多个小的范围,是key分布的更加均匀。

 

 

 

 

 

  • 大小: 13.1 KB
分享到:
评论

相关推荐

    数据库的课程学习笔记

    这篇学习笔记将深入探讨数据库的基本概念、设计原则以及常见操作。 首先,我们要了解什么是数据库。数据库是一个有组织的数据集合,它提供了数据的存储、查询、更新和管理等功能。常见的数据库类型包括关系型数据库...

    工作过程中的学习笔记

    关系型数据库遵循ACID(原子性、一致性、隔离性、持久性)原则,适合结构化数据;而非关系型数据库则更灵活,适用于大数据、分布式系统。 在实际应用中,理解SQL语言是至关重要的,包括SELECT、INSERT、UPDATE、...

    Java最全的架构笔记(共六百多页).zip

    3. **分布式系列**:讨论了分布式系统的设计原则,分布式缓存(如Redis和Memcached),分布式事务(如2PC、TCC、Saga等模式),分布式ID(如Snowflake和UUID),以及分布式锁和一致性哈希。 4. **中间件系列**:...

    PL/SQL学习笔记5

    在PL/SQL的学习中,分区是数据库管理大型数据集的一种高效方法,特别是在处理大数据量时。本篇笔记主要探讨了何时应该使用分区以及Oracle支持的分区类型。 首先,当面对超过2GB的大数据表时,分区是十分必要的。这...

    hive学习笔记

    8. **ACID特性**:从Hive 0.13版本开始,Hive引入了部分ACID(原子性、一致性、隔离性和持久性)特性,尤其是对于事务处理的支持,如INSERT、UPDATE和DELETE操作。 9. **Hive的优化**:包括使用EXPLAIN命令分析查询...

    mysql-notes:MySQL学习笔记

    总结,MySQL学习笔记涵盖了从基本的数据库操作到高级的分布式系统设计,对理解MySQL的核心原理和实践应用至关重要。通过深入学习这些知识点,可以更好地管理和优化MySQL数据库,以适应各种业务需求。

    大规模分布式系统架构与设计实战笔记8

    常见的负载均衡算法有轮询、最少连接数、哈希一致性等。 数据一致性是分布式系统中的另一大挑战,尤其是在存在多个副本的情况下。`GenerateData.java`可能涉及到数据生成和一致性检查,如使用Paxos、Raft或...

    oracle 学习 资料

    4. 数据库设计:学习如何进行数据库规范化设计,减少数据冗余和提高数据一致性。理解第一范式(1NF)、第二范式(2NF)和第三范式(3NF)等概念。 5. 性能优化:理解Oracle的执行计划,学会使用EXPLAIN PLAN分析SQL...

    狂神说Redis笔记.pdf

    Redis事务允许将多个命令打包,然后一次性、按顺序地执行,它具有ACID(原子性、一致性、隔离性、持久性)的属性。 **Redis实现订阅发布** Redis的发布/订阅模式允许客户端订阅一个或多个频道,然后接收发布到这些...

    数据库系统实现第二版部分答案

    4. **事务处理**:了解ACID(原子性、一致性、隔离性、持久性)属性,以及事务的提交、回滚、并发控制等。 5. **查询优化**:如何选择最优执行计划,包括成本估算、查询重写、连接顺序选择等。 6. **数据库设计**...

    狂神说redis笔记

    NoSQL数据库的特点包括:解耦、方便扩展、大数据量高性能、数据类型多样性、最终一致性等。NoSQL数据库还包括键值对存储、列存储、文档存储和图形数据库,适用于不同的数据存储和查询需求。 大数据时代的特征可以...

    designing-data-intensive-applications-notes:有关设计数据密集型应用程序的说明(进行中)

    - 数据的一致性模型:强一致性和最终一致性,以及各种一致性算法如Paxos、Raft和Zab。 - 分布式事务:2PC、3PC和分布式事务处理中的挑战与解决方案。 3. 处理大规模数据: - 批处理:Hadoop MapReduce的工作原理...

    西电数据库答案第四版

    10. **大数据与NoSQL**:大数据处理技术如Hadoop和Spark,以及NoSQL数据库如MongoDB和Cassandra,都是现代数据库学习的热点。 "数据库"和"数据库答案"两个文件名可能分别代表课程的讲义或笔记,以及对应的解答。...

    mysql topic 学习.zip

    4. **事务处理**:了解事务的ACID属性(原子性、一致性、隔离性和持久性),以及如何使用COMMIT、ROLLBACK和SAVEPOINT来管理事务。 5. **索引与性能优化**:索引可以显著提高查询速度。学习如何创建和管理不同类型...

    计算机基础自学笔记心得实验资源汇总;C语言为主,课程:数据结构、操作系统(MIT6.S081)、分布式系统(MIT6.824等

    MIT6.824课程涉及主题如一致性模型(如Paxos和Raft),分布式锁,复制,容错和分布式文件系统。掌握这些概念对于构建大规模的云服务、互联网应用和物联网系统是必要的。例如,理解CAP理论(Consistency, ...

    数据库系统原理复习资料

    3. **数据库设计**:涉及需求分析、逻辑设计、物理设计等步骤,其中,范式理论(第一范式到第五范式)用于减少数据冗余和提高数据一致性。 4. **查询优化**:如何选择最佳查询执行计划是数据库性能的关键,涉及索引...

    oracle 数据仓库指南阅读笔记

    在数据仓库中,设置正确的约束可以帮助维护数据的完整性和一致性,尤其是在进行数据加载和更新时。 这些笔记提供了深入理解 Oracle 数据仓库设计与实现的宝贵资源,涵盖了从基础概念到高级技术的多个方面。对于希望...

    1_MYsql学习(摘要笔记).zip

    "9.SQL事务机制.txt"讲解了事务处理,事务是一系列数据库操作的集合,具有原子性、一致性、隔离性和持久性四个特性。BEGIN、COMMIT和ROLLBACK语句用于控制事务的开始、提交和回滚。 "10.数据库分区.txt"提到了...

    MySQL8专栏txt文件

    MySQL8支持ACID(原子性、一致性、隔离性和持久性)特性,使用BEGIN、COMMIT和ROLLBACK语句来控制事务。 8. **存储过程**:存储过程是一组预编译的SQL语句,可以在需要时调用,提高代码复用和执行效率。CREATE ...

    软考-数据库工程师.rar

    考生需掌握ER模型转换为关系模型的方法,以及如何通过范式理论(第一范式、第二范式、第三范式等)进行规范化设计,减少数据冗余和提高数据一致性。此外,了解索引类型(如B树、哈希索引)及其应用,以及查询优化...

Global site tag (gtag.js) - Google Analytics