《building-a-high-performance-time-series-database-from-scratch-optimization-strategies-xi-pan-xia-daep-ji-ru-aliaksandr-valialkin-hui-wang-victoriametrics.pdf》由会员分享,可在线阅读,更多相关《building-a-high-performance-time-series-database-from-scratch-optimization-strategies-xi-pan-xia-daep-ji-ru-aliaksandr-valialkin-hui-wang-victoriametrics.pdf(38页珍藏版)》请在三个皮匠报告上搜索。
1、Building a High-Performance Time Series Database from Scratch-Aliaksandr Valialkin&Hui Wang,VictoriaMetricsAbout meHui Wanghttps:/ at VictoriaMetricsWorking on monitoring and KubernetesAgenda1.Whats a time series2.How to build a TSDB3.The journey of a time series4.Ways to improve your TSDB experienc
2、esmetric_nameWhats a time seriesnode_cpu_seconds_total instance:10.142.0.108:9100,cpu:0,mode:iowait,.3701.19 1723465149labelsvaluetimestampmetadatasampleHow to collect metricsHow to collect metrics curl http:/service-address/metricsWorkload of TSDBWorkload of TSDB1.Write requests are extremely heavy
3、2.Data is append-only3.Read load is much lower than the write load4.Read requests are unpredictableWorkload of TSDBHow to build a TSDBHow to build a TSDBData compression1.Timestamp Delta-of-delta encodingData compression1.Timestamp Delta-of-delta encodingData compression1.Timestamp Delta-of-delta en
4、codingData compression2.Value XOR-based compressionhttps:/www.vldb.org/pvldb/vol8/p1816-teller.pdfhttps:/ compressionData compressionSample size:16 bytes-1 byte!LSM treeLSM treeLSM treeHow to build a TSDB1.Store time series names,timestamps and values separately(aka columnar storage),apply different
5、 compression algorithms on them;2.Store each column in a data structure similar to log-structured merge tree(LSM).A time series journey:WriteA time series journey:QueryA time series journey:QueryA time series journey:QueryWith great TSDB comes great data:)VictoriaMetrics:scaling to 100 million metri
6、cs per secondSee more:https:/ camp1.ClickHouse2.TimescaleDB3.Prometheus4.VictoriaMetricsHow to improve experiencesHow to improve experienceshttps:/ to improve experiencesRelabelingnode_cpu_seconds_totaljob:node-exporter,instance=172.10.0.31:9100,cpu:0,promethe