Fork 自 RocksDB 的国产自研 ToplingDB 为什么要内嵌 Web

内嵌 Web 这事,相信玩过服务器的人都知道,有很多服务器(例如 Dell)可以通过浏览器 Web 启动、安装操作系统……,它们是在 BIOS(暂且叫 BIOS 吧) 中集成了一个 WebServer!

所以,ToplingDB 内部集成一个 Web 并不奇怪——可以在阿里云上免费体验 Todis 内测版(底层使用 ToplingDB)。

ToplingDB 内部集成的这个 Web 是 SidePlugin 的一个自然扩展,我一开始设计 SidePlugin 的时候,并没有将 Web 一起设计进去,而是在实现的过程中发现,以这样的方式,集成一个 Web,是一件自然而然的事情。

这个 Web 的第一个作用是展示配置信息

后来加上了 LSM 树的实时状态信息,这些信息可以实时刷新,从而表现出动态效果

 

然后又加上了 LSM 树的详细信息(每一层的SST文件列表,高亮表示正在 Compact):

甚至每个SST文件也可以单独展示更详细的信息:

此为 BlockBasedTable,注意 DataBlock Index,其中 IndexUserKey 和上图(列表)中的 UserKey 显示可自定义(此为 Todis Hash Data Key 的自定义显示)

再后来,展示分布式 Compact 的运行状态:

整个页面上几十上百个 Compact 同时闪动,看着就非常过瘾,并且,里面的链接都是可以点的!


 

最后,我调研 Prometheus 监控时了解到它是 pull 模型,这就意味着,我只需要在 Web 中加一点点代码,就直接支持 Prometheus + grafana 了!并且,不需要引入任何新的依赖,不需要对 ToplingDB/RocksDB 本身的代码做任何改动(除非要增加新的指标),因为 RocksDB 原本就记录了很多指标(数百个),我们只是把这些指标用 Web 导出给 Prometheus !

不像某知名软骨秒跪大厂,就加那么几个少得可怜的监控指标,先引入巨大的监控库,再改若干代码,一个个打点,然后还要启动一个本地的独立服务进程,然后发现打开监控机器负载就飙升……

监控页面出来了,普通指标好说,但是直方图(histogram)指标(典型代表是延时直方图),仅仅显示个 P50, P90, P99 …… 总感觉太 Low,所以,我们做了直方图全域展示

Todis 和阿里云 Tair 的性能对比中,Todis 的监控是全部打开的,并且 Prometheus + grafana 都是运行在 DB 结点上:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值