áĽá á°áὠᨠElasticsearch áá ááłáááᢠáá áááἠááľáłááťáá˝á "á á°áá áľáá áá á" ááá¨áá¸áľ ááá áá á˛ááá áá áá¨á°áłá? áĽá á¨á ááŤáł á¨áá¨á ááĽá¨áá˝ ááľáĽ á¨áľáááá ááľááľ áá¨áľ á áá á¨ááá? áá ááááľ á ááá´áá¸á ááľáŤáľ á ááĽá ᣠáĽá á áá á áááľ ááĽááśá˝ áá áľá°áá¨ááá ?
áĽá Odnoklassniki á¨áá ááá áááľá ááłá ááááłáľ elasticsearchá ááá áá ááľáááᣠáĽá á áá á¨ááĽá áá áŤááá áááľ áĽááŤááááᥠáľá á ááá´áá¸áá áá áľá ááĽááśá˝á˘
áĽá Pyotr Zaitsev ááᣠá áŚáľáááá˛á᪠á¨áľáááľ á áľá°áłáłáŞ áá áĽá°áŤááᢠá¨á፠á ááľáŁ áĽá á°áá á áľá°áłáłáŞ áá ááŠáŁ á¨ááá˛áŽá áááᣠá¨áľááááľ áááᣠá¨Elasticsearch áá áĽá°áŤ áá áᢠááááŁáľáŁ áá ... ááá á¨áłá¨áŁ áĽáá á¨áĽáą áá áĽá°áŤááᢠáĽáá á á á áááľ á á ááŤáł áááľ ááá ááŽáááśá˝ áá áĽáłá°áááá˘
áá° Odnoklassniki áľáᣠá áá´áá˝ááľ á áá áá áá áá á¨Elasticsearch áá ááľáŤáľ áĽáá°áá˝á á°ááᏠáá áᢠáľáŤáá á¨á¨á¨áľáŠ áĽá ááá áľáŤáá˝á á¨á¨á¨áľáŠ á áá á ááŤá áá á¨áá á¨áá á¨áá ááá áááľ á˛áľá°á á¨ááťáťá áľáá áľáŤ á°á°á áá˘
ááľáááśá˝
á¨áľáááľ ááľáááśá˝ áĽáá°áá¨á°áá á°ááá á°áá-
- ááŹááá áĽáá° á¨ááľ áááŁá áĽá á áá ááá áá á¨á áľá˘ áŠáŁááŤá áá á áááľ á¨áá áá áááľ áľááá ááŽááŤááŽá˝ áĽá ááŤáŞáá˝ áŤáááłá, ááĽááą á¨á°ááá° áĽá ááš áá á.
- á¨ááἠáá á: á á ááŤá á¨50-80 áşá áááĽááśá˝ á á°á¨ááľ, ááá áá á ááľ ááá á¨á°á áá¸, áľáŤáአá ááá á ááá°áĽá, á á°á¨ááľ 2-3 áááŽá ááľááŽá˝ ááá áá˝áá.
- á¨ááá áá ááá˝á ááá°áą ááĽááľ á¨ááŤáľááááľá ááľáááśá˝ á¨á°áá áá˝ áá á¨á°ááááá ᣠáĽáá˛á ááááąá áľáááľ á¨áá ááá áľ á¨á°ááá°á ááľá áá áááá á°ááááĽá-á°áá˝ ááááľ áááľ áááľ á¨áá°áá áŞáŤá¸áá áááἠááľáłááťáá˝ áĽá¨ááá áá áĽá á¨á ááľ á áá áá á á á áááááᢠááá°á áá°áááá áĽáŤá áá¤áľá˘
- á áľá°áłáłáŞááš á á°áŤáŠ áĽáá´áľ áĽáá°áá°áŤ á áĽáááľ áĽáá˛áá¨áአáłáŤáľááá á áľááá á¨áá á ááá áá°á á¨áá˝á áĽáá˛áá á áĽáĽáá á ááááá˘
- áľááá áĽááá áľáááśá˝ á á¨ááá á¨ááŤáľáááá¸á áĽá¸áá á¨áĽáá áĽáŤ á ááłááľ áááľáá ááá¨á áá.
- á á°á¨ááŞá Odnoklassniki á áŁá áĽáŠ á´áááŤá áŁá á á ááᥠááááá á¨ááááá¨á á áááááľ á¨ááἠááĽá¨á ááľááľ (á áľááá°áᣠáŤááłáá° áĽá á áášá á ááááá áá) ááľá¨á á áá áľá˘
á áá ááŽáááľ áľáá ፠ááľáĽ áŤáá á¨áá¨á¨áťá ááľáááľ á¨á áá áá áŤáľá¨áááá, áá á á á áá áááá ááľáĽ áĽáááŤáá.
á¨áĄá
á á áŤáľ á¨áá¨á ááá¨áá˝ ááľáĽ áĽáá°áŤáá, ᨠElasticsearch áłáł ááśá˝ á áŚáľáľ áĽáť áááᥠáá˝áá (á á°áá°á á´áááŤá áŤááá ááááŤáśá˝).
áĽááá á áŤáľ á¨áá¨á ááá¨áá˝ á áááľ 18 áşá á¨á°ááŤáŠ á¨áááἠááľáłááť áááŽá˝á áááá - áááľáá ᣠáŽáá´áááŽá˝ ᣠáááŁá áá˝áá˝á˘
á áá áŁá
áŞ: áááľá°á á ááŤáŁáá˝ ááľáĽ ááááŤá
á áá áá:
áśááá
á¨áááľááá á á ááá á áá ááááŞáŤ áá áĽáá°áá¨á°áá á á¨áá˘
- 3-4 áŞ.á á.á.áá˝ á¨ááŤááá á፠A-áááἠááᣠáá¸áᣠáá áááἠááľáłááťááš á¨áááŠá áľ á áľáŤáť ááá˘
- áĽáŤááłááą áŞá áá á¨á¤ááŞá¤áľ áááá ááá˘
- á¨áĽáą á áá, ááááŚáš áá° ááŹááá áŁáľáŞ áááłá, á ááłááľ áá¨ááá˝ á GELF á áá¸áľ, á ááłááśáš á syslog á áá¸áľ áá¸á.
- á¨á፠áá áá á Elasticsearch á áľá°áŁáŁáŞáá˝ áŁáľáŞ áá á áľááá áľáĽáľáŚá˝ á°á˝áá.
- áĽá áĽááą, á á°áŤá, áá° á°ááá á¨ááἠá áááá˝ áĽáŤááá˝á ááá áĽá áŤááĽáĄ.
áááľ áľááá
ááááŁáľ ááá á°á á¨áááśášá áááá á áááá á áá¨áłáá, áľááá áľáá˝ áááá áľ áĽááááá.
Elasticsearch á ááŤáł á áááľ á áááá˝ á ááľ - áá, á áľá°áŁáŁáŞ, á¨ááἠááľ. áá°ááŤáŠ á¨áá áľáŤááľáááá˝á áĽá á á°ááŤáŠ ááááá˝ ááŤá¨á áááááľ áááľá¨á ááá˝ áááľ ááááśá˝ á á ááááá á¨á°á áááá á¨á°áá¨ááŠáľá áĽáť ááá˘
áŁáá¤áľ
á áááľá°á ááľáĽ áŤááľá áááá á áááá˝ ááá áŤá°áááᣠáá
áłá á¨áááľá°á áŤááł áááá áĽá á á áááá˝ ááŤá¨á áŤá°áŤáŤáᣠá¨ááľá°áľ á áááᎠáŤáľáŹáłáᣠáĽá á¨á°ááŤáŠ á áááľ á¨áááľá°á á°á á¨á¤áľ á áŤáŤá áľáŤáá˝á áá°áŤáá˘
á áľá°áŁáŁáŞ
á ááľ áá á á°ááŁá áŤá¨ááááᥠá¨á°áá áá˝á á¨ááá ἠááá á¨ááťá áĽáŤááá˝á ááá áá áĽá áá
áá áľáŤáá áŤáŤááłáᢠá¨ááťá áĽáŤá áŤáᣠááááŁáľáŁ á¨áľááá á°ááá
áá¨á á áá ááľáĽ ááľááŁáľ áĽááłáá áľ ááłá áá ááá áĽá áĽáŤááá á¨á áá áŤááŤáá˘
á¨ááἠá áá
áá¨áá áŤá¨ááťáᣠá¨áá á¨ááᥠá¨ááá áá ááá˝á áŤá¨áááá áĽá á áአáá á ááá áááľáŤážá˝ áá áľáŤáá˝á áŤá¨ááááá˘
á˝á áľ
áá
á á¤áᏠááá ááľáĽ á¨áŞáŁá á¨áááľáłá˝ áá áĽáá° áá
á°áľ áŤá ááá ááᢠááŹááá áááąáá UI áĽá á¨áá ááááŁá áŞáŤ á§áá§á áŤáŁááŤáᢠá áá¨ááŤá áľáᣠááŹááá á¨ááŹáá áá áĽáá° áááľá°á áááááľ á¨áá°áĄáľá Kafka áĽá Zookeeperá áŤáŤááłáᢠElasticsearch á¨áááá á¨áá ááŤááá áá¸á፠(áŤááŤ) áá˝áá áĽá áŤáá°áłáŤ á¨ááá ἠáĽá á¨ááá áĽáŤááá˝á áá°áááᣠáĄáľá áááľáŁá áĽá áááἠááľáłááťáá˝á á á°áááš á
áá˝ áá°á¨áľ ááááľ áŤáľááᢠáá áĽáá° áááľáłá˝áŁ ááŹááá á¨áľáá˝á áá° Elasticsearch á¨ááťáá á ááľ á¨ááá¨á á°ááŁá á ááá˘
á á°á¨ááŞá ááŹááá á á ááľ á¨Elasticsearch node áá á áááľá¨áľ áááá áááľá°á áŤááł áááááľ áĽá á á°áᨠáá፠áááŁáŤáľ á¨ááŤáľá˝á á áĽáŽ á¨á°á°áŤ á¨á áááááľ áááľ á ááᣠáá á áĽáŤááá˝á áá° á°áá°á áŽáá´áááŽá˝ ááááŤáľ áŤáľá˝ááá˘
á áĽááł áĽáá°áá áŤá ááá áááľááá˘
áá á¨á ááľ á¨á°áá°á ááłá á á˝á áłá áá˝ áĽááł ááᢠáĽáá á ááá áá áá áá á áááľá¨áľ ááľáśááŤá áĽááááŁáá áĽá á°ááá á¨áľáá˝á áĽááłáŤááá˘
áááŤáá˝
áá° áľáááą á ááá´áá¸á áľááááľáŁ ááá á áľááá áĽáá˛á°áŤ á¨á˘áá´ááľ áá´áá áĽáá´áľ áĽáá°áááŁá á á áá áááá ááľáĽ ááľááἠáĽáááááá˘
á¨áá áŁáá áĽááᣠáá áá á°áá á°á¨á ááᥠElasticsearch data nodesá˘
áá¨á á áá Elasticsearch shards á¨á°á°áŤ áľáá áááŁá á áŤá ááᢠá áĽáŤáą ááľáĽ, áĽáŤááłááą ážáŁáŁáá˝ á¨áá´á á˘áá´ááľ á áá ááĽá. áĽá áĽáŤááłááą á¨áá´á á˘áá´ááľ á á°áŤá á ááľ ááá á¨á፠á áá áááá˝á áŤáŤáľáłá.
ááľá á áá áŤá áľ áá á¨ááŁáĽ ááĽááľá á á¨áá°á áá á áááááľ á¨ááŤáľááááá ááľáááľ á áá¨á ááśá˝ áá "áá°áŤá¨áľ" áĽáá°ááŤáľáááá á áľá á áá á.
áá á áá¨á á áá (á á ááá˝) á¨áťááśá˝ ááĽá á¨ááἠá áááá˝ ááĽá áá á áĽáĽá áĽáŠá ááá á áá áľ. á ááááŞáŤáŁ á¨áááľ áá áĽáŠá á¨áá á¨ááŁááľ áááłá ááá¨ááἠ(áá á á¨áááľá°á ááášá ááᣠáĽáá˝ááá)ᢠáĽáᣠááá°áᣠá˘áŤááľ á ááá˝ áááľá°á áá á¨ááá ἠáĽá á¨ááá áĽáŤááá˝á áááľáŹáľá˘
ááááŞáŤ á¨áá¨ááť áááá áĽáá° 30 áááľ ááľáááá˘
á¨áťááśá˝ áľáááľ á áľááá ááአáĽáá°áá¨á°áá ááá¨á áá˝áá.
ááá áĽáá ááŤáŤ áŹááłááá áá¨á á áá ááᢠá áĽáą ááľáĽ áŤáá á¨á፠áá áŤáŹ ááłáá á¸áá°á´ áá, á áá¨á á áá ááľáĽ á¨ááááŞáŤá. áĽá á°ááŤáá áŤáŹ á¨á°áŁá á¸áá°á´ áá. á á°ááŤáŠ á¨áá¨á ááá¨áá˝ ááľáĽ áááá.
áá á¸áá°á´ áľáá¨áá áá° áśáľá°áá á¨áá¨á ááá¨á áááłáᢠáĽá ᣠá áá¨á¨áť ᣠáá áá ááá á áĽááááá ᣠáá á á¨ááἠááĽááľ áłáŤá á á˛á˛á ááŁáľ áŤáľá˝ááá˘
á¨á˘áá´ááśá˝ á˝ááááŞáľ, áááľá. á á˛áľ á˘áá´ááľ á ááá á áĽá á áŁá á¨áá¨áá áá°á¨á ᨠ48 á°á áłáľ áá áĽáŠá á á°á¨áá (á áá¨á á áá á á ááá ááľá áá á¨áľ á¨áá¨á¨áťááš 48 á°ááłáľ á áŁá áĽá áá ááááá)á˘
áá á¨áá¨á á áá á¨áááŞáŤ ááá°áľ á áá¨á°ááľ ááááŤáśá˝ á¨á°ááł áá.
á¨ááá áĽáŤá á á ááľ á¨á°áá°á á¨ááἠááľááá ááááľ áá á˛á°ááľáŁ á¨á ááťá¸á áĽááł á ááťá á˛áłáᣠáá á á¨ááľ áá áá á áá á¨áááłá°á á¨ááᣠá ááľ á¸áá°á´ á˛á á¨á á¨á áá áľááá ááááᢠáá á¨áá¨á á áááá "áá " ááá á ááá ááľáĽ áĽáá˛áአáĽá á ááĽááľ áĽáá˛á°ááąá áľ áŤáľá˝áááłá. áĽá "áá áááá˝" á˛ááŠ, á¨áá¨á á áá ááá ááĽááľ ááááłá.
á ááľ ááľááá ááááľ á¨ááá áá ááá á á ááľ áťááľ áá áá¨ááá á˛áááᣠá¨á áŤááá áá˝á áááááľáŹá˛áá áŽáŽá˝ áá áĽáŠá á¨áá á ááŤáł ááŽá˝ áááľáŁáᢠá¨ááá áá áá áĽá ááĽá áŤáá¸áá áťááśá˝ áá á°á˝áĽá áŤá°á¨á, á¨ááŤá á¨ááŽá˝ áĽááľ á á°ááŁáŁá áá á áŤáľáá. áá á ááá ááĽááľ áá á ááłá á°á˝áĽá áŤáłáľáŤá áĽá á¨á áłá˛áľ áá¨ááá˝á áá¨á á áá áá á ááłá á°á˝áá áŤáłááá.
á áľááááá á¨ááá áááá¨áľ ááá á¨áĽ, á¤áľá¤áľá˛ ááá áá áá°áá. áĽáŤááá˝á á ááĽááľ áááľáŹáľ áĽááá á áŽáá´áááŽá˝ á¨ááŤáľá°áááą áá˝áá˝ á˘áŤááľ 56 áŽáŽá˝ áááŤá¸á áááŁáᢠá¨56 á áá Elasticsearch á áá áŤá áľ áá á¨ááŤááá¨áá á¨ááŽá˝ áĽááľ á¨áááľá áĽáá° áááłá á á áĽá´áľ á°ááá§áᢠá Elasitcsearch ááľáĽ ᣠáĽá á¨áá áááł áááŞáŤáá˝ á ááĽáł á á°áááľ áŽáŽá˝ áĽááľ áá ááá°áá ᣠáá á°áá âáľáá˝ áŽáŽá˝ - áĽá á áááá˝â á ááá ááá á áááľá°á ááľáĽ á¨áááááľá á¨á áááá˝ áĽááľ á ááĽáł áááŤá á˘
á áá¤áąá, á á ááŤá á ááľ áťááľ áá° 20 áááŁááľ ááááá, áĽá á á ááľ á˘áá´ááľ 1 áźáśá˝ á á. á áá áá á¨áľ á ᨠ360 á°ááą á ááľ áá áŤáááá¸á 48 áą á áá áááľ ááᢠáĽáŤááłááą áá¨á á áá á 15 áááľ ááἠááá.
á¨ááἠááá áĽá á¨ááŁáĽ áá¨áłáá˝
á áá áľáááľ ááľáĽ ááἠáĽáá´áľ áĽáá°ááááἠáĽááá á˘
á ááłááľ áĽáŤá á¨ááŹááá áá° á áľá°áŁáŁáŞá á°á¨á° áĽáá áᢠáááłá, 2-3 áşá á¨áľáá˝á ááá áá áĽáááááá.
á áľá°áŁáŁáŞáᣠá¨ááŹááá á¨áá¨á ááľá áĽáŤá ááłáá áĽáá˛á á˛á á á¨áááĄ- âá áá¨á á áá áĽáŤáá áá á á°áá á˘áá´ááľ á ááá áá áᣠááá áá á¨áľáá áťááľ áĽáá°ááá á áá°ááá¸áâ á˛á ááłáá á á¨ááá˘
ááłá âáá á áá¨á áá° áťááľ ááĽá 71 áááâ á˛á ááá˝ áá°áŁá ᣠá¨á፠á áá á ááĽáł áá° áááá¨á°á á¨áá¨á ááľááá ááááľ áááŤá ᣠááá-shard ááĽá 71 áá°áááá áľá˘
á¨á፠á áá á¨ááĽááľ áááἠááľáłááťá á áá á¨ááἠááĽá¨á ááľáĽ áá°áááá á á-áťááľ áá°áááá˘
á¨ááá áĽáŤá á¨ááŹááá áá° á áľá°áŁáŁáŞá áá°ááłáᢠá áľá°áŁáŁáŞá á áá¨á á ááá áá°á¨áľ á á áŁáŤáá áŤáá¨ááᣠElasticsearch á°áá á¨áá-áŽá˘á ááá á áá áá á á áá°á á°á¨á-shard áĽá replica-shard ááŤá¨á áĽáŤááá˝á áŤá°áŤáŤáá˘
ᨠ180 ááśá˝ áĽáŠá áŤááá ááá˝ áá°áŁá, áĽá ááá˝ á áá°áĄá áľ áá á áľá°áŁáŁáŞá áá°á á˛á á ááŁá á¨ááἠááśá˝ "á¨á°á°á" áá¨ááá˝á áĽáŤá¨áḠáá. á¨áá á áá, ááá áá¨ááá˝ á˛á°ááą, ááá áĽáŤáá á¨áá ááĽá፠áá á˛á°ááľ, áááá ááá á ááĽáł áá°áá áá áá°áŁá.
áá á á ááá áľáááľ á á ááŤá ááááľ 48 á°á áłáľ á¨ááá áá ááá˝á á 300-400áá´ ááľáĽ áŤáľáŹáłáᣠáĽáááŤá áá ááá˝ á¨áá ááááľ áá áłáŤáŤáľáľá˘
Elasticsearch áŤáá¸á á á áŚá˝áĄ á፠áááá
ááá ááá ááááŞáŤ á áááááá ááááľ áĽáá˛á°áŤáŁ á áááľá°á ááľáĽ áŤááľá á¨á°ááŤáŠ áááŽá˝á á áá¨á á áŁá á¨á á áá á áłááááá˘
á¨á°áááľ á¨á˝ááŽá˝ á¨ááááŞáŤ ááá á Elasticsearch ááľáĽ á፠á ááŁáŞ á¨á°ááá¨á áľ ááááľ áá á¨á°áŤáŤá ááá˘
á˝áá á ááľ
á áŁá áĽá áŞáááśá˝á á áá°áá á áá´á á°á¨áᣠá¨á áľá°ááᣠáľáŤáá˝ á áá°áŠá áľ ááᣠá¨áá´á ááá áá
á°áśá˝ á áľá
á°áľ áááľááᢠá á°ááłáłá áá, áá
OutOfMemoryError áľá
á°áľ áááá á áááἠááľáłááťáá˝ ááľáĽ ááá˝ áá á. á¨á´áááľáŞ áĽáá°á°ááá¨áľáá áłáá áá ááᣠáĽá áá
ááś áĽáá ááá áĽááłáá°áłáŤ ááá˝ á ááá á¨áá˘
á¨áá´á á˘áá´ááľ áá á°áśá˝ á¨áłáá áá áá¨á°áłá¸á áłááᢠáĽá áŽáá´áááŽá˝ á¨áá áááľ ááĽáśá˝ á ááá á áŁá á¨á°áá°áĄ áá¸áᢠá¨áĽááá ááĽáśá˝ ááľáĽ ááá áĽáť ááᣠáá˝áá (á¨áá áá á ááá á ááᾠᨠRAM áá áĽáŠá áá á) áĽá á ááłááľ á¨ááá á᪠á¨áá°áŠ áľáŤáá˝ á áá á°á¨ áľááľáł áľááľá áľá á°áľ ááááŤáľ á¨áá°áĄ á áᾠᨠ~ 500áᣠáá á¨áááŁáŁá á¨áá ááľáááá˘
ááľá°áŤá¨áŤá á áŁá ááá áá á: áááŤáŁá áŤáá ᨠRAM áá á á¨ááŻá, á¨á፠á áá áĽáá°áá á áááľ á˝ááŽá˝ áĽááłá áĽáá°áá አá¨áłá.
á˝áá áááľ
áááľá°á á¨á°ááᨠá¨4-5 áááľ á áá á¨áá¨á ááśá˝ á á¨ááá á¨áĽá
á ááľáĽ ááá°á
áĽá á¨10-20 á°á¨ááľ á áá ááľááŁáľ áĽáá°ááአá áľá°ááááá˘
ááŁáŤáľ áľááááᣠá Elasticsearch ááľáĽ áŤáá áá á¨ááá á᪠áŤáá áá á°á¨ áľááľáł á ááá ááááľ ááĽáĽá áĽáá°ááá°á¨á áłááᢠááŽáá´ááá á°á¨á᪠áá á°á¨ áľááľáłá áľáá°áĽ, ááĽáł áá áŤáá፠áááłáá˝á á á°ááŤáŠ áá¨ááá˝ ááááľ á¨áťááá áĽá ááá˝ á¨ááá áᲠᨠElasticsearch á¨á°ááᨠá áá áá.
á á ááłááľ á ááŁááá˝ áá
ááá á áŁá á¨á
á áá á¨áá á˛áá á áá
áá áááľá°á áá
áá ááľááá ááááľ áĽáá° áᣠááááľ ááľá¨á á˝ááᢠáá
á˝áá á á°áἠááááťá
áááľáá áĽáá°áá¨á°áá áá áᥠáááá áŚááŹá˝áá˝ á¨ááŤá á¨áá°á áá á°á¨ áľááľáłá á¨ááá áá á¨áá áá á á áá ááľá ááᢠá 16 áááŁááľ (-XX:MaxDirectMemorySize=16g) ááľá áááᣠáá á ááá˝ áᲠáĽá áá áá áŤáąá áĽá á áŁá á ááĽááľ áá°áŤáąáᣠá áá á áááľá°áá á ááá¨áááľ á áŤááŁáá˘
á˝áá áśáľáľ
"á áŁá áŁáá°á á á áá áááľá°áá ááá á¨ááᥠá áááá˝" á˝ááŽá˝ á áĽá
á°áá áĽáá áŤá°áĄ á°áłáľá°ááá˘
áľáŤáá á áá¨á á áááá˝ áľááá
á á¤áá¤ááá¤áá áá¨áĽáá˘
áá
áá áŁá
᪠áááľáááľ ááááŞáŤ áá° áá°á á ááŽááľ ááá¨ááᣠáĽá á¨á ááľá°áá á¨ááľá˛á áľáŞáśá˝ áá° áľáľáľá°áá áľáá¸áááᣠáá
á˝áá áĽáá°áá áŤááłá á¨á áľá á
áĽáŞáľááľ ááá¨ááᢠáľá áá¨ááť ááááśá˝ á¨á áá ááá ἠáá˝ááá˘
á˝áá á áŤáľ
á¨ááŤá ááŞá¨ááľ áá á¨áłá¨ááá áá á áŁá á áľá°áłá˝ á˝áá áá áᢠá2-3 ááŤáľ áŤá
á áŤááá ááááŤáąá ááľá áá á áá ááá¨áłáľ á¨áááťá áá áá˘
á ááłááľ áá á áľá°áŁáŁáŞááťá˝á á áĽáááá áá á¨ááł á áá áá° áá áᲠáááą áá á áĽá á¨á፠á ááááąáᢠá á°ááłáłá áá, á¨á.á˛.Რáááá¨áľá á áááááĽá áľ áá, áĽáá°áá áááľáá: ááá ááá á áĽáŠ áááł, á°á á, á°á á, áĽá á áľáááľ ááá ááá á áŁá ááĽá áĽá¨áá áá.
ááááŞáŤ áá á áľá°áŁáŁáŞáá á¨áľáŤ áááł á¨ááŤááŁáá á áááľ áĽáŤá á¨ááŤáľááł áá á°á áá áĽááłáá á á°áĽáᢠáá áĽá¨á°áá ᨠáĽááłá áááá á ááá¨á áá¨á á áá áĽáŤááá˝á á áľááĽá°ááá˘
á áá ááááŤáľ á ááľ á°á áá áľáá áĽáŤá áŁáá¨á á áľ áá áĽá áá° á ááľ á¨á°áá°á á¨ááľá˛á ááá á áľá°áŁáŁáŞ á˛á°ááľ á ááłááľ á áááá˝ á¨áááš á¨á áá á¨áá áá áá ááá˝ áá°áŁáá˘
áĽá á áľá°áŁáŁáŞá á¨ááá á áááá˝ ááá˝ áĽá¨á á á áłá, áá°á á˛á ááá˝ á¨á°áĄ á áááá˝ á¨á°ááŠáľá áá¤áśá˝ áá°á áľáŁá. ááá˛áŁ áá áááľ á¨áĽá á¨ááá á á ááá ááá¤áá˝ á ááĽááľ ááá¨áŤá áááľ ááᢠáĽá á¨á°á áááá áľ GC áá áá á°ááŁá áááá á ááťáá.
á áá áááł ááľáĽ á¨áááľá°áá áŁá ᪠ááááἠáŤáááá áĽá¸áá ááľá°áŤá¨áŤ áá° JDK13 ááá°áľ áĽá á¨á¸ááśá ááťáť á°áĽáłá˘ á á ááá ááᢠáá á á˝ááŠá ááłáᣠá áľá°áŁáŁáŞááťá˝á ááá°á á ááá˘
á¨á፠á˝ááŽá˝ áŤá áá áľ áĽá á¨áá°ááá፠áááľ á˝ááŽá˝ á¨áááŠáľ áĽáá ááá˘
"á¤áŞ" ᨠElasticsearch ááᥠáá°ááá
á¨áá¤áľ áá á¨á°áŤáŤá á˝ááŽá˝ áááľ á¨áĽá áááľá°á á á°á¨áá áááł áá°áŤá ááá áá á áá¨á á áá á°ááśá˝ áĽááľ áĽá á ááááłááľá áľ áá á áááá á á á áá°áá.
á¨ááááŞáŤá ááááľ á ááĽááłááĄ- á áááľ áá áŁá á ááłááľ âáááłáłáá˝â áá áľáŁ á áŁá áĽá ááĽá áŤáá¸á áááἠááľáłááťáá˝ á áľáááľ á˛áá áŠáŁ á¨á˘áá´ááľ á áááŤá˝ áľá á°áľ es_rejected_execution á ááŹáá ááľáĽ á á°á°ááá ááĽá¨á ááááŤáá˘
áá
á¨ááá áľ ááááŤáľ thread_pool.write.queue á á ááľ áłáł ááľááá ááááľ ááᣠElasticsearch á¨áá¨á á áá áĽáŤááá ááŤááľ áĽáľáŤááťá áĽá áá¨ááá á á˛áľá áá áá° shard áĽáľá¨áá°ááá áľ áá áľá¨áľáŁ á ááŁáŞááľ 200 áĽáŤááá˝á áĽáť áá¸áἠá ááťá ááᢠáĽá ááľáĽ
á áĽááἠáá áá áĽá´áľ áááŁáá ááľá áĽá á¨áá¨á°ááá á ááá-á á°áá ᣠá áĽá áááá ááľáĽ ᣠáĽáľá¨ 300 á¨áá°ááą áĽáŤááá˝ á áĽáŠ áááł á°á¸áááá ᣠáĽá á¨á áŤá áá áĽáá°áá áá° áá GC á ááĽá¨á á¨á°áá ááá˘
á á°á¨ááŞá áĽááá á á ááľ áĽáŤá ááľáĽ á¨áá°ááą á¨áááĽááľ áľáĽáľáŚá˝ á áááá¸á ááŹáááá áĽá áá áĽá á áľááá˝ á°áĽá°áŽá˝ áĽáá˛á˝á ááľá¨á á áľááá áá á, ááá áá á áľááá áľáĽáľáŚá˝ ááá á 3 á´áŽááľ á ááľ áá áĄáľá á ááá áŤáá°á ááá. á áá áá᳠ᣠá Elasticsearch ááľáĽ á¨ááá˝áá áá¨á á¨áááá á áááľ á´áŽááśá˝ ááľáĽ áłááá á á ááľáľ (á áĽáŠ áááł á¨ááľááá) áá ᣠáá áľáá á áá ááááľ áááááľ áá°á¨á áŤááŁá¸á á¨áááś ááááá˝ áĽááľá˘ á¨áá¨á ááá áááˇáá˘
áá á á°áá á¨áá ááá á¨áá áŚáł á˛á áá˝ áĽá áľááĽáą á áá´áľ á˛áááĽáŁ áá á áá á áááá áááĽááľ áŤáá ááľá˛á áĽááłáŤáá áĽá á¨á°áá°á áá á áá - á á°ááá ááśá˝ ááááŤáľ á¨ááá°áŠ ááŹááá ááśá˝ á áĽáá፠áááŤáľ á áŁá á áľááá ááá˘
á á°á¨ááŞá ᣠá áááľ ááľáĽ áĽááá á°ááłáłá áááłáłáá˝ á˛ááŠá ᣠá¨ááŽááŤá á ááŞáá˝ áĽá ááŤáŞáá˝ á áŹáł á°áá°ááá-áĽááá á ááááŚá˝ á áĽáááľ á ááŤáľáááá¸á áá ᣠââá áŁá á ááľáł á°á°áĽáˇá¸ááá˘
ááŁáŤáľ áááŠá˘ á á ááľ á áŠáᣠáááąá á¨ááá áá ááá˝ áĽá á¨áá¨á á áá áá ááá˝áŁ á áá á¨áąáŁ á á°ááłáłáŠ áááŤá áá˝áá˝ ááᣠáĽá á á ááľ ááá á áá ááááľ á¨á°áá°á áľáááśá˝ áĽáá°ááአááá˝ áá áá˘
ááá áá á áľáľáľá°áá á¨Elasticsearch áĽáľáá˝ ááľáĽ á áááá° áá-áŽá˘á ááá (áá¨á á áá á¨ááŤá°áá áĽá áááá á¨ááá ááŤáŁ) á áááá¨áłá¸á á¨ááἠá áááá˝ ááŤá¨á áá ááá˝á ááá°áŤá¨áľ á¨ááŤáľá˝á áľáá° ááá á ááłá¨áą áá á á¨áá ááłáá áá˝ááᢠáťááľ á áŁá áľáŤ áá áá áľ áá˝áá, á ááĽááľ ááá˝ áááľá áľ ááá á áááľ ááááľ á áááá), ááá áá áá á áĽáŤá áá° áľáá˝ á¨á°áŤá áŽáá´ááá á á-áťááľ áááľá°ááá, áá á á áŁá ááŁá ááá˝ áá°áŁá. á áá á áááá á¨á á ááá_á áłáá˛á_replica_selection áá á°áá°ááᥠáĽáááľá˘
á¨ááŁáĽ áĽáá áá á áááľááá˘
áá°áá á áááŞáá á¨á°á°á¨áá á˝ááá áĽá á¨áááἠááľáłááťáá˝ á áá á¨ááŁá¸á áááŤáľ á¨áá áá ááá á áĽá á áááťáťá á áľá˝ááłáá˘
á áá¨á¨áťá ááá á˝áá á¨áá¨á ááĽá¨áá áŤáááá á áá ááľáááľ áá á.
á¨á ááľ á˛á˛ áá áááááľ á¨á á á áá áá˛áŤáá á¨áááľá°á á¨áááááááĄ-
- áŁáá°áłáŤá á¨ááἠááá¨á ááľáĽ á¨á áá ááľá°á áŤáá, á¨ááŤá áĽáá°áá á°ááጠá áá á˛á˛ ááľáĽ áá° áá ááľááá ááááľ ááááłááłá.
- ááłá áááá á¨ááá°á¨áľáŁá¸áá á áááá˝ á¨áĽá á ááľáĽ á ááĽááľ áŤáľáááłáá˘
- á ááŞááš áá á áááľá¨áľ áĽáą áááááŁá-á á áá á¨áá¨á ááĽá¨á ááľáĽ áĽáá°áá áŤá áĽá áĽáá°áá áŤá á¨ááááŞáŤ á°á¨á áťááśá˝ áá áŠá ᣠá ááŞááš á¨áá¨á ááśá˝ ááľáĽ á°ááłá á ááá˝á á ááĽááľ áŤáľá°áááá áĽá áá¨ááá áááá¨áłá˝áá áĽáááĽáááá˘
- á áá ááááŤáľ á¨áááľá°á á áťáťá áĽá á¨ááŁáĽ áá°áľ ááľ á ááľ áĽá¨ááá° áááłá, ááá áá á á á ááá ááá ááá á ááľáł á˘ááá, áá á á°á¨áá áááł áá°áŤá.
áĽáá° á°ááá ᣠáĽáá°áá áŤá ááá áĽáááááá
áĽá á¨áá¨á°ááá á ááá°ááá˘
áá áĽáá´áľ ááá áťá?
áłáł á´áá°á á˛ááľá ááłá˝á ááá ááá˘
ááá?
áĽáááłá áá ááłá TaskBatcher á áá, áĽáąá á áááľá°á ááľáĽ á¨á°áá°á áľáŤáá˝á áĽá ááľá°áśá˝á á¨áá°áŤá¨áľ áááááľ á áá áľ. ááááá á¨ááľááá ááááľ áááŁáľáŁ ááááá á¨á¸áá°á´ ááľáłáá፠á¨á á áá° á áá°á á°á¨áᣠá¨áá áŚáł áá á¸ááŁá áááá á ááááá á°ááŁá - áá áá ááááŞáŤ áá° TaskBatcher áááłáᣠáĽáąá á á á°á á°á¨á°á áĽá á á ááľ áá ááľáĽ áá¨ááááá˘
á ááľ á¨áá¨á ááĽá¨á á áááŁá áľ áá á ááááľ áŁá á¨áá¨á ááá¨áá˝ ááľáĽ áŤá ááá á¨áá¨á ááśá˝ âáĽáá˛á áŤá áĽá áĽáá°áá áŤá áááĽáŤáŽá˝ áĽá áĽáá°áá áŤá á¨áá¨á á áááá˝ á áĽá°ááâ á áááľ ááłáá á¨ááłáá áá´áł á áľááá áááá¨áąáľ áĽáá°áá á áááá á°á˝ááá˘
á á°ááłáłá áá, á¨á°á¨ááľ á¨ááἠá áááá˝ áá áá áá áá¨á áá áá ááł áá¨á ááá áá áá¨áá፠ááá á á ááá¨áá. ááłá ááááľ á¨áá˝áá á áá áľáŤáá˝á áľáá°áá á áĽááą áá á á áá á áá. ááľááá ááááśáš áĽáŤááá˝á ááľáá áááŤá¸áá á¨áá°ááᣠáĽá ááłá á áá áá áĽááąá áááááľ áĽááłá á ááá¨á¨á ᣠáá áĽáŤááá˝á á á áľá፠á¨áá°áá°á á°ááŁá ááľáĽ áá á áá á°á áááá˘
á á°áááá áááᣠá¨áá¨á ááľááá ááááśá˝ ááłáá áá° áá áᲠáĽáľáŞáᣠáľá¨áľ á áááá áááááľ áĽááłá°á¨ááľ áááá á°á˝ááᢠá¨á፠á ááᣠá¨áĽá áá áá áá° ááŁáŠ ááľááá ááááľ á°ááá¨áŁ ááá á°ááłáłá ááá á°á¨á°á áľáŁ áĽáá á áá ááááŤáľ áááľá°á áá á áá ááľááá˘
áááŞáŤáá˝á ááľá°áá, áĽá áá á¨á°áľá°áŤá¨áá áľ áľáŞáľ 6.4.0 á ááľ, áááľá°á áá á áá ááááᾠᨠ10 ááľáĽ 360 á¨ááἠááśá˝á á á ááľ áá ááááŁáľ á á áá á.
áá á áááľááá˘
á¨áľáŞáľ 6.4.0 á ááᣠáá á áľá¨á áľá á°áľ á¨á°áľá°áŤá¨áá áľáŁ á¨ááἠááśá˝ ááłáá ááá°á á ááááᢠáá áá âáĽáá â á áá°á¨áááᢠáá¸áááĄ- 2ᣠ3 ááá 10 (á¨á ááľ áá ááááá ááĽá) áłáł ááśá˝á áľááᣠááłá ááľááá ááááľ A ááá á¨áá á¨ááááŞáŤ áááĽááľ áá°áá°áá áĽá á áá ááłá áá ááľááá Bᣠnode Cᣠnode D ááááá ááááŤáá˘
áĽá á á áá ááᣠáá áá áááá á¨ááťáá áá ááľ á°á áľá á ááľ ááá ááááá á¨áá°á¨á áá¨áŤáá˝ áá ááĽá፠ááá á áááááľ áĽáť áá ᣠáá á á¨20-30 á°á¨ááľ áŤá á áá ᣠáĽáá á¨ááἠááĽá¨á á¨áááľá°á á¨áááŁá áľá ááĽááľ áááŁá áŠá˘
á ááá á°á¨á, áá áĽáá° á¨ááŽáááą á áŤá á ááááŞáŤ ááá¨á¨áťá áááľ á¨áá¨áĄáľ ááľáááśá˝ áá ááŁáŁáá, ááá áá ᨠ"áášá áłáááľ" áĽááł áá áľá á°áľ áá. á áááŤá˝á áá á áľáŞáľ 7.2 ááľáĽ á ááá˘áá˝ á á°áłáŤ áááł á¨á°áľá°áŤá¨áá.
á¨áá á á ááᣠá¨á°áá°á á¨áá¨á ááľááá ááááľ á˛ááŁáŁ áľá áááŁáą áá¨á áá°áŤá¨áľ áááá áááľá°á áĽáá°áá áŤá áĽá áĽáá°áá áŤá á¨ááááŞáŤ á°á¨á-áťááśá˝ á áአáá áĽááłá á¨áááá á¨á áá á áľááá áĽáá°áá áłáá (á áá ááἠááľáĽ á á-shard áááľá°ááá ) á á áá°á á°á¨á ááĽá¨á ᣠáĽá á áá¨á áá á áĽááą áá ááá áá˝ááá˘
áľááá
, ááá ááá ááľááá á˛ááľ, á¨á°ááááľ á¨ááἠá áááá˝ áá˛áŤáá áĽáá° á áŽá ááááľ á áá°á¨ááŁá¸áá. á áá
áá á¨áľ ááá ááááá˝ áá°ááááľ á¨áá¨á ááśá˝ áááŤá¸áá áĽáľáŞá¨ááą áľá¨áľ ááá á á
áĽááá°áłáá áĽá á¨á፠á áá áĽáť á¨áĽá áľáĽáľáĽ áĽá፠ᣠáĽá፠áĽá áĽá፠áá¨á ááááἠáĽááłááĽá áááá¨áá ᢠáľááá
ááłá á¨á áá ááá ἠáá˝áá
á áá ááááŤáľ á¨áá¨á ááĽá¨áá áᏠá¨áááŁáľ áááá á áá áá áľ á°ááľ 5 á°áá áŤá á áááľáłáᢠááĽáá°áá ááááą áľáá áĽá á¨á°áá áŤá¨á áŽáá˛áľ áá á áŁá áĽáŠ áá¤áľ áá.
á áá¤áąá, áá°áá¨á°áá ááłá á°áá°áá.
- ᨠ360 áááŁááľ á˛áľáŽá˝ áá 700 á¨ááἠá áááá˝ á ááá˘
- á áĽááá á°ááłáłá á¨ááἠááśá˝ ááľáĽ áľáŤááá ááááŤáľ 60 á áľá°áŁáŁáŞáá˝á˘
- á¨40 á ááľ á¨áá áŠáľ áľáŞáśá˝ ááᎠáĽáá° á ááľ á¨á°ááá¸á 6.4.0 ááśá˝ - á¨áá¨á ááá¨á áááŁáľ áááľá¨á á á áĽááŻá˝á ááľáĽ áĽááłá á¨ááśá˝ ááá á° ááŁá¤ áĽáá˛áá¨á áĽá áá˝áá˝á áááŁáľ á á áĽáᎠá°ááá á°ááᢠá áŁá ááĽáá áááł
- á á ááľ áŽáá´ááá áá áááá˝á áááŁáá á¨á°á°á¨á áááá¸áá áá¨áŤáá˝ ááĽáá ááá ááááś ááľááá ááááą á áááľ ááľáĽ áľááá°á á ááá˘
- ááá áááľá°á á¨31 áááŁááľ ááá áá áááᥠáá áá áááááľ á¨á°á°á¨áá áá¨áŤ áá á ááłááľ á áááá˝á á á¨áŁáľ á¨ááá áá ááá˝ áá á¨ááá ááááľ áŤááľ áá ááľá ááá á¨áá¨áł á°áŁáŞá á áŤáą Elasticsearch ááľáĽ áĽáá˛áá á áľáááá˘
- á á°á¨ááŞá á¨ááá á ááťá¸áá ááá¨ááἠá ááłá ááľáĽ á á°á¨áľáá áľ ááá ááľáĽ á á°áťá áá á áĽááľ ááááá˝á áááľáŹáľ á áááľá°á ááľáĽ áŤááľá áááŽá˝ á á°áťá áá á áľáá˝ áááľá¨á ááá¨ááá˘
á áá¨á¨áťá áľá ááľáľá
áá áá áĽáá°áłá°á á ááľáŤáąá ááá¨ááἠá¨áá¨á°ááľá áĽáá¨áłá°ááááĄ-
- áĽáŤááłááą á¨áá¨á ááľááá ááááľ áĽááłá áá°ááá˝á áŞáááľ áŤá°áááᣠáĽá á áĽáą áá áĽáá°áá áŤá áĽá áĽáá°áá áŤá áááĽáŤáŽá˝ á áᢠá¨áá ááá áľáá á áááľá°á á¨2-3 á°á¨ááľ á áá áĽáá°ááá á á ááá á 2ᣠ3 áĽá 4 ááśá˝á á áĽá°áá - áá áááľ á ááá˝ á¨áá¨á ááśá˝ ááľáĽ áĽá á ááá á áááľ áááł á ááľ ááŤá áĽáť áŤááŁá¸áá á áááá˝ ááĽááľ á áá˝ááᢠááŤ.
- á¨ááłáá áŁá ᪠áŁá ᪠ááá , á áá áŁá á áá áŤá áľáŤáá˝á áĽááľ á áĽááá áĽáááá¨áłáá. ááááŤáąá á ááľ á¨á°áá¨áᨠá°ááŁá áĽááłá á ááá áŤáááᣠá ááľá ááłáĽ á á ááłááľ á¨á á°á áá áááłáá˝ áááłá á áá á°á¨á á¨áĽááľ á¸áá°á´ ááľá°ááá á¨ááá°áŤá áľ ááááŤáľ ááá áá˝ááᣠááá á áá áá¨á á áá ááľáŤáľ áŤáááá˘
- á¨ááťáť á á°áŁáłá˘ áááá¨áśá˝áá á á áá áľ áĽáááá¨áłááᣠááááŤáąá á áááťá¸áľ áá áľ á áá ááłá áá áĽá á˝ááŽá˝ á ááĽááááá˘
- áááá á¨áľ áĽááłá á áľááľá ááá¨áłáľ á áá á ááá ááá˘
- á°á áᣠáĽáá° áááᣠRAM áĽá I/O áŤá áá°á á áááŞáŤáá˝á˘
ááľáľáá á ááááĄá áľ áá á Elasticsearch ááľáĽ áŤááá ᨠThread Pool áŁá
áŞáŤáľá áááľ ááľáĽ ááľááŁáľ á ááĽááľ.
á áá áááŤá áááľ á¨ááááááĄ- á á°á¨ááá! áááŽááŤááŽáťá˝á áĽá ááá˘ááťá˝á á ááááá áááł ááľáĽ á ááĽááľ áĽá á á áľá°ááá áááł á áááľ áá áľááá ááá áá¨á á¨áá°áĽ ááłáŞáŤ ááľá áľ á˝áááá˘
á á ᣠáĽáą á áŁá á¨á°ááłá°á áá ᣠáá ᣠááá ᣠáááśáťá˝áá á áá áŤááľ áááśá˝ áá áááľáááľ á˝ááá ᣠáĽá ááŤáłá˝á ááá á áĽá áĽáá°áá ááťá á áŤáľáááááá˘
ááá: hab.com