博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pinterest从OpenTSDB切换到他们自己的时间序列数据库
阅读量:7041 次
发布时间:2019-06-28

本文共 1026 字,大约阅读时间需要 3 分钟。

从2014年开始,Pinterest工程团队就一直使用存储和查询指标。由于指标数据量的增长导致了各种性能问题,所以他们使用C++开发了自己的数据库,并且兼容OpenTSDB API。

\\

Pinterest开发团队使用一个名为Statsboard的系统——这是一个仪表板,使用YAML中的声明式配置集成了来自、和OpenTSDB的指标。早在2012年,Pinterest的监控使用了Ganglia,它只收集系统指标而不收集任何应用程序指标。那年年底,他们以及statsd,用于收集应用程序指标,然后部署了一个Graphite集群。2014年,他们部署了OpenTSDB以及一个自定义指标代理,把数据推送到Kafka集群,然后从那里通过一个处理管道推送到。几年前,他们在OpenTSDB中已经达到了每秒150万点的吞吐量。Pinterest的团队面临着Java垃圾收集问题以及HBase频繁崩溃,OpenTSDB把它作为后端存储。这里有一点需要注意,Pinterest有一个,供他们的许多服务使用。

\\

他们自主开发的时间序列数据库引擎Goku试图改进OpenTSDB中的某些具体方面,其中包括使用一个反向索引代替HBase扫描、更好的数据点压缩、集群聚合查询以及更快的序列化格式。Goku使用内存存储引擎存储最新数据,持久存储在NFS上。Pinterest,但是,文中并没有清楚说明,他们是否使用了或自托管解决方案。作者提到,Goku会在重新启动时把数据从磁盘读回到内存中。

\\

Goku的查询模型和OpenTSDB的完全一样。其团队编写了自己的查询聚合层,向分片扇出查询或聚合分片查询。Goku使用了一种两层分片策略——基于指标名称,然后是标签键-值对。这些查询由Goku代理处理,它会把查询发送给单个的Goku分片。这些分片使用反向索引取得请求的时间序列的ID,并获取数据,运行单个的聚合器(下采样、求和等),然后发回代理。该代理会在第二轮聚合之后把它发给客户端。Goku的另一项改进是使用Apache Thrift的代替了OpenTSDB的JSON格式。

\\

Pinterest使用Goku降低了延迟、资源需求以及数据集规模。Goku是用C++编写的,兼容。Goku和Pinterest另外一个名为的项目非常类似,那个项目是用Java编写的。其他工程团队也编写或定制了他们自己的时间序列指标集和查询系统,包括、、和。

\\

查看英文原文:

转载地址:http://xhxal.baihongyu.com/

你可能感兴趣的文章
JavaScript 文件对象详解
查看>>
一个可缩放的图片预览vue插件
查看>>
区块链安全 - 以太坊短地址攻击
查看>>
.pptx to .ppt
查看>>
LeetCode 5.最长回文子串
查看>>
APICloud开发者进阶之路 | 编码优化(二)
查看>>
爬虫数据解析
查看>>
linux源码下载,配置和编译内核
查看>>
面试篇 - 京东(商城用户体验设计部 - 前端架构组)
查看>>
CSS3 pointer-events 属性小结
查看>>
Node.js 根本没有这样搞性能优化的?
查看>>
CI 之加载使用 config 文件的几种方式
查看>>
苹果产品的去中心化变迁,为 Dapps 带来什么启发? | ArcBlock 博客
查看>>
iOS蓝牙开发
查看>>
使用lamp搭建个人博客
查看>>
GCD子队列的优先级
查看>>
介绍Spring Cloud微服务架构的核心特性
查看>>
剥开比原看代码(六):比原是如何把请求区块数据的信息发出去的
查看>>
小猿圈linux之linux基础命令大全(一)
查看>>
当经历所有大厂的实习面试过后
查看>>