栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Tair理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Tair理解

Tair Tair是什么?
  • 淘宝开发的、分布式的、key/value存储引擎。
Tair怎么存数据?
  • 支持内存存储。
  • 支持文件存储:LDB引擎,SSD磁盘上的LevelDB存储引擎。
Tair靠谱吗?
  • 线上热扩展,自动负载均衡。(Tair负载均衡:一致性哈希算法)
  • 桶的分布均衡行->数据分布的均衡性。
  • 主备存储->高可用。
  • 数据存储:持久化。
  • 多单元机房自动同步。
Tair适用场景?
  • 通过Tair来加速以及承担大流量的目的。
  • 淘宝天猫用户登陆、浏览商品详情页、购物车信息等。
Tair的范围查找(前缀查找)
  • 分布式系统存储不可回避:负载均衡。
  • 为了让读写调用请求均衡分布,需要让数据存储于不同的机器上:简单方法是Hash散列。
  • Hash散列的方式对于前缀查找来说,并不友好,因为可能会导致前缀查找性能变慢,极端情况甚至是遍历所有机器。
  • 为此,Tair采用著名的MurmurHash2算法。(备注:其实随着时间的发展MurmurHash->MurmurHash2->3,Tair用的只是第二代哈!)
  • 为什么使用MurmurHash2,就可以避免性能变慢呢?遍历的机器变少了?那么是如何映射的呢?
  • 目前没有找到比较深入的算法原理的介绍(论文里面应该有)。
  • 简单理解:Hash(prefix_key)而非Hash(key)。(好处是让同前缀的数据存储更聚焦(映射到部分甚至一台机器上)),同时,该算法本身优势是:对于规律性较强的key的随机分布特征表现更良好,使得负载相对更均衡。
  • 范围查找的过程中,可以优化提效的点:使用缓存 和 布隆过滤器。
  • MurmurHash2也没能逃离碰撞的潜在风险(头插链表的方式解决散列冲突),最终导致的结果是极端情况Hash可能退化为链表。
Reference
  • https://www.cnblogs.com/txfsheng/p/8809173.html(Tair总述)
  • https://zhuanlan.zhihu.com/p/272654938(Tair 持久存储系列技术解读)
  • https://blog.csdn.net/lanxuezaipiao/article/details/38224703(tair中对get/get_range接口的理解及为get_range添加命令行测试接口)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号