á¨2019 áá¨á¨áť áááŁáá á á áááłáá°á áŤááŤááŞá âGo optimizations in VictoriaMetricsâ á¨áááá á˝áá áááá ἠááłáĽ á áááŁááá˘
á¨áá
ááᣠáŞá˛áŽ ááá áĽáá -
áľááŤáľá
ááá¨á, áľááŤáľá˝ áááŞá. áĽá á áááłáá°á áŤááŤááŞá ááᢠáĽáá
fast
ᣠááá ᨠáá quick
á
áľá á
áĽáŤ
á á áá áá á VictoriaMetrics áá áĽá¨á°áŤá ááᢠáááľá áá áĽá áĽá፠áá áĽá¨á°áŤá áá? á áá á ááŤá¨áĽ ááľáĽ áľááá ááłá áĽáááŤáá.
á¨áŞáááą áááá á¨áá¨á°áá ááá˘
- á ááááŞáŤ áŞááśáŞáŤ ááľáŞááľ áá áĽáá°áá áĽáááááłááá˘
- á¨á፠á°á¨áłáłá áá áá áĽáá°áá áĽáááŤá˝ááá.
- á¨ááŤá á¨áá á°á¨áłáłá á¨ááἠááł áĽáá´áľ áĽáá°áá°áŤ áĽáááááłáá.
- á ááá á, áľá á¨ááἠááł á ááá´áá¸á áĽáááŤáá-áá áŤáŤáľáłá.
- áĽá á¨á፠á áŞááśáŞáŤ ááľáŞááľ ááľáĽ áá°ááá áááťá¸áľ áĽáááľá˘ áĽááá áá°ááá á á á˘áá´ááľ áááťá¸áľ áĽá á Go ááľáĽ áá˘áľá´áľ áľáá ፠áááťá¸áľ áá¸áá˘
á¨áŞááśáŞáŤ ááľáŞááľ áááľá áá? áá ᣠáĽá á°áá˝ áŤáááᢠá°áľ á¨áá áá ááᢠáááŤáááľ áá á¨áá¨á ááľ á¨áá á°á¨áłáłá ááᢠá á ááłáᾠᨠClickHouse á á°ááŁá á ááááŽá˝ áá á ClickHouse architecture áá á¨á°áá°á¨á° ááᢠáááłáᣠá ááłá°ááľ áááĄ- MergeTreeᣠáľáአááľááľ á ááá á¨ááá ááŽá°á°á áŽáŽá˝ áĽá á ááŽá°á°á áá¸á፠ááľáĽ á á°ááᥠá¨ááἠáĽááŽá˝ áá á ááľáŤáľ á ááááá ááťáťáá˘
áŞááśáŞáŤááľáŞááľ á¨ááá˝ á¨á°ááľ á°á¨áłáłá á¨ááἠááłáá˝ áá á˛ááłá°á áááĄá á¨áá¨á áááá፠áŤáááŁáá˘
á á ááŁá ááááá - áááľá áĽá ááŽá°á°áŽá˝áᣠá á ááľ áŽáááá°á áá á°á¨á᪠áŤá áá¨á áá˝ááᢠVictoriaMetrics áĽááá á áŤááľá ááĽáśá˝ á á°áłáŤ áááł áá ááá áĽá á¨ááľááŤá á ááťá¸áá áŤáťá˝ááá˘
áĽáá˛ááᣠVictoriaMetrics á á ááľá ááááłá - áááľáᣠá°á¨á᪠ááśá˝á áá° VictoriaMetrics áááľá°á áá¨á áá˝ááᣠáĽá á áááá á ááľáá áá áááľ ááťáá áŤáľááá˘
áĽáá°áááąáľ áŞááśáŞáŤ ááľáŞááľ ááŁá áłáłá¤á áá ááááŤáąá ááá˝á ááťá áľáááá˝á ááᢠáĽá á Go ááľáĽ á°á˝áá, áľááá á áá áľáĽá°áŁ áá áĽáŤááŤá áá.
á¨áá á°á¨áłáłá áá áĽáá°áá áá áŤááá? áĽá á°áá˝áá áŤáááᢠá¨áá á°á¨áłáłá á°á¨áłáłá áĽááľ ááᢠ(timestamp, СнаŃонио)
áĽááá
áĽááśá˝ á áá á¨á°á°á¨á°áŠá áľ. ááá á°ááłáá ááĽáĽ ááĽá áá - float64.
áĽáŤááłááą á°á¨áłáłá áá á ááá á°áááś ááłáááᢠáá ááá áááľá áá? áĽáą áŁáś áŤááá á¨ááá-áĽá´áľ áĽááśá˝á áŤáŤáľáłáá˘
á¨á°ááľ á°á¨áłáłá ááłá áĽáá
á áᢠá¨áá
á°á¨áłáłá ááá á¨áĽááśá˝ áááá áááĄ- __name__="cpu_usage"
á¨áááŞáŤá áľá áá ᣠinstance="my-server"
áá
áááŞáŤ á¨áá°á á°áĽá áľ áŽáááá°á áá datacenter="us-east"
- áá
áŽáááŠá°á á¨áááá áľ á¨áá¨á ááá¨á ááá˘
áśáľáľ ááá-áĽá´áľ áĽááśá˝á áŤáŤá°á° á¨áá á°á¨áłáłá áľá á ááá°ááᢠáá
ááá á¨áĽááśá˝ áááá áá ááááłá (timestamp, value)
. t1, t3, t3, ..., tN
á¨áá áá
á°á áá¸áᣠ10, 20, 12, ..., 15
á°ááłá áĽá´áśá˝ áá¸á. áá
áá°á°á á á¨áľá á¨á áá á˛áአá á ááá ááá˘
á¨áá á°á¨áłáłá á¨áľ áá áá ááťáá? ááá ááłáĽ á áá?
- á DevOps ááľáĽ á˛ááŠáŁ RAMᣠááľáááᣠáŤááľáŁ áľá á°áśá˝áŁ ááá° áááŤáľ áá˝ááá˘
- IoT - á¨áááľ áá á, áááľ, á¨áጠááá ááŤáá˝ áĽá áá ááá áááŤáľ áĽáá˝ááá.
- áĽáá˛áá áááááľ - áááá ááááľ á áá˛áŽáá˝ áĽá ááááŹáá˝ áááá˝á áá¨áłá°á áĽáá˝áááá˘
- á á°á¨ááŞá, á ááĽáŞáŤáá˝ ááľáĽ á¨áááľ áá°áśá˝á á áá¨áłá°á ááľáĽ á¨áá á°á¨áłáłáá áá áá ááťáá. ááŽáŚáśá˝ á¨áááľ á°ááŁááá˝á ááááŁá á VictoriaMetrics á¨áá áá á°á áááá˝ á ááá˘
- áĽáá˛ááᣠá¨áá á°á¨áłáłá á¨á°ááŤáŠ ááłáŞáŤáá˝ áłáłážá˝ áá¨áá ááá°áĽá°áĽ á áá áá¸áᢠáááłá, áá¤ááá; á¨áááá áááľ ááááŤáľ; ááĽááľá, áááľá ááááŤáľ; á¨ááłá áááłá ááááŤáľ, ááá°.
- áĽáá˛áá, á¨áá á°á¨áłáłá á ááŽáááá˝á ááááŁá á áĽá á áá ááá áá˝áá. áĽáŤááłááą á ááŽááá áá°ááŤáŠ á¨á ááŽáááá˝ á¤á áááŞáŤáá˝ á¨áá á°á¨áłáłáá á¨áá°á áľáĽ áĽáá áłáĽá á ááᢠá á¤áŽáľááľ á˘áá°áľáľáŞ ááľáĽá á¨á°ááľ á°á¨áłáłá áľáŤ áá ááááá˘
- á¨á¤á áĽáááĽáŤá¤ á¨á°á áááľ, á¨áἠááľ, ááá°.
ááááŁáľ á ááá á¨á¨áłáá¸á á áááŹá˝áá˝ ááአáá˝áá ᣠáá á¨áá á°á¨áłáłá á ááááá ááá ááľáĽ á áááľ áĽá á áá áĽáá°ááá áĽáá°ááľá¨áą á°áľá á á°áááá ᢠáĽá á á áááá¸á á á¨áááą áĽáŤá°á áá.
á¨áá á°á¨áłáłá á¨ááἠááł áááľá áá? á¨áá á°á¨áłáłáá ááá¨áá¸áľ áá°á á á¨áááááľ áłáłá¤á ááá áá áá á áá˝áá?
ááááŤáąá á°á¨áłáłá áááá˝ á á°ááá°á á¨áá¨á ááśá˝ ááľáĽ ááá¨áá¸áľ áĽá áááľáŹáľ á áľá¸á᪠á¨áá áĽá áá¨ááá˝á ááááᢠáľááá
, ááá á°á¨áłáłá áአá¨ááἠááłáá˝ áłá¨. áĽááá
áá°á¨áśá˝ áá¤áłá ááĽáŚá˝á áŤá¨ááťá (timestamp, value)
á á°á°á á ááá. á¨á°á¨áḠáááĽá á áááᣠá á ááľ ááá áĽá´áľ áĽááľ ááá á áĽá áĽááśá˝ ááá á regexp áááá ἠá¤áá á áá°áŁáᢠáááłá á¨ááá á áááááśá˝áá á¨á˛áአáááľ á á ááŞáŤ ááľáĽ áŁáá á¨áá¨á ááĽá¨á ááľáĽ ááááľ áááááᣠá¨á፠áá
á á¨áá¸áľ áá áá
áá áá áŤáľáááááłáá˘
á á°áááśáŁ á¨áá á°á¨áłáłá á¨ááἠááłáá˝ áአá¨áá áá
ááááá˝ áá¸á ááááŤáąá SQL ááá á°á¨áłáłáááľ á áŁá á°áľáá áľááááᢠSQL á á¨áá°áá á¨ááἠááłáá˝ á˘ááŠá, á áŁá áĽáŠ á°áľáá á áá°áá. á¨á°áťá á°áľáá á¨áĽáŤá ááááá˝
ᨠVictoriaMetricsá áĽáá° ááłá á áá áá á¨áááá áłáłá¤á áĽá-ááá áá áĽáá°áááľá áĽááá˘
áááľ áááá˝á áŤáá áá. áá áá°ááá á á á˘áá´ááľ áĽá ááá á°á¨áłáłá áĽá´áśá˝ áá¨ááť ááᢠáĽááá áá¨ááťáá˝ á°ááŤáá°ááá˘
á áá¨á ááą ááľáĽ á á˛áľ áááἠá˛áᣠááááŞáŤ á¨á°ááá á áá á˘áá´ááľ áĽáá°ááłáá áá°á°á á áľáĽáľáĽ á¨áá á°á¨áłáłá áááŤá áááááľ label=value
ááá
áááŞáŤ. áá
áá á᪠á ááá°áá áĽá áĽá´áąá á áá¨á áá¨ááť ááľáĽ áĽáá¨ááťááá˘
ᨠTSDB ááἠááááŁáľ á ááłááľ áĽáŤá á˛ááŁáŁ á ááááŞáŤ áá° á°ááá á á á˘áá´ááľ áĽáááŁááᢠáááá ááá áĽááááá timeseries_ids
á¨á°á°á á áľáĽáľáĽ áá á¨ááááą ááááŚá˝ label=value
. áĽá á¨á፠áááá á áľááá áá¨ááá˝á á¨áá¨á áá¨ááťá á áá¨á á áá áĽááááá timeseries_ids
.
á¨áá á°á¨áłáłá áłáłá¤á áᢠáááŤá áĽáá´áľ áĽáá°ááá ááłá áĽáááá¨áľá˘
- á ááááŞáŤ á°á¨á áááá ááá áłáááá˝
timeseries_ids
á¨á°á°áĄáľá áĽááśá˝ á¨áŤáá á¨á°ááá á áá¨á á áálabel=value
, ááá á¨á°á°á áá áá°á á á áááá˝ áŤáá. - á¨ááŤá áá°ááá á á°áá°á á¨áá ááŠááľ áááá á¨ááἠááĽáŚá˝á á¨áá¨á áá¨ááťá áłáááá˝
timeseries_ids
. - á¨á፠á áá, á¨ááἠááł á á°á ááá áĽáŤá áá°á¨áľ á áĽááá á¨ááἠááĽáŚá˝ áá á ááłááľ áľááśá˝á áŤá¨áááá. áĽá á¨á፠á áá áááąá ááááłá.
á áá
á ááŤá¨áĽ, áľá ááááŞáŤá ááá áĽáááááłáá. áá
ááá ááᢠtimeseries_ids
á á°ááá á áá¨á á áá. áľá ááá°áá ááá áĽá áśáľá°áá ááá á áá áá¨áľ áá˝áá
á á°ááá á á á˘áá´ááľ áĽááááᢠááĽááá˝ áá ááá áááľá áá˝ááᢠá¨á°ááá á áá¨á á áá áá áĽáá°áá áĽá áĽáá´áľ áĽáá°áá°áŤ áá áŤááá? áŚá ᣠá¨á áá á áá áĽá á°áá˝ á áá°ááᢠáá áĽáá°áá ááá¨áłáľ áĽáááá.
áĽáá° áĽáááą á¨áá, ááá ááá ááá áá. á¨á ááľ áĽá´áľ ááá áŤááł á¨ááŤááá
áááá áááľ áĽáť ááᢠááá áááľá áá? áĽááá
áŁáá ááľáľ label=value
á¨áľ label
и value
ááľááŽá˝ áá¸á. áĽá áĽá´áśáš áľáĽáľáĽ áá¸áᢠtimeseries_ids
, áá
á á¨á°á°á á áĽááľ áŤáŤáľáłá label=value
.
á¨á°ááá á áá¨á á áá áááá ááá á ááĽááľ áĽáá˛áŤáá áŤáľá˝áááłá timeseries_ids
, á¨á°áĄáľ label=value
.
áĽáá˛áá á ááĽááľ áĽáá˛áŤáá áŤáľá˝áááłá timeseries_ids
áá ááŤáł áĽááśá˝ á°á¨áłáłá áá label=value
, ááá ááĽááśá˝ label=regexp
. áá
áĽáá´áľ áááá? á¨áľáĽáľáĄ ááááá á ááááľ timeseries_ids
ááĽáŤááłááą áĽááľ label=value
.
á¨á°ááá á áá á˘áá´ááľ á¨á°ááŤáŠ á á°ááŁá áá á áľáĄá áľá˘ á áŁá ááá á ááá á¨áá á á°ááŁá á áĽááááᢠáĽáˇ áá á áľááľááá˝á˘
áĽáŤ getMetricIDs
á¨ááĽá¨ááááá˝ áááá áŤááá. áĽáŤááłááą ááľáá ááá label=value
. áá
á°ááŁá áááá ááááłá metricIDs
.
áĽáá´áľ áĽáá°áá°áŤ? áĽáá
áĽá á¨ááŁá ááá á áá á°áááá á áá invertedIndex
. áá
á¨á°ááá° áááá áááľ ááá˘map
) ints áááá¨áĽ áááąá áŤááł áŤá°ááááᢠááľáአááá label=value
.
á¨á°ááŁá áľáá áŤ: ááááľ metricIDs
áááááŞáŤá label=value
, á¨ááŤá á ááŠáľ áá áááą label=value
, áĽááááá metricIDs
ááĽáááą. áĽá á°ááŁáŠá áá°áá intersectInts
, áá
á á¨áá
á áłá˝ ááĽáŤáŤá. áĽá áá
á°ááŁá á¨áĽááá
á ááááŽá˝ áááá ááááłá.
áĽáá°ááłá¨á, á¨á°ááá˘áŚá˝ á˘áá´ááľ á á°ááŁá á á áŁá á¨á°ááłá°á á áá°áá. áá áá á¨áá ááľ á á°ááŁá á ááᢠááľááśáż áááľá áá¸á? á¨áá á á°ááŁá á áááá áá°ááá áĽáá˛á áŤááá á¨á°ááá á á˘áá´ááľ á RAM ááľáĽ áá¨áá¸áľ ááᢠáááá¨áťáá áĽáá°áá á¨áááá á áá, áá áá áá¨á á áá áĽááŁáá. áá áá áá¨á á áá áá° á˛áľá ááľááἠá¨ááᢠááłáłá¤áᣠáĽáá˛á áŤáá á¨á°ááá á áá¨á á áá áĽááĽáá á°áľáá á áá°ááá˘
ááá°áá ááłáľ á¨ááľáłááľ áá á¨á°áŤáŤá áá. á¨á°ááá á áá¨á á áá á RAM ááľáĽ áááŁá á á áá áľá˘ ᨠRAM áá á á áá á¨áá, áĽá áĽáá°áááá ááá˝ áá - á¨ááľáłááť áľá á°áľ. áĽá ááŽááŤá á áá°áŤá.
áá
á˝áá áĽáá° ááá á¨áá áááľááá˝á á áá áá áááł áá˝áá
áŁáአáśáľáľ áááŽá˝á á ááĽááľ áááľáŤáľ á¨ááŤáľá˝á áłáłá¤á áŤáľáááááá˘
- á¨ááááŞáŤá ááá á ááťá áá áá
кНŃŃ-СнаŃонио
áá°áá áá á¨áľá˘ áá ááá á ááĽááľ áłá°áááá˝á˘ĐşĐťŃŃ-СнаŃонио
á¨áááá° ááĽá¨ááááá˝ áá¸áᢠ- ááá°áá ááá á á°á°á á ááá ááŁá ááá ááá˘
- áĽá áśáľá°áá ááá á á°á°á á á áľá á áĽáŤ áááá áááá˝ ááŁá ááá áá.
LevelDB áĽá RocksDB - áĽááá
á¨áá¨á ááśá˝ á Google áĽá á ááľáĄá á¨á°ááᥠáá¸áᢠááááŞáŤ á°á¨á á¨ááŁá LevelDBᢠá¨á፠á¨ááľáĄá á°áá˝ LevelDB ááľá°á ááťáťá ááአáŽááľ á˛á˘á á áŠá˘ á áá ááá áááľ ááťáá á¨ááľáĽ áłáłá¤á áá° RocksDB áĽá MySQL á¨á°ááááŠáľá á¨áᎠá ááľáĄá ááľáĽ á RocksDB áá áá°áŤáᢠáĽáá á°ááááłáá˘
á¨á°ááá á áá¨á á áá LevelDB á áá áá áá°áá á áá˝ááᢠáĽáá´áľ ááľá¨á ááťáá? áĽáá° ááá áĽáááĽáŁáá label=value
. áĽá áĽáá° áĽá´áľ - á¨áá á°á¨áłáłá áááŤ, áĽááľ áŁáá áľ label=value
.
á¨áá
áĽááľ áá áĽá á°á¨áłáłá áá áŤáá label=value
, á¨á፠á áá
á¨ááἠááł ááľáĽ á ááľ á áááľ ááá áŤáá¸á áĽá á¨á°ááŤáŠ áĽá á¨áľáá˝ áááŤá timeseries_ids
. á¨áááá áááá áááááľ timeseries_ids
á áá
á¨ááááŠáľá˘ label=prefix
áá
áłáłá¤á á¨á°ááťá¸á áľá á¨ááá á
ááľ áĽáá°ááááᢠáááľá á¨ááááŠáľá áááá ááľááŽá˝ áĽááááŁáá label=prefix
áĽá á áľááááá áŤáá timeseries_ids
.
á Go ááľáĽ áá áĽáá°áááľá á¨ááŤáłá ááłá áĽáá á áᢠá¨á°ááá á áá¨á á áá á ááᢠáá LevelDB ááá˘
á°ááŁáŠ á¨áá áľáá ፠áá á°ááłáłá ááᢠá ááľáá á¨áá áá°á á¨áá
á á°ááŁá áá áá°áááᢠáĽá¸áá ááĽáĽ á¨ááĽááľ ááá
map
á¨á°ááá á áá á˘áá´ááľ áĽáá á
áłááᢠáááá áááá˝ áááááŞáŤ áá áĽááááá label=value
. á¨ááŤá áááá á¨ááŠáľá áĽááśá˝ áĽááááá label=value
áĽá ááĽááą á°ááá
á¨áá á¨metricIDs áľáĽáľáŚá˝á áŤááᢠá¨ááŤá áááááá áĽááááá.
ááá ááá áĽáŠ áááľáá, áá áá áááľá áľáááśá˝ á ááľ. VictoriaMetrics á ááááŞáŤ á°á¨á á LevelDB áá á¨á°áá°á¨á° á¨á°ááá á áá¨á á ááá á°ááŁáŤá á áľáááᢠá áá¨á¨áť áá áá°á áá á¨áĽáá˘
ááá? ááááŤáąá LevelDB á¨áá
áľáá ፠áááá ááᢠá ááá á á°ááŁá á ááľáĽ ᣠáá°áá°á ááá ᣠáá˛áŤáá áááá ááŤá áĽááááá metricIDs
. áá
á áŁá ááŁá ááś áĽáá áá - ááá ááŤá áá áááááľ ááá áá.
á LevelDBᣠá áĽáŤááłááą á¨á°ááŁá áĽáŞ áá GetValues
á¨ááááŠáľá áááá ááľááŽá˝ ááá áŤáľáááááłá label=value
. áĽá ááĽáŤááłááą ááľáá áááá áŤáá timeseries_ids
. á¨áĽáá°áá
timeseries_ids
á¨áĽááá
ááľáĽ á ááľ ááŤá áá°áĽáľáĄ timeseries_ids
. ááá˝ ááᣠáá
áá°á á áŤááłá á ááá á¨áá áá á áŁá áááá ááá˘
ááá°áá ááłáą LevelDB á¨á°ááá á C ááᢠC á°ááŁáŤáľá ᨠGo ááľá¨áľ á áŁá ááŁá á áá°ááᢠá ááśáá˝ á¨ááá አááá´áŽááśá˝ áááľáłáᢠáá á áŁá ááŁá á áá°áá, ááááŤáąá á áá ááľáĽ á¨á°áťá áá°á á á¨á°ááŁá áĽáŞ áá á˛ááťá¸á, 1-5 nanoseconds áááľáłá, á¨á áááá ááŠááľ á á°ááá á¨ááá አáá áá. á VictoriaMetricsᣠáá ááłá ááľááľ áá á đ
áľááá
á¨á°ááá á áá á˘áá´ááľ á¨áŤá´á á á°ááŁá á áťááŠá˘ á áŤááľáá˘
áá
á°áľ á MergeTree ááἠááá
á áá á¨á°áá°á¨á° ááᢠáá
á¨ááἠááá
á ᨠClickHouse á°á áľáŻáᢠáááŁá áááś ááá áá
á°áľ áááťá¸áľ áĽáá°ááŤáľááá ááá˝ ááᢠtimeseries_ids
á á°á°á á ááá. Mergeset áá á áá á Go ááľáĽ á°á˝ááᢠáá¨áľ áľá˝ááá
á¨áá á°áľ á¤áá á á¨LevelDB áĽá RocksDB áá á áŁá á°ááłáłá ááᢠáŤá áááľ áĽá፠á áłá˛áľ ááááŚá˝á á ááĽááľ áĽáá˛áŤáľááᥠáĽá á ááĽááľ á á°á°á á á áľá á áĽáŤ ááááŚá˝á áĽáá˛ááᥠáŤáľá˝áááłá.
áľá áá á°áľ ááłáśá˝ á áá áĽáááááŤáá ᢠá áá á¨á°ááá á áá á˘áá´ááľ á áá°áá áá áľ áá á áŞááśáŞáŤ ááľáŞááľ áááľ ááľáĽ áľáááľ á˝ááŽá˝ áĽááááá á˘
ááá á°ááą?
á¨ááááŞáŤá ááááŤáľ á¨áá°á á¨á˝áŽá áá á áá. áá° áŠá˛áŤá á°á°áááá, áá á áá á°á¨áłáłá ááľáĽ á°á°ááá ááἠáá. áá á°á¨áłáłá á¨á°ááľ á°á¨áłáłáŽá˝ á˛áŤáá áĽá á á˛áľ á°á¨áłáłáŽá˝ á˛ááአááá áĽá á á˛áľ á°á¨áłáłá á¨á°ááľ á°á¨áłáłá á˛ááአááᢠáĽá áá áĽá áá áá¨á°áłá.
ááá°áá ááááŤáľ áĽá ááĽá áŤáá á¨áá á á°á á°á¨á°á áá. ááááŞáŤ áá, ááľáľá á°ááłá ááľ á˛áŤáá, á°á¨áłáłá á¨áá áĽááľ á ááľá°á áá á. áááłá á áĽáŤááłááą áŽáááŠá°á áá á¨ááááŁá áŞáŤááᣠá¨áá á°á¨ áľááľáłááᣠá¨ááľáááá áĽá á¨á˛áľáá áááľ áá¨áłá°á áŤáľáááááłáᢠá á ááľ áŽáááá°á 4 áá á°á¨áłáłáᢠ100 áŽáááá°áŽá˝ áĽá 400 á°á¨áłáłá áááŤáľ á áá áĽáá áᢠáá á áŁá áľáá˝ áá.
á¨áá á áá á°áá˝ á¨á áá áááá áá¨á áá፠áá˝áá á¨áá ááłáĽ á á áá áá. áááłá, á¨áááá ááŽá°á°á áááľ áłááá á¨áĽáŤááłááąá ááŽá°á°á áŽá á á°áá á ááááŤáľ. 40 ááŽá°á°á áŽáŽá˝ áŤáááľáŁ á áá áá°á¨áľáŁ á¨á áááŁáŁáŞáá áááľ ááááŤáľ 40 áĽáĽá á°á¨á᪠á°á¨áłáłá áá á áááľá˘
áá ፠áĽáť á áá°ááᢠáĽáŤááłááą ááŽá°á°á áŽá áľáŤ á˛ááł áĽáá° áľáŤ ááľ áŤá á ááŤáł áááśá˝ áááŠáľ áá˝ááᢠáĽáá˛áá á á°á áá áŚáł áá á ááľáŤáľ, á á¨ááá áŚáł áĽá á ááá˝ áááśá˝ ááľáĽ ááľáŠ. áĽá áĽáŤááłááą áĽáá°áá á áááľ áááł áĽáá° á¨á°áᨠá¨áá á°á¨áłáłáááľ áá፠áá˝áá. áá á á°á¨á᪠á¨á¨áľáá˝á áĽááľ á 7-8 áá áá¨ááŤáá˘
á¨á ááľ áááŞáŤ áá ááľ áŽáááá°á áĽáť 40 x 8 = 320 ááľáŞá á ááá°ááᢠá 100 áĽááŁáááᣠá¨32 ááá 000 áĽáááááá˘
á¨á፠áŠá áááľáľ ááŁá˘ áĽá á ááá á¨á áá á¨á¨á áĽáá˛áá á áľáááłá, ááááŤáąá áĽá á¨á°ááŤáŠ á áááááśá˝ á áŠá áááľáľ ááľáĽ ááľá°áááą áá˝áá. á áŠá áááľáľ ááľáĽ áŤáá áĽáŤááłááą á áááááľ á¨áĽá ááľáá˝ á¨á°á°áŤ ááᢠáĽá áá áá ááľáľá áá°á¨áá áľ áááŁá. á á°á¨ááŞáᣠá á˛áľ á¨á áááááśá˝á áľáŞáśá˝ á ááááľ áá°ááŤáľ á ááᢠááĽáŤááłááą á á˛áľ áľáŞáľ á á˛áľ á°á¨áłáłá áá ááá á áŤáľáááááłáᢠá áá¤áąá, á¨á°ááľ á°á¨áłáłá ááĽá á á¨áá°á á°á¨á áŤáľáá áĽá á¨áá°á-áŤáá˛áᲠá°áĽá á¨áá áŤá áĽá ááĽá áŤáá á¨áá á˝áá áŤááĽááá. áŞááśáŞáŤ ááľáŞááľ á¨ááá˝ á¨áá á°á¨áłáłá á¨ááἠááłáá˝ áá á˛ááłá°á áĽáŠ áŤá°ááááá˘
á¨á¨áá°á ááĽááľ áá¨ááá á áá áĽáá áĽáááááᢠá áááľ ááľáĽ á¨áá°á á¨ááĽááľ áá á áĽáá˛á¨áá á¨ááŤá°ááá áááľá áá? ááááŤáąá á ááłááľ á¨áááŤáá˝ áĽá áááŤáá˝ áľááá á á¨ááá áĽá¨á°ááᥠááá˘
áááłá áŠá áááľáľá áĽááá°áľáŁ áĽáąá á˝áá°-ááłáĄ á ááᢠdeployment
áááľá á á˛áľ á¨áá°áá áŞáŤá áľáŞáľ á˛ááá
ᢠá áá ááááŤáľ á¨áŠá áááľáľ ááá˘áá˝ á¨áá°ááŤáľ ááłáááŤáá áá° áááŤá ááá¨áá áá°áá˘
áá á ááŁá? á áĽáŤááłááą á á˛áľ áá°ááŤáą ááá á¨áአá°á¨áłáłá áááá˝ ááá¨áŁá áĽá á áĽááą ááľá á á˛áľ á¨á°ááľ á°á¨áłáłá á á á˛áľ áá፠áĽá´áľ ááááŤáᢠdeployment_id
. á ááś áşáá˝ áĽá áĽáá˛áŤáá á áááŽáá˝ á¨ááá አáĽáá°áá
áŤá á¨áľáá˝ ááአáá˝áá.
á¨áá áá á áľááá áá˝áł á¨á á ááá á¨áá á°á¨áłáłá ááĽá áĽáŤá°á áá, ááá áá á á áá áá áá á¨áá á°á¨áłáłá áááá˝ áĽááľ, áá¨áá áĽá¨áᣠáá, áá áá. áá áááł á¨áá°á á¨á˝áŽá áá á ááŁáá.
á¨á¨áá°á á¨ááĽááľ áá á ááá á˝áá áá°áá°á á¨áá ááŠááľ áá°áá°á áá á¨áááŤáá˝ áľáĽáľáĽ áááá áááá˝ á¨ááŤááἠá¨ááá ááĽááľ áá á¨áĽ ááᢠáá á áĽáááá áá á¨áá¨á¨áťá á°ááľ ááá á¨áá¨á¨áťá áá á¨áá ááá°áľ áá.
áá áá á˝áá áĽáá´áľ áááłáľ ááťáá? á¨ááááŞáŤá á ááŤá áá¸áá. áá á¨á°ááá á áá á˘áá´ááľ á áá áá°áľ áá° áááá°á áááá˝ ááá¨ááá áá. áááľáᣠá¨á°áá°á á¨áá ááá°áľ áŤáááᣠá¨á°ááá á á á¨á áá á˘áá´ááľ áá ááľáŤáľ áĽáá¨áá°áááᢠáĽá á á˛áľ á¨á°ááá á á˘áá´ááľ áĽáááĽáŤáá. áá á¨áá ááá°áľ áŤááá, áá á ááľ áĽá áá áĽáááĽáŤáá.
áĽá á¨áĽááá á¨á°ááá ᥠá˘áá´ááśá˝ ááá áľáááľáľáŁ á á°á°á á á¨áá ááá°áľ ááľáĽ á¨áááľá á¨á°ááá ᥠá˘áá´ááśá˝á áĽáááááᢠáĽá, á áá áá á¨áľ, á¨á፠ááľáĽ á¨á°ááľ á°á¨áłáłáŽá˝á ááłáá፠áĽááááŁáá.
áá ááĽáśá˝á áááĽáŁá ááááŤáąá á á°á°á á á¨áá ááá°áľ ááľáĽ á¨ááááľá áááá˝á áááá¨áľ áľááááĽá. áá á áááľáŁ á áĽáááá ááᣠááá¨á¨áťá á°ááľ ááἠá¨áá¨áĽáᣠá¨á፠ááá°áá á¨áá ááá°áśá˝ áĽáŤááá˝á áĽááááááá˘
ááá á˝áá áá áááľá á á. áá ááĽáŤááłááą áá á¨á°áᨠá¨ááłáá፠áá áááá á áĽááą á°á¨áľáś ááá¨áá¸áľ ááá˘
á¨áá áááľá áĽá á á¨áá°áá áááľá ááá á áá áá°áľ á¨ááá ááá á¨á°á áľ á°á¨áłáłá áá¨á á áááŁááłá˝á ááᢠáĽááą áá áá¸á áĽá á ááááĄá.
ááłáą áĽáá˛á ááááą áááľá ááá°áá á á áŁá á áľá¸á᪠áĽá ááá¨á á áŁá á áľá¸á᪠áá. áĽá áŞááśáŞáŤ ááľáŞááľ áá áá áááľá áááŚáłá. á áłáŞá áĽáá˛á ááᢠáá áááľá á¨ááłáá áá á˛ááťá¸á áĽáŤáąá á á°áἠáŤáłáŤá. ááááŤáąá áá áááľá á áá°á°áá á¨á ááááŤáąá á áĽáŤááłááą áááááŽá˝ ááľáĽ á¨ááááááĄáľá áááľá á áá áá°áľ á¨ááá á áá¨ááá˝á ááŁááľ áľáááŁá˝á ááᢠáŞááśáŞáŤ ááľáŞááľ á ááááľ áá˛áľá áŚáł áááł á¨á°ááťá¸ áá áᣠáĽá á¨áá°áá áľáá ፠á¨á˛áľá áŚáł áááłá á áŁáĽáśáłáᢠááá áá áá á á°ááŁá á á¨á˛áľá áŚáłá áááł áááááľ á¨á°áťá áá, áľááá á°ááá§á.
áĽáˇá ááłáá áá á¨áĽáᢠáľáá á áá
áľáá ፠ááľáĽ á ááá á áŁá áľáá
ááĽá ááá¨áĽ áŤáľáááááłá timeseries_ids
á¨á°ááá˘áŚá˝ á˘áá´ááľ á áá á¨á°á¨ááá ááá
ááá¨áá˘
áá
áá á˝áá áĽáá´áľ ááłáá? áĽá áŚáŞá
áá á áá ááááľ ááľááá - á¨á ááľ á᪠ááá
á á°ááá á á á˘áá´ááľ á áĽáŤááłááą áááἠááľáĽ áĽá áá á°á¨áłáłá áááŤáá˝á á áá¨áá¸áľá˘ áááľá ááá á ááᢠlabel=value
á áĽáŤááłááą á°á¨áłáłá áá ááľáĽ á¨áá¨á°áľ. áĽá á áá áĽááśášá áĽááľáááŁáá timeseries_ids
á á ááľ áá¤áľ ááľáĽ.
á ááľ ááłá áĽáá á áᢠááľá N áááŁáśá˝ áá áŠáᣠáĽá á áá áá áĽáá°áááš áá á°ááłáłá á áľá á áĽáŤ áŤáá á ááľ áá¤áľ á ááᢠááá°áá áá¤áľ áĽá´áą áááá á¨áá á°á¨áłáłá ááłáááŤáá˝á ááááá˘
áá
á áĽáá˛á
ááááąá á¨á°ááá á áá¨á á áá á¨áá°áť ááĽááľ áĽáľá¨ 10 áá ááá¨áá á áľá˝áá. áĽá ááá¸á፠áá
á°á¨ áľááľáł áááł áĽáá˛áááľ á°áá
áśááłá, ááááŤáąá á áá áááąá áĽáá¨ááťáá label=value
á áá¸ááŤá ááľáĽ á ááľ áá áĽáť N áááá˝. áĽá áŠá áááľáľ áĽá፠ááá°áľ á áááłá¸á áááŤáá˝ áĽá áááŤáá˝ ááľáĽ á¨á°á¨ááš á¨á
á ááľááŽá˝ áŤáááľ áá
ááľáá áľáá
ááá áá˝ááá˘
á¨á°ááá˘áŚá˝ á˘áá´ááľ áááá áááá á ááá á ááŤá ááá áá á ááᢠá¨á ááľ ááá
áĽá á¨á°ááá á á˘áá´ááśá˝á ááá á áĽá á ááŤá¨áá¸á ááἠá ááá áááŤáľá˘ áá
áľáĽáľáĽ ááᢠkey=value
áĽááááľ. áááľáᣠá á ááŤáł ááŽá°á°áŽá˝ áá á áľáአááááá á¨ááá˝áá¸áá á ááŤáł áááá°á á¨á°ááá á á˘áá´ááśá˝ áĽáááááᢠá¨áá°á áľáá áŤáá˝ á¨á°ááá°áá¸á áá á ááŽá°á°á áááłá áĽáť ááᣠáááľá á á ááľ áŽá áá áááĽá ááááľá˘ ááá áááľ ááľá¨á áĽáá°ááá°á áá
áááľá á á ááľ áá á á°ááŤáŠ áŽáŽá˝ áá áá¨áá áááááľ áŤáľá˝áááłáᢠá°ááŁáŤá áááľá¨á áŤááľáá áá
áá ááá˘
áĽá á áá áá° áŤááťá˝á á°áááľ - áá° ááááá á°ááŁá timeseries_ids
. á á°ááŁá á áá ááá áĽáá°áá˝á áĽááľáĽá˘ áá
á°ááŁá áĽáá˛áŤáá áŤáľá˝áááłá timeseries_ids
áá°á°á á áľáĽáľáĽ label=value
.
á¨ááááŞáŤá á ááŤá á¨áá
á á°ááŁá á ááᢠáááľ á¨áá ááá áśá˝á˘ áĽáá
á á°ááŁáŠ áá¤áľ áá áĽááááá intersectInts
áááľ áááĽáŤáŽá˝ - a
и b
. á áá¤áą áá, á¨áĽááá
á áááĽáŤáŽá˝ áááá áá° áĽá ááááľ á áá áľ.
á¨áá
á á°ááŁá አáá
á áááľááᢠáááá áááá˝ á¨ááŤá áĽáá°ááááá a
á áá
loop ááľáĽ áááá á¨ááŤá áĽá´áśá˝á áĽáááááᢠb
. áĽá áĽáááá
áŤá¸áááᢠáĽááą á¨ááááą á¨áá, áĽá áááá á ááá°áá. áĽá á áľááá á result
.
ááłáśáš áááľá áá¸á? áłáľáŤá˛á ááľáĽáľáĽááľ áááá ááłáą ááᢠáááłá ᣠá¨á°ááŤá¨áĄ ááŹáśá˝ áŤáááľ a
и b
áĽáŤááłááłá¸á á ááľ áááŽá ᣠá¨á፠áá
á°ááŁá á ááŤá˝ ááĽááľá áááľ á áá°áĽáᢠááááŤáąá á ááľ áľáŞááŽá áľáááážá˝á ááľá¨á áŤáľááááá, áá
á ááááá áŽááá°áŽá˝ áĽááłá á áŁá áĽá áá.
ááá°áá áľáá ፠á áŤááłá áá á¨á°áá°á¨á° áá. áŤááł áĽá¨áá áá ááᢠáááá áááá˝ á áá
áŤááł ááľáĽ á¨á°ááŤá¨áĄ áĽááľáááŁáá a
. á¨ááŤá á á°áᨠáá°áľ ááľáĽ á áááᎠáĽááŽáŁáá b
. áĽá áá
áá á¨ááŤá áááá áŤá¨ááᥠb
á áŤááłá ááľáĽ. áŤá, á¨ááŤá áá° áá¤áą áŤáááľ.
áĽá ááš áááľ áá¸á? áĽá á á¨ááľáá ááľáĽáľáĽááľ áĽáť áá. áŤá áááľ á°ááŁáŠ ááľááá áááĽáŤáŽá˝ á áŁá ááŁá áááá. áá ááľ áááŽáá ááŤá áá á°ááŁá á 2 áááŽá áľáááážá˝ ááľáĽ áá°áŤá ᣠá¨áľáŞááŽá áľáááážá˝ á á°ááŤá ᣠáĽáá° ááľáá á°ááŁáá˘
áĽá ááłáą áá áá áŤááł áááá á áá á°ááŁá á°á¨á᪠áá á°á¨ áľááľáłá áááááá˘
ááá°áá ááłáą áááşáá áľáá á᪠ááᢠáá ááľááľ á áŁá ááá˝ á áá°áá. áĽá ááĽá ᣠáĽáá˛á á áŁá ááá á ááá á¨á ᣠáľáááá á ááááŞáŤ á áŞááśáŞáŤ ááľáŞááľ á¨ááľááá ááááľ á á°ááŁá á á áŤááł áá áᢠááá áá ááŽááá ááľá¨á ááá ááŽá°á°á áá á¨ááŤáłááá á áŤááłá áá áááá áĽá á áá áŤááł ááľáĽ áŤááá áĽá´áľ áááá°á˝ ááá˘
ááááľá áá áĽááá áŚáłáá˝ á¨á˛áአáá á¨ááŤáŁáááľ? ááááŤáąá á áĽááá ááľááŽá˝ ááľáĽ ááľ á¨ááşáá áŚááŹá˝á áá°áŤáᢠáááľá á áá˝áá á á°á°á á á˘áá´ááľ á áá áááááľ áá˝áá á¨ááá áŤá°ááᢠá¨áá˝ áľááľ áááá á á áľá ááá´áŽááśá˝ áááľáłáᢠáá á VictoriaMetrics áááá ááá˘
á á°áá ááá
ááłá á¨á°ááťá¸ á˘áľá´áľá ááá°áá á áá°ááŠá˘ á áá á¨áááą áááááááśá˝ áááá áá
á áááľááᢠáĽáá
á˘áľá´áľ áĽáááĽáŤáá. á¨ááááŞáŤá ááŤá áá ááĽá¨ áááŽá˝á áĽáá¨ááŤáá. á¨ááŤá áĽááá
á ááĽá¨ áááŽá˝ á ááá°áá ááŤá ááľáĽ áááŤá¸áá áĽáá¨áááŁáá. áĽá áá° áá¤áą áŤááá¸á. áááľá á¨ááłáá ááłá á áááá áááľ ááťááᢠáĽá¸áá ááá á¨áŤááł áĽáŞáá áĽáá
á áĽá á°ááŁáŤáľ áá°áŤáłá˝á ááᢠadd
и has
.
á á áľá-áĽá᳠ᣠáá°á á áŤááłá á¨áá á ááľ áĽá á áá á¨áá áĽá á¨á፠á ááłááľ ááá˝ á°ááŁáŤáľ á¨á°á አáá á áááł ááľáŤáľ áŤáá áľ áááľáá ᣠáá ááááŤá áá ááá á VictoriaMetrics ááłá á¨áá°á á áŤááł á 10 áĽáĽá ááŁá áááá áŤáłáŤá á˘
á á°á¨ááŞá, á¨áŤááłá á á°ááŁá á áá á˛áááá á áŁá áŤáá° áá á°á¨ áľááľáłá áá ááá. ááááŤáąá á¨áľáááľ áŁááľ áĽá´áśá˝ ááá á˘áľ áĽáá áĽáá¨ááťáá::
á¨áá ááááą á á°ááŁá á ááłáą á áŁá ááá˝ á áááá áá, ááá á áá°áá.
áĽááá˝ ááŤáľá°áá á¨ááá˝ááľ ááá ááłáľ áá áľáá ፠á á ááłááľ áááłáá˝ áĽáŠ ááá°áŤ áá˝áá. áŤá áááľáŁ áá°áá°á ááłá á°ááťá˝áˇáᣠááá ââááłá á¨áŞááśáŞáŤááľáŞááľ á¨áá á°á¨áłáłá ááłáááŤáá˝ ááááᢠáá áááľ áááá ááłáŽá˝ á°áľáá áá áááľ á áá°áá. á áľá á°áľ áĽá á áá á¨áá á¨á ááťá¸á áá¨áá áłááá á¨ááľáłááľ á˝ááł áľá á°áľ áĽá á¨á ááťá¸á ááááá á ááááá˘
á¨áá
á ááá
á á á°ááŁá á á áľáĄá áľ. ááŤáŠáľ á¨ááá á áŞááśáŞáŤ ááľáŞááľ áááŽá˝áŁ á á ááá ááľáĽ ááᢠtimeseries_id
á¨ááááŞáŤááš 64 á˘áľ á áá á¨áą áá áĽá á¨áá¨á¨áťááš 32 á˘áľ áĽáť á¨ááá¨áŠá áľ áŁá 32-á˘áľ áĽá´áľ ááá˘
áá á¨ááἠááá á á á˛áľá áá á áá¨áá˝á, á áá á°á¨ áľááľáł ááľáĽ áĽáť áá°áŤá.
á¨áĽáą ᤠá á á ááᢠá áŁá á¨á°ááłá°á á áá°áá. á¤áá áá á á°áá ááŞááśáŞáŤááľáŞááľ á¨á á ááá ááłá á¨á°ááá ááᢠáááľá ááá á°á¨á᪠á°ááŁáŤáľ á¨ááᢠá VictoriaMetrics á ááá áĽá á áá á¨áá á°ááŁáŤáľ áĽáá á áá˘
á°ááŁáŤáľ á áᢠadd
, áá
á á áłá˛áľ áĽá´áśá˝á áá¨ááŤá. á°ááŁá áááá
has
á áłá˛áľ áĽá´áśá˝á á¨áááľá˝á˘ áĽá á ááľ á°ááŁá á á del
, áá
á áĽá´áśá˝á áŤáľáááłá. á¨á¨áłáľ á°ááŁá á á len
, áá
á á¨á
áá
áąá áá á ááááłá. á°ááŁá clone
áľáĽáľáĄá ááááá. áĽá á°ááŁá appendto
áá
á áľáĽáľáĽ áá° ááŤá áááá áá timeseries_ids
.
á¨áá á¨ááἠááá á á á°ááŁá á áá áĽáá°áááľá áĽáá. áľáĽáľáĄ áááľ á áŤááľ á ááľ
-
ItemsCount
á áľáĽáľáĄ ááľáĽ áŤááľá á¨ááĽá¨ áááŽá˝ áĽááľ á ááĽááľ áááááľ á¨áłáľ ááľá ááᢠáŤááá á¨áłáľ ááľá ááá°áŤá áĽáá˝á áá áᣠáá áĽáá áá¨á áá á¨áĽáᣠááááŤáąá VictoriaMetrics áĽááá áá á¨á˘áľá´áąá ááááľ á á áááŞáá ááľáĽ áľááá áá ááᢠ-
ááá°áá ááľá áá
buckets
. áá á¨á ááľ ááá á ááŤá ááá˘bucket32
. áĽáŤááłááą ááá á áááhi
ááľá. áĽááá á¨áá°áááš 32 á˘áľ áá¸áᢠáĽá áááľ áááĽáŤáŽá˝ -b16his
иbuckets
á¨bucket16
ááá áŽá˝.
á¨16-á˘áľ ááá á ááá°á ááá á¨áááá 64 á˘áľ áĽáá á°á¨áá˝áˇáᢠáĽá á˘áľá´áśá˝ ááĽáŤááłááą áŁááľ áá á°á 16 á˘áľ áĽáá á°á¨áá˝á°ááá˘
Bucket64
áľááľáá áŤáŤáľáłá uint64
. ááááą áĽááá
á áááá˝ á áá áá áá°áá. á á ááľ bucket16
á¨áá°áá áá¨áá˝ áá˝áá 2^16=65536
áľáá˝á˘ áá
á 8 á¨á°á¨áá, áá
8 áŞááŁááľ áá. áĽáá°áá á 8 áŤáŤáá 1000 ááᢠuint64
áľááá. áááľá Bucket16
- áá
á¨áĽá 8-áŞááŁááľ ááá
á áá.
á á˛áľ áĽá´áľ ááá¨áá á¨áá ááá á á ááą áá´áá˝ áĽáá´áľ áĽáá°áá°áá አáĽáááá¨áľ.
ááá ááá á¨áááá¨á á uint64
áĽá´áśá˝. á¨ááááá 32 á˘áľ áĽáá°ááá, á¨áłá˝ááá 32 á˘áľ áĽáá°ááá. áááá áĽáááááᢠbuckets
. á áĽáŤááłááą áŁáᲠááľáĽ áŤááľá á¨áá°á 32 á˘áľ á¨á°á¨áá¨á áĽá´áľ áá áŤááłáľáŠá˘ áĽá áĽááą á¨ááááą á¨áá, á¨ááŤá á°ááŁáŠá áĽáá áŤááá add
ááá
á b32 buckets
. áĽá áá
á°ááá 32 á˘áľ áĽá፠áá¨ááŠá˘ áĽá á¨á°ááá° true
, á¨á፠áá
áááľ áĽá፠áĽáá˛á
á áááľ áĽá´áľ á¨áá¨áá áĽá áĽáá°áá
áŤá áá á ááá á¨áá áááľ áá. á¨á°ááá° false
, á¨á፠áĽáá˛á
ááááą áá ááľááá áá á. á¨ááŤá á ááá
አááľáĽ áŤááľá ááĽá¨ áááŽá˝ ááĽá áĽáá¨ááŤáá.
áľáááááá áŤáááá bucket
á¨á°áááá áá-áĽá´áľ áá, á¨ááŤá á°ááŁáŠá áĽáá áŤááá addAlloc
, áá
á á á˛áľ áŤá°áááá bucket
, áá° áŁáá˛á ááá
á áá¨áá.
áá
á¨á°ááŁáŠ á á°ááŁá á áá b32.add
. á¨ááłáá á á°ááŁá á áá á°ááłáłá ááᢠá¨áá°á 16 á˘áľáŁ áá
á°á 16 á˘áľ áĽáá°áááá˘
á¨ááŤá áááá ááἠ16 á˘áľ áĽááááá. ááĽááŤáá˝á áĽááááá. áĽá ááĽá፠áŤá, á áááĽáá áá˝ áá á¨áááá¨áá¨á á¨áá°áá áá´á áĽáá áŤááá bucket16
.
áĽá áĽáá
áá
á°áá á°á¨á áá, áá
á á á°áťá áá á áááťá¸áľ á áá áľ. áĽá áĽáá°áááᢠuint64
á¨ááłáá፠áá á ááá á˘áľ áĽáá˛á bitmask
. áá
ááá
64-á˘áľ áĽá´áľ áááĽá ááᣠá áá
á á¨áá
á á˘áľ ááá áá¨ááἠááá áááá áá˝ááᢠáá
á˘áľ áááááąá áĽá áĽááłááá á¨á áĽá ááááąá áĽááááłááᢠá¨á á á°ááŁá á áá¸ááᣠáá
á á¨áá°á á áŤááłáá˝ áá á˛áááá á¨ááťááŞáŤ ááłáááŤáá˝á á 10 áá áááá á á áľá˝áááá˘
á¨áá áááťá¸áľ á á°á¨á᪠áŞááśáŞáŤááľáŞááľ ááá˝ áĽá ááťáťáŤáá˝ á ááľá˘ á áĽááááš áĽááá ááťáťáŤáá˝ á á ááľ ááááŤáľ á°á¨áá¨áá ᣠáá á áááľ ááľáĽ áŤááá áŽáľ á¨áááš á ááá˘
áá ááá á¨áááťá¸áľ á á áá - ááá ááá áĽáá°áá˝á á áá°áĽ áááťá¸áľá á áá¨ááŠ, ááááŤáąá ááá ááá á áá˝áá. áááťá¸áľ á áĽáááá áá á¨áŽáąá áĽáŤáľ ááááłá. áľááá áá áľáááá áá¨á áĽáá˛áá á¨ááá á áá áĽá á á°ááá á áááľ ááľáĽ áááťá¸áľ á áá áá ᢠááááľ ááá¸áᣠᨠVictoriaMetrics ááá áŽáľá áááá¨áľ áĽá áĽá፠áŤááľá ááá˝ ááťáťáŤáá˝á áá°áľ áá˝ááá˘
áľá á˘áľá´áľ áĽáŤá á ááᢠᨠC++ á¨áŹáá°á áĄá á á°ááŁá á áá á áŁá á°ááłáłáᣠá˘áľá´áľ á°ááťá˝áˇáᢠá á°ááŁá áŠá á¨á፠ááľá°áá?
á¨ááᣠá¨á፠á áá°ááᢠáá áá á˘áľá´áľ áľá°áá áᣠá áŞááśáŞáŤááľáŞááľ ááľáĽ áĽá á áá á áááᾠᨠids timeseries á áááá áĽáááľ á°áááťááᢠáĽá á¨áĽááą ááá á á¨áá°áááš 32 á˘áľ á áá á¨áą áá áá¸á. á¨áłá˝áá 32 á˘áľ áááᥠáá˝ááᢠáľáá˝ áľáá˝, áĽá áá áááἠáá˝áá. áľááá , áá á á°ááŁá á ááá á¨ááἠááá á á¨á°ááťá¸ áá. áĽá áĽáľá¨áááá áľá¨áľ á¨C++ áľáá ፠áá á ááá ááłá á¨á°ááťá¸ ááᢠáá á ááá ááłá áááťá¸áľá áŤá°á¨á, áá áááľ áá ááľ á¨á°áá°á ááłá á áŁá áĽáŠ á áááá áááľ áá.
á¨á áá´á áááŞáľ ááᣠáĽááľáľááá¨áą áĽáááŤá˝ááá. á¨á ááľ áá áá°á á ááľ, á ClickHouse ááľáĽ áá°áá°á áľááťááľáśá˝ áľá áááťá¸áľ á°áááŻá. áĽáą á áĽá á á˛áłá á¨C ++ áľáá ፠ááá áá áľáá ፠á á ááŤá á ááľááłá ááľáĽ ááĽáŠ áľáŤ á¨á°á á áá áááᢠá¨áááá 32 á˘áľ áŁáĽááá áá áááá¸áá áľááá áĽáá°áĽá áá°áᨠáĽáááľ á¨á°áᨠáľáá ፠á¨á¨á ááá˝á áá˝ááá˘
ááá°á áĽáŤá á ááᢠᨠInfluxDB áá á¨áłá ááŠááľ áááľá áá?
áĽá áŤáá˛áá ááŠááśá˝ á á. á á ááťá¸á áĽá á áá á°á¨ áľááľáł áááł á¨ááᣠá áá°ááá˝ ááľáĽ InfluxDB 10 áĽáĽá á¨á áá á¨áá á°á¨ áľááľáł áááł áá¨áá°á áŤáá˛ááᲠáá á°á¨áłáłáᣠáĽá á˛ááŽáľ áááłá á áááŽá á¨ááá áŠá˘ áááłáᣠVictoriaMetrics 1 áᢠá áááŽá áá á¨áľáá˝á áá áááᣠInfluxDB á°áá 10 áᢠáááľáłáᢠáá á°áá áľáá ááŠááľ ááá˘
ááá°áá áŤáá˛áá ááŠááľ InfluxDB áĽáááł á¨áá á¨áĽáŤá ááááá˝ á ááľ - Flux áĽá InfluxQLᢠá¨áá á°á¨áłáłá áá á˛ááłá°áŠ áááľáŤáľ á áŁá á ááş á áá°áá
áĽá ááá ááŠááľ InfluxDB áľáá˝ áĽáááł á¨áá á¨ááἠáá´á á áá, áĽáŤááłááą ááľáá á¨á°ááŤáŠ á¨áááŤáá˝ áľáĽáľáĽ áŤáá¸á á ááŤáł ááľáŽá˝á áá¨áá¸áľ áá˝áá. áĽááá ááľááŽá˝ á¨á áá áá° ááá ááááľ á á¨á´ááá˝ á°á¨ááááá. áĽááá á°á¨á᪠ááľáĽáľáŚá˝ á¨áá áá á¨áľ áá ááŁá áĽáŤá áŤááłáľáŁá. ááá á á áĽá ááá¨áłáľ á áľá¸á᪠áá.
á VictoriaMetrics ááľáĽ ááá ááá á áŁá ááá ááᢠáĽááŤáŁ áĽáŤááłááą á°á¨áłáłá áá ááá-áĽá´áľ ááᢠáĽá´áľ á¨ááĽáŚá˝ áľáĽáľáĽ áá - (timestamp, value)
, áĽá ááá áľáĽáľáĽ áá label=value
. á ááłáá˝ áĽá ááŹáśá˝ ááŤá¨á ááá áááŤá¨áľ á¨áá. áá
áááááá áłáł áááá¨áĽ áĽá á¨á፠áááŁáá ᣠááá¨á ᣠááááᾠᣠáááŁáᾠᣠáááŤáá ᣠáĽáá° InfluxDB á á°áᨠᣠá á°ááŤáŠ á¨áľáá˝ ááŤá¨á áŤá áľááśá˝ áĽáľá¨áááá áľá¨áľ á áá°á°áá áŠáᢠá˘á°áá áá, á áľá¸á᪠áá, á¨áŽáľ áľáĽáľáĽ ááá á ááĽááľ.
ááá˝ áĽáŤá á ááᢠá¨á°áááá¨á á ááľ ááááľ á˝áá áĽááłá á áľááá á°á¨áľáťááᣠáá á¨á°ááá á áá¨á á áá áá° áá á°á¨ áľááľáł á¨áááᣠááᣠáľááá áĽá፠áá¨ááá áĽá¨á°áŤáá° áá?
á ááááŞáŤáŁ á áá°á á ᨠGo áŤááł áá á¨á°ááá á á˘áá´ááľ á¨áá á á°ááŁá áá á áłááťááᢠáá á á°ááŁá á ááá¨á ááśá˝ á°áľáá á áá°áá ááááŤáąá áá á¨á°ááá á á˘áá´ááľ á á˛áľá áá á áá°ááá á áĽá áłáłá¤á á á˛áľá áá ááľááἠá áá áľ áľááá áá ááἠáĽáá°áá á˛ááá ááááᢠá áá áľáá áŤ, áááá¨áťáá áĽáá°áá á˛áŤáľáááŠ, á¨á°ááá á áá¨á á ááá áá áá. áĽá á¨áááá ááἠááłá¨áť áłáŁáá ááááŤáąá áĽáąá ááááľ á áľá˝ááá˘
áá! ááŞáááą áĽááá°áááá! áľá ááŹá ááᢠáĽá ᨠWildberry ááᢠáá áá° áĽááľ áĽáŤááá˝ á ááᢠáĽáŤá á ááľá˘ á¨áá°áá áŞáŤáá á ááá´áá¸á áĽá á áá á¨á°á¨ááá áá¨ááá˝á á ááááĄá áľ áá á¨á°áᨠááá á¨áá¨áĄ ááááŁáľ á ááľ ááááá áá ááľ áá áá¨á á¨áŤá á ááá áĽáť á áááá á¨ááἠááááá ááľá¨á áá˝á áá á áĽáá áŤáľáŁá áá ᣠáááľá ᣠá á ááľ á¨áá ááŠááľ ááľáĽ áĽá áááĽáŤáŽáš á á°ááŤá¨ ááááľ á¨á°á áłá°á áľááááá¸á áá¨áá á áŤáľáááááľá? áĽáŤá ááĽá 2 - á°ááłáłá áľáá° ááá á¨á˘áľá´áľ áĽá á¨ááá˝ áááŽá˝ áá áľáá°á°áá አááááŁáľ á¨á áááŁáŁáŞ áááŞáŤáá˝á ááá áá ááá¨áá? ááááŁáľ áĽáá°áá á áááľ áááťá¸áľ ááá¨á ááá áá˝áá?
áááá°áá áááľ áĽá°áŁáá. áĽáľáŤáá áĽá፠á áá°á¨áľááᢠáŤáľááá áá áĽáá°ááááᢠá¨ááááŞáŤá áĽáŤá áá áá á?
á áááľ áááłáá˝ áá á°ááŤáá°ááᢠááá°ááá á°áá ááľáĽáľáĽ á áá á á°ááŁá á ááá áá á áᢠáĽá ááᥠá áá á¨á°á¨áááá áľá á¨ááááŞáŤáá á ááá¨áĄá.
á á. á ááááŞáŤá áááł, á¨áá¨á á ááá á á ááá áá á áľáá áááá, ááááŤáąá á áĽáŤááłááą ááá ááľáĽ á áĽááá áá áááá˝ ááľáĽ ááááĽááľ á°á¨áłáłá áááá˝ á¨á°áŁá áá¨ááá˝á áá¨áá¸áľ á ááĽá. áĽá ááá á°á¨áłáłáŽá˝ áľáá˝ á¨ááĽááľ áá á áŤááᾠᣠáááľá ᣠá°ááłáłá á°á¨áłáłá á ááááľ áĽá á áá áááá ᣠá¨á፠á ááááŞáŤá áááł á¨ááá°áá ááłá áá á˛áááá á á°áŤáá á¨á˛áľá áŚáł áá á¨á áá áĽááŁáá á˘
áĽá áľááá - á á, á áá áá¨ááá áĽáŠ á ááŤá áá. ááŽáá˛á¨áľ áá ááá áłá. ááá áá ááŽáá˛á¨áľ áá á˝áá á áá. áĽááá á á¨ááἠáááĽáŤáŽá˝ á ááŤáá áľá áľ ááᣠáááá áááŤáá˝ áĽá á°á¨áłáłá áááá˝ ááł-áá¨áá á áá á°á¨ áľááľáł ááľáĽ ááľááἠá áá áľá˘ áľááá , á¨áá¨áá áááá˝ áľáá á¨áá, áĽáąá ááááłá, á¨ááŤá á¨ááľáłááť áááłá á ááááľá áľ áá á áŁá á á ááŤáŤ áááł áŤáľáá, ᨠVictoriaMetrics á á°áá¨. á ááááąá áľ áá áŞááśáŞáŤ ááľáŞááľ áá á°á¨ áľááľáłá á¨ááś á ááá á, áááľ áŞááŁááľáľ áĽá፠áá áá, á¨ááἠáááĽáŤáŽá˝ áá á ááá ááá áá ááááłá.
áŤáá á áááŞáá áá á°á¨ áľááľáłá áá áá ááᢠáĽá´áśá˝ áŤáá¸áá á¨áá á°á¨áłáłá-ááááśá˝á áŤááááłáᢠáĽá á áá ááááľ á¨á°áŁáá¨áá á°ááááľ á á ááľ á¨ááἠáľááľá áĽá á áá ááľáĽ áŤá¨áááĄá˘ áĽá á˘áá°áá´ááą á°á¨áľáˇá ááá áĽááłááá áááŁááᢠá á°áááś á¨ááἠááłáá˝ á ááá áŚááŹá˝áá˝ ááá ááľáĽáľáĽááľ ááááŤáľ á¨á ááá áá á¨ááŤá¨ááš áĽá á¨á°á°á¨á°áŠ áá¨ááá˝á á¨ááŤáŤááą á áááá˝á, á°á°ááááá˝á áá°ááĽáŤá.
áá¨áá áááťáá ááá á áááá˝á á áá ááá?
á áá.
á áĽá LevelDB ááá áá á°áľ ááľáĽáŁ áá á¨á°á°á¨á°áŠ ááľááŽá˝ á°ááá ááᢠá á ááá ááŤááľ áĽá áááááá ááááľ áĽáá˝ááá. ááá á áá ááá áľá? ááááŤáąá áááá ááᢠááááŤáąá á áááá˝ ááĽáŤááłááą ááľáá á°ááŁá ááĽáŤáľ áĽááłááŚáľ áŤááááłáᢠá¨á°ááŁá áĽáŞ 5 nanoseconds ááᢠáĽá 100 ááľááŽá˝ áŤáááľ, ááá˝ á°á¨ááľ á á°ááŁá áĽáŞ áá áĽáť áĽáá ááá.
áĽáá°áá áŤá ááá á á, á á. áĽá á¨áá¨á¨áť áĽáŤááŹá˘ áĽáŤáá áľáá˝ áĽáááł áááľá áá˝ááᢠááááľáá, áá¨áá á áá°ááľá áľ áá, áááá á áľááá áľáĽáľáŚá˝á ááá á áĽá á ááááá á á˝ ááľááἠá ááťáá? á áá áá áĽá áá áááłáá áĽáá° VictoriaMetricsᣠClickHouseᣠááá° áŁá á ááłááľ áľáááśá˝ áá áľáá áá á ááá áááĽáŁá?
á¨á áá ááá˝ áááľá¨á á ááľ ááłá áĽá°áŁáá. áľáá˝ á áťááááľ á¨ááĽááľ áááŞáŤ áĽáá´áľ áĽáá°áá°áŤ áĽáá á? á¨á°ááá áľá áááľ áááááŁá, áá áá áá° á ááľ áĽá´áľ, áá° ááá°áá - áá áá¨ááŤá. áĽá áá¨áááá. áĽá á ááŤá ááĽááľ áŤááá. á áá° ááá áŤá á á°ááłáłá ááľá¨á áľá˝ááá . á á á¨áŤ áá áááá á áľááá áĽáááłáá˝ áá¨ááŠ.
áĽáş áĽáŤááá á°á¨áľáťááᢠá¨áĽááľá ááłá á¨áááŞáŤ áŚáł á ááᢠáá á áááľ áľáá áĽáá°áááá áŤáá, áá á áŁá áĽáŠá áľáá ፠áá. áá á˝áአá°áá˝ áĽááá á áááŞáŤáá˝, á ááłááľ áá¨ááá˝á á ClickHouse ááľáĽ áŤáľáááŁá, áĽá á ááá áĽáá´áľ áĽáá°ááááą áĽá áá°ááľ áĽáá°ááŤáŁáŠ á áŤááá, áľááá áááá áĽáŹ áááŚá˝ ááľááἠá ááĽááľ. ááá áá á ááľ ááá ááľááľ áĽáá°ááŤáľáááááľ áŤáá áĽá áĽáŹ áĽá´áśá˝á áĽá፠á¨áá áŤáá ááá ááá á áłá°ááľá? ááá áá áá á¨ááŤáľáááááľá á áľááá áŤáá áĽáť áá.
á áááŤá˝á áá á¨áá á°á¨áłáłáá ááá¨áá¸áľ á¨ááἠááłáá˝ áľááá áááá á áá°ááá. áááłá, ááŽáá˛á¨áľ áá°ááá
áááłá, á ááľáá áĽáŤ, á áá¨á¨áťá á°ááľ ááľáĽ á á°áá¸áŤáłá˝ ááľáŽáľ ááľáĽ áŤááľá á¨ááľá°áśá˝ áĽááľ ááá á á ááĽááľ. á˝áአá Go ááľáĽ áĽá áľáá ፠ááľá¨á áá á¨áĽáᣠáááľá áá áá ááá áááá á á áááááľá˘ áá á áááááľ á áá¨á¨áť ááá á ááá á¨áᣠááááŤáąá áááá á á áľá¸á᪠ááᢠá á°áá°á á¨áá ááŠááľ ááľáĽ á¨á°áá°á áľááá ááá á á¨ááá á á°ááŁá አááá ááá áá˝áá. á á°áá¸áŤáłá˝ ááľáŽáľ ááľáĽ ááľá°áśá˝á áááá á á¨ááá, á¨áááľááá áŤá á ááá á áá°áá. áĽá áĽáá°ááľá á áá áá á ClickHouse ááľáĽ ááá á áá á°á¨áłáłá á¨ááἠááłáá˝ ááľáĽ á áá°á°áá á¨á, ááááŤáąá ááá°áá á á áľá¸á᪠áá.
áĽá á ááľ á°á¨á᪠áĽáŤá. áľá á ááŤáááľ áĽáť áá áĽá¨á°ááááá áŤáááᣠáĽá á á ááľ áá áľ áĽáá° áŤááŚá ááᣠáŤáá ááŤáááľ á¨ááŁá ááá áĽáá°áá ᨠá áľáłááłááᢠáĽá á¨áľáŽ áááĽá áĽáá´áľ áááá áĽáá°ááťá áŤáá áá á ᣠáááľá á á°áá á ááľ ááĽáĽ ᣠá á°ááľ á ááľ ááĽáĽ ᣠááá°. á ááá á°á¨á ᣠáĽáŹ áá¨áá á á ááťáŤá áááł áá ááľ áá á¨áááá áá á áŁá ááš áá ᣠáĽá ááá ááá ááááľ áá˝áá áᣠ. áá ááŽáá´á¨áľ ᣠáŞááśáŞáŤ ááľáŞááľ áá áá á°ááŁá á áá°áááᢠááá°áá áłá áˇá? áŤááá ááá á áááá?
ááĽáŤáá á áá°ááááᢠá°á ááááťá˝á á á¨ááá áá áááᢠáá
áĽááľ (áłááááá) áľáá ááź áĽáá°ááá¨áá áá áááᢠáĽáá
áĽá á˝ááŽá˝ á á. á ááááŞáŤ, áĽáŤááłááą á°á áá áá¨áłá downsampling
á¨áŤáłá¸á á¨áá ááá: á ááľ á°á á á°áá°á á¨áá ááŠááľ áá áááááá á¨áááá° ááĽáĽ ááááľ ááááá, á ááľ á°á á¨áá°ááá, áá
á°ááá, á ááŤá áĽá´áśá˝á ááááá. áĽá áľáááśá˝ áá° á¨ááἠááłá áááĽá á¨áá˝á á¨áá áááá á ááľ áá á ááá°áá°á á áá˝ááᢠááĽáŤááłááą áľáááľ á¨á°áᨠá˛á˛áá˝á áá áá áĽáá°ááŤáľáááá ááááᥠáá˝ááᢠáĽá ááá°áá á á áľá¸á᪠áá.
áĽá ááá°áá ááá áŞááśáŞáŤ ááľáŞááľ áá áĽáá° ClickHouse ᣠá¨áá°á áá á áŤáá áĽáŹ áá¨á áá áááľáŤáľ á¨á°ááťá¸ á ááá á áľáááľá ááľáĽ áĽá áŽáŽá˝ áŤá á¨á ááľ á°á¨ááľ áŁáá° áá ááľáĽ á á ááľ á˘ááŽá á¨áľáá˝ ááľáĽ á áŤá ááľá¨á áá˝ááᢠá¨áá á°á¨áłáłá ááĽáĽ á ááľ á VictoriaMetrics - 50 ááĽáĽ á á°á¨ááľ á áŽáᢠáĽá ፠á áááá áá°ááááľ áŽáŽá˝ áá°ááłáᢠáááľá 000 áŽáŽá˝ áŤáááľ áááłá á á´áŽááľ á ááľ á˘ááŽá ááĽáŚá˝á ááááᢠáĽá áá ᨠVictoriaMetrics áĽá ClickHouse ááĽá¨áľ á¨ááá¨áľ ááááľá ááááłáá˘
ááá áĽá á áŞááśáŞáŤ ááľáŞááľ áá áá áá¨á á áĽááľ áá¨áá ááᢠááááľ á á ááŤá áá¨ááá ᨠ0,4 áĽáľá¨ 0,8 áŁááľ á á ááľ ááĽáĽ áá. áĽáŤááłááą ááĽáĽ á¨áá áá á°á + áĽá´áľ ááᢠáĽá á á ááŤá á¨á ááľ áŁááľ áŤáá° áá¨áááá˘
á°ááá áĽáŤá á áá. áá á°áá á¨áá¨áť áá ááŤá áááľáá?
á ááľ ááá°á¨ááľ. á á áᥠá¨ááá˝ á°á¨áłáłá á°á¨áłáłá á¨ááἠááł ááá˘áá˝ áá ááááľ á áľááááᢠá¨áĽááą áá á°á áá áłáá°á á ááľ á°á¨ááľ ááᢠáĽá á ááŤáááľ ááľáĽ, áááłá, áĽáá˛áá á ááľ á°á¨ááľ áá. OpenTSDB áĽáá˛á á ááľ á°á¨ááľ á ááᢠá InfluxDBᣠnanosecond áľááááááľá˘ áŞááśáŞáŤ ááľáŞááľ á ááľ ááá°á¨ááľ á áá ááááŤáąá ááŽáá˛á¨áľ á ááľ ááá°á¨ááľ á ááᢠáĽá VictoriaMetrics á ááááŞáŤ á¨á°á°áŤá áááŽáá˛á¨áľ á¨áááľ áá¨ááť ááᢠá áá áá á¨ááá˝ áľáááśá˝ áá¨áá ááá ἠáá˝áá.
áŤáááááłá¸á á°á ááá°á áľááááááľ á áá¸á - áá ááĽááą á á áá, ááááŤáąá á áá á°á¨áłáłá á¨ááἠááł ááľáĽ á á°á¨áḠá¨ááἠá áááľ ááá°áá. áá á¨á´ááŚááľ áá¨á ááá áá¨á á 30 á°á¨ááľ á á¨á°áá á¨ááľá°á áľáĄá áľ á¨áá á¨á° áááľ áá¨á á¨ááᣠá¨á፠á á ááá°á áľááááááľ á áᣠáľáá˝ á áŤáľááááľáᢠáĽá áá á ááἠá¨á¨áá°á áľáááá˝ á¨ááĽááľ áľáááśá˝ á¨á°á á°áĄ, á¨á፠nanosecond áľááááááľ áŤáľáááááłá.
ááá°á¨ááľ áľááááááľ á VictoriaMetrics áDevOps ááłáá á°áľáá ááᣠáĽá á áŞáááą ááááŞáŤ áá áá ááľáłá¸á áá áĽááááš ááłáŽá˝ á°áľáá ááá áá˝ááᢠá°áľáá áááá á¨áá˝áá áĽá¸áá ááá á¨áá°á áľáááá˝ á¨áááľ áľáááśá˝ áá.
á áá°áááá! áĽá áá áĽáŤá. á PromQL ááľáĽ á°áłááááľ áááľáá?
áá áá° áá á°áłááááľá˘ VictoriaMetrics PromQLá áá á áá áá°áááᢠá á°á¨ááŞá, áá° PromQL áá á¨áá á°ááŁá áá¨ááŤá, áĽáąá ááŁáá
á¨á´áááŤá á°ááĽ
á áłá°áł áĽááą ááľáĽ á¨á°áááᥠá°á áááá˝ áĽáť ááłá°á áá˝ááá˘
áááŽáá˛á¨áľ á¨á¨á á áá áá¨ááť áá° VictoriaMetrics áĽááłáááአá¨ááŤááľááľ áááľá áá? (á á áľá°áŤá¨áśáš ááľáĽ ááťá, áá° áááŤá áĽá¨ááŤáá))
-
71,4%Prometheus5á á ááá áá
-
28,6%áľá VictoriaMetrics2 á áŤáá á áá áá˘
7 á°á áááá˝ áľáá˝ á°áĽá°ááᢠ12 á°á áááá˝ áľáá á°á á
ጠá áľááááá˘
ááá: hab.com