分布式存储Tair

分布式存储TairTairtair 是淘宝在 2010 年开源的分布式 k v 缓存 存储系统 主要支持以下四种引擎 mdb 类似 memcahe rdb 采用 redis 中的存储结构 支持 k v list hash set 等 ldb leveldb kdb KyotoCabinet 可以让我们更方便的使用这些 kv 数据库 其中 mdb rdb 是分布式缓存 ldb kdb 是分布式存储 tair 支持 version 每个数据中包含一个 version 信息 可以保证数据都是基于最新的数据进行更新 比如有数据

Tair

架构

configServer作用,dataServer作用

configServer(以下称CS)

  CS中维护了一个对照表,存储数据桶和服务节点的关系。key的hash和桶长度取模,决定数据存储到哪个桶。比如现在有两个DS节点,172.11.12.1,172.11.12.2,设置桶大小为6,映射表关系如下

数据(1,q),(11,w),(2,e)分别存到了1,5,2号桶,也就是节点172.11.12.2存两条记录,172.11.12.1存一条记录。

tair支持自定义备份数量,备份数量不同,CS中的映射表也会有差别。备份数量为2,第一列还是hash值,第二列是主节点,第三列为备份节点。客户端都是直接和主节点进行交互。当辅节点不可用,CS会再指定一个新的辅节点,主节点不可以,会讲辅节点升级为主,同时再指定一个辅节点

在tair中,CS和一般的控制中心不太一样,CS在首次将配置下发到客户端后,客户端会缓存一份配置,直至下一次配置发生变化,再去CS中拉配置,所以在配置无变化时,即使CS挂掉,也不会影响服务。CS会把对照表的版本信息下发到dataServer,客户端读数据时会将自己持有的CS版本号带过去,dataServer如果判断版本不一致,会通知客户端从新获取配置。

dataServer(以下称DS)

  DS 对外提供各种数据服务,并以心跳的形式将自身状况汇报给configServer;所有的DS地位都是等价的。

主流缓存对比

Tair和RedisCluster都是集群模式,Redis是单机缓存系统,所以在应用场景中,更多的是对Tair和RedisCluster进行对比,看哪一个更适合。

Redis RedisCluster Tair
支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上不超过1GB(建议不超过1MB) 256M
支持Value结构 byte[]/list
map/set/string
byte[]/list
map/set/string
(1)kv/map/list
(2)支持big_list(list无长度限制)
(3)支持创建schema,cmd query

支持的总数据量 1000+instance 理论上总数据量无限制
适宜的读写比 存内存型,均适合 存内存型,均适合 支持多引擎,适宜各种比例的读写。读多写少(mdb+leveldb),读少写多(leveldb)
数据是否可改写 Y Y Y
是否支持Scan/Range Query 不支持,并且不支持merge operations 支持Scan/Range Query
CAP CP 用户可配置,CP或AP
数据自动过期 支持 支持 支持
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232180.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android小游戏源码_全球最大手游源码共享网站

    android小游戏源码_全球最大手游源码共享网站Android自定义效果——随机抽奖一个模拟抽奖的效果,用户设定若干个选项,添加之后,就可以通过程序,来帮助随机选择其中一项出来。这个类似超市里面那种指针转盘抽奖,run之后是一个动态效果图,初始快速

    2022年8月2日
    23
  • 【python】获取当前时间戳

    【python】获取当前时间戳importtime 获取当前时间 times datetime now strftime Y m d H M S printtimes 转为时间数组 timeArray time strptime times Y m d H M S 转为时间戳 timeStamp int time mktime timeArray printtimeSta 结果 个人网站 沉默博客如有错误 请多多指教 如对你有帮助

    2025年7月1日
    2
  • BigDecimal.setScale用法总结(固定精度)

    BigDecimal.setScale用法总结(固定精度)BigDecimal.setScale(intnewScale,introundingMode)newScale:保留newScale位小数roundingMode:舍去规则(0<=roundingMode<=7)一、BigDecimal.ROUND_DOWNBigDecimalnum=newBigDecimal(“3.16159”);//…

    2022年10月20日
    2
  • 惠普台式电脑如何安装系统_hp服务器快速重装系统

    惠普台式电脑如何安装系统_hp服务器快速重装系统惠普在计算机行业是一个很有声誉的品牌,无论是台式机还是笔记本,惠普都是一款值得考虑和购买的品牌产品之一。但是当计算机系统出了问题需要重装系统时,很多人并不知道如何进行系统的重装,那么惠普的台式机如何进行重装系统呢?今天小编将为大家介绍惠普台式电脑装系统步骤。惠普台式电脑装系统步骤阅读1、打开浏览器搜索云骑士官网,找到云骑士官网并点击打开。2、在官网下载云骑士一键重装系统软件,下载后打开云骑士装机大…

    2022年8月13日
    3
  • 上海it外包公司排名_it外包公司排行榜怎么来的?

    上海it外包公司排名_it外包公司排行榜怎么来的?在我们平时上网的时候,总是看到在一些中介网站上会有一些IT外包公司排行榜,这些排行与其它行业的排行榜一样,指导着我们的选择,为我们的外包工作指出了一条相对明晰的道路。那到底这些网站上的排行准不准确呢?下面我们就为大家解析一下。1.名气和口碑。也许我们对外包行业不是很懂,但是在看其它行业如房地产,家电等与大众息息相关的产业时,就会发现但凡上榜的都是很有名气的,且口碑也很好。这就表明了排行还是比较…

    2022年6月14日
    46
  • Vscode 常用插件安装[通俗易懂]

    Vscode 常用插件安装[通俗易懂]简介vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重新定义(redefined)了代码编辑器。当前市面上常用的轻型代码编辑器主要是:sublime,notepad++,editplus,atom这几种。比起notepad++、editplus,vscode集成了许多IDE才具有的功能,比起它们更像一个代码编辑器;比起sublime,vscode颜值更高,安装配置插件更为方便;比起atom,vscode启动速度更快,打开各种大文件不卡。可以说,vscode既拥有高自由度、又拥有高

    2022年9月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号