ื“ื—ื™ืกืช ื ืชื•ื ื™ื ื‘- Apache Ignite. ื”ื ื™ืกื™ื•ืŸ ืฉืœ ืกื‘ืจ

ื“ื—ื™ืกืช ื ืชื•ื ื™ื ื‘- Apache Ignite. ื”ื ื™ืกื™ื•ืŸ ืฉืœ ืกื‘ืจื›ืฉืขื•ื‘ื“ื™ื ืขื ื›ืžื•ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ื ืชื•ื ื™ื, ื™ื›ื•ืœื” ืœื”ืชืขื•ืจืจ ืœืคืขืžื™ื ื‘ืขื™ื” ืฉืœ ื—ื•ืกืจ ืžืงื•ื ื‘ื“ื™ืกืง. ืื—ืช ื”ื“ืจื›ื™ื ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื• ื”ื™ื ื“ื—ื™ืกื”, ืฉื‘ื–ื›ื•ืชื”, ืขืœ ืื•ืชื• ืฆื™ื•ื“, ืืชื” ื™ื›ื•ืœ ืœื”ืจืฉื•ืช ืœืขืฆืžืš ืœื”ื’ื“ื™ืœ ืืช ื ืคื—ื™ ื”ืื—ืกื•ืŸ. ื‘ืžืืžืจ ื–ื”, ื ื‘ื—ืŸ ื›ื™ืฆื“ ืคื•ืขืœืช ื“ื—ื™ืกืช ื ืชื•ื ื™ื ื‘- Apache Ignite. ืžืืžืจ ื–ื” ื™ืชืืจ ืจืง ืืช ืฉื™ื˜ื•ืช ื“ื—ื™ืกืช ื”ื“ื™ืกืง ื”ืžื™ื•ืฉืžื•ืช ื‘ืชื•ืš ื”ืžื•ืฆืจ. ืฉื™ื˜ื•ืช ืื—ืจื•ืช ืฉืœ ื“ื—ื™ืกืช ื ืชื•ื ื™ื (ืขืœ ื”ืจืฉืช, ื‘ื–ื™ื›ืจื•ืŸ), ื‘ื™ืŸ ืื ื™ื•ืฉืžื• ื•ื‘ื™ืŸ ืื ืœื, ื™ื™ืฉืืจื• ืžื—ื•ืฅ ืœืชื—ื•ื.

ืื–, ื›ืฉืžืฆื‘ ื”ืชืžื“ื” ืžื•ืคืขืœ, ื›ืชื•ืฆืื” ืžืฉื™ื ื•ื™ื™ื ื‘ื ืชื•ื ื™ื ื‘ืžื˜ืžื•ื ื™ื, Ignite ืžืชื—ื™ืœ ืœื›ืชื•ื‘ ืœื“ื™ืกืง:

  1. ืชื•ื›ืŸ ืžื˜ืžื•ื ื™ื
  2. ื›ืชื•ื‘ ื™ื•ืžืŸ ืงื“ื™ืžื” (ืœื”ืœืŸ ืคืฉื•ื˜ WAL)

ืงื™ื™ื ืžื ื’ื ื•ืŸ ืœื“ื—ื™ืกืช WAL ื›ื‘ืจ ื“ื™ ื”ืจื‘ื” ื–ืžืŸ, ื”ื ืงืจื WAL compaction. ื”-Apache Ignite 2.8 ืฉืฉื•ื—ืจืจ ืœืื—ืจื•ื ื” ื”ืฆื™ื’ ืฉื ื™ ืžื ื’ื ื•ื ื™ื ื ื•ืกืคื™ื ื”ืžืืคืฉืจื™ื ืœื“ื—ื•ืก ื ืชื•ื ื™ื ื‘ื“ื™ืกืง: ื“ื—ื™ืกืช ืขืžื•ื“ื™ ื“ื™ืกืง ืœื“ื—ื™ืกืช ืชื•ื›ืŸ ื”ืžื˜ืžื•ื ื™ื ื•ื“ื—ื™ืกืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืขืžื•ื“ WAL ืœื“ื—ื™ืกืช ื—ืœืง ืžื”ืขืจื›ื™ WAL. ืคืจื˜ื™ื ื ื•ืกืคื™ื ืขืœ ื›ืœ ืฉืœื•ืฉืช ื”ืžื ื’ื ื•ื ื™ื ื”ืœืœื• ื‘ื”ืžืฉืš.

ื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง

ืึตื™ืš ืžึทืคืขึดื™ืœึดื™ื ืึถืช ื–ึถื”

ืจืืฉื™ืช, ื‘ื•ืื• ื ืกืชื›ืœ ืžืื•ื“ ืขืœ ื”ืื•ืคืŸ ืฉื‘ื• Ignite ืžืื—ืกืŸ ื ืชื•ื ื™ื. ื–ื™ื›ืจื•ืŸ ื”ืขืžื•ื“ ืžืฉืžืฉ ืœืื—ืกื•ืŸ. ื’ื•ื“ืœ ื”ืขืžื•ื“ ืžื•ื’ื“ืจ ื‘ืชื—ื™ืœืช ื”ืฆื•ืžืช ื•ืœื ื ื™ืชืŸ ืœืฉื ื•ืช ืื•ืชื• ื‘ืฉืœื‘ื™ื ืžืื•ื—ืจื™ื ื™ื•ืชืจ; ื›ืžื• ื›ืŸ, ื’ื•ื“ืœ ื”ืขืžื•ื“ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื‘ื—ื–ืงืช ืฉืชื™ื™ื ื•ื›ืคื•ืœื” ืฉืœ ื’ื•ื“ืœ ื”ื‘ืœื•ืง ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื. ื“ืคื™ื ื ื˜ืขื ื™ื ืœ-RAM ืžื”ื“ื™ืกืง ืœืคื™ ื”ืฆื•ืจืš; ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื ื‘ื“ื™ืกืง ืขืฉื•ื™ ืœืขืœื•ืช ืขืœ ื›ืžื•ืช ื”-RAM ืฉื”ื•ืงืฆื”. ืื ืื™ืŸ ืžืกืคื™ืง ืžืงื•ื ื‘-RAM ื›ื“ื™ ืœื˜ืขื•ืŸ ืขืžื•ื“ ืžื”ื“ื™ืกืง, ื“ืคื™ื ื™ืฉื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ืขื•ื“ ื™ืคื•ื ื• ืžื”-RAM.

ื”ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื‘ื“ื™ืกืง ื‘ืฆื•ืจื” ื”ื‘ืื”: ื ื•ืฆืจ ืงื•ื‘ืฅ ื ืคืจื“ ืœื›ืœ ืžื—ื™ืฆื” ืฉืœ ื›ืœ ืงื‘ื•ืฆืช ืžื˜ืžื•ืŸ, ื‘ืงื•ื‘ืฅ ื–ื” ืžื•ืคื™ืขื™ื ื“ืคื™ื ื‘ื–ื” ืื—ืจ ื–ื” ื‘ืกื“ืจ ืื™ื ื“ืงืก ืขื•ืœื”. ืžื–ื”ื” ื”ืขืžื•ื“ ื”ืžืœื ืžื›ื™ืœ ืืช ืžื–ื”ื” ืงื‘ื•ืฆืช ื”ืžื˜ืžื•ืŸ, ืžืกืคืจ ื”ืžื—ื™ืฆื” ื•ืื™ื ื“ืงืก ื”ืขืžื•ื“ื™ื ื‘ืงื•ื‘ืฅ. ื›ืš, ื‘ืืžืฆืขื•ืช ืžื–ื”ื” ื”ืขืžื•ื“ ื”ืžืœื, ื ื•ื›ืœ ืœืงื‘ื•ืข ื‘ืื•ืคืŸ ื™ื™ื—ื•ื“ื™ ืืช ื”ืงื•ื‘ืฅ ื•ืืช ื”ื”ื™ืกื˜ ื‘ืงื•ื‘ืฅ ืขื‘ื•ืจ ื›ืœ ืขืžื•ื“. ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขื•ื“ ืขืœ ื–ื™ื›ืจื•ืŸ ื”ื”ื—ืœืคื” ื‘ืžืืžืจ Apache Ignite Wiki: Ignite Persistent Store - ืžืชื—ืช ืœืžื›ืกื” ื”ืžื ื•ืข.

ืžื ื’ื ื•ืŸ ื“ื—ื™ืกืช ืขืžื•ื“ื™ ื”ื“ื™ืกืง, ื›ืคื™ ืฉื ื™ืชืŸ ืœื ื—ืฉ ืžื”ืฉื, ืคื•ืขืœ ื‘ืจืžืช ื”ืขืžื•ื“. ื›ืืฉืจ ืžื ื’ื ื•ืŸ ื–ื” ืžื•ืคืขืœ, ื”ื ืชื•ื ื™ื ื‘-RAM ืžืขื•ื‘ื“ื™ื ื›ืคื™ ืฉื”ื, ืœืœื ื›ืœ ื“ื—ื™ืกื”, ืืš ื›ืืฉืจ ื“ืคื™ื ื ืฉืžืจื™ื ืž-RAM ืœื“ื™ืกืง, ื”ื ื ื“ื—ืกื™ื.

ืื‘ืœ ื“ื—ื™ืกืช ื›ืœ ืขืžื•ื“ ื‘ื ืคืจื“ ืื™ื ื” ืคืชืจื•ืŸ ืœื‘ืขื™ื”; ืืชื” ืฆืจื™ืš ืื™ื›ืฉื”ื• ืœื”ืคื—ื™ืช ืืช ื’ื•ื“ืœ ืงื‘ืฆื™ ื”ื ืชื•ื ื™ื ื”ืžืชืงื‘ืœื™ื. ืื ื’ื•ื“ืœ ื”ืขืžื•ื“ ื›ื‘ืจ ืœื ืงื‘ื•ืข, ืœื ื ื•ื›ืœ ื™ื•ืชืจ ืœื›ืชื•ื‘ ื“ืคื™ื ืœืงื•ื‘ืฅ ื‘ื–ื” ืื—ืจ ื–ื”, ืžื›ื™ื•ื•ืŸ ืฉื”ื“ื‘ืจ ืขืœื•ืœ ืœื™ืฆื•ืจ ืžืกืคืจ ื‘ืขื™ื•ืช:

  • ื‘ืืžืฆืขื•ืช ืื™ื ื“ืงืก ื”ืขืžื•ื“ื™ื ืœื ื ื•ื›ืœ ืœื—ืฉื‘ ืืช ื”ื”ื™ืกื˜ ืœืคื™ื• ื”ื•ื ื ืžืฆื ื‘ืงื•ื‘ืฅ.
  • ืœื ื‘ืจื•ืจ ืžื” ืขื•ืฉื™ื ืขื ื“ืคื™ื ืฉืœื ื ืžืฆืื™ื ื‘ืกื•ืฃ ื”ืงื•ื‘ืฅ ื•ืžืฉื ื™ื ืืช ื’ื•ื“ืœื. ืื ื’ื•ื“ืœ ื”ืขืžื•ื“ ื™ืงื˜ืŸ, ื”ืฉื˜ื— ืฉื”ื•ื ืคื™ื ื” ื™ื™ืขืœื. ืื ื’ื•ื“ืœ ื”ืขืžื•ื“ ื’ื“ืœ, ืขืœื™ืš ืœื—ืคืฉ ืขื‘ื•ืจื• ืžืงื•ื ื—ื“ืฉ ื‘ืงื•ื‘ืฅ.
  • ืื ืขืžื•ื“ ื–ื– ื‘ืžืกืคืจ ื‘ืชื™ื ืฉืื™ื ื• ื›ืคื•ืœ ืฉืœ ื’ื•ื“ืœ ื”ื‘ืœื•ืง ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื, ืื–ื™ ืงืจื™ืื” ืื• ื›ืชื™ื‘ื” ืฉืœื• ืชื“ืจื•ืฉ ื ื’ื™ืขื” ื‘ื‘ืœื•ืง ืื—ื“ ื ื•ืกืฃ ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื, ืžื” ืฉืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื.

ื›ื“ื™ ืœื”ื™ืžื ืข ืžืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืืœื• ื‘ืจืžื” ืžืฉืœื•, ื“ื—ื™ืกืช ืขืžื•ื“ื™ ื“ื™ืกืง ื‘- Apache Ignite ืžืฉืชืžืฉืช ื‘ืžื ื’ื ื•ืŸ ืžืขืจื›ืช ืงื‘ืฆื™ื ื”ื ืงืจื ืงื‘ืฆื™ื ื“ืœื™ืœื™ื. ืงื•ื‘ืฅ ื“ืœื™ืœ ื”ื•ื ืงื•ื‘ืฅ ืฉื‘ื• ื ื™ืชืŸ ืœืกืžืŸ ื›ืžื” ืื–ื•ืจื™ื ืžืœืื™ ืืคืก ื›"ื—ื•ืจื™ื". ื‘ืžืงืจื” ื–ื”, ืœื ื™ื•ืงืฆื• ื‘ืœื•ืงื™ื ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ืœืื—ืกื•ืŸ ื”ื—ื•ืจื™ื ื”ืœืœื•, ื•ื›ืชื•ืฆืื” ืžื›ืš ื—ื™ืกื›ื•ืŸ ื‘ืฉื˜ื— ื”ื“ื™ืกืง.

ื–ื” ื”ื’ื™ื•ื ื™ ืฉื›ื“ื™ ืœืฉื—ืจืจ ื‘ืœื•ืง ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื, ื’ื•ื“ืœ ื”ื—ื•ืจ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื’ื“ื•ืœ ืื• ืฉื•ื•ื” ืœื‘ืœื•ืง ืžืขืจื›ืช ื”ืงื‘ืฆื™ื, ืžื” ืฉืžื˜ื™ืœ ืžื’ื‘ืœื” ื ื•ืกืคืช ืขืœ ื’ื•ื“ืœ ื”ืขืžื•ื“ ื•- Apache Ignite: ื›ื“ื™ ืœื“ื—ื™ืกื” ืชื”ื™ื” ื”ืฉืคืขื” ื›ืœืฉื”ื™, ื’ื•ื“ืœ ื”ืขืžื•ื“ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื’ื“ื•ืœ ื™ื•ืชืจ ืžื”ื’ื•ื“ืœ ืฉืœ ื‘ืœื•ืง ืžืขืจื›ืช ื”ืงื‘ืฆื™ื. ืื ื’ื•ื“ืœ ื”ืขืžื•ื“ ืฉื•ื•ื” ืœื’ื•ื“ืœ ื”ื‘ืœื•ืง, ืื– ืœืขื•ืœื ืœื ื ื•ื›ืœ ืœืฉื—ืจืจ ื‘ืœื•ืง ื‘ื•ื“ื“, ืฉื›ืŸ ื›ื“ื™ ืœืฉื—ืจืจ ื‘ืœื•ืง ื‘ื•ื“ื“, ื”ืขืžื•ื“ ื”ื“ื—ื•ืก ื—ื™ื™ื‘ ืœืชืคื•ืก 0 ื‘ืชื™ื. ืื ื’ื•ื“ืœ ื”ืขืžื•ื“ ืฉื•ื•ื” ืœื’ื•ื“ืœ ืฉืœ 2 ืื• 4 ื‘ืœื•ืงื™ื, ื›ื‘ืจ ื ื•ื›ืœ ืœืคื ื•ืช ืœืคื—ื•ืช ื‘ืœื•ืง ืื—ื“ ืื ื”ื“ืฃ ืฉืœื ื• ื“ื—ื•ืก ืœ-50% ืื• 75% ืœืคื—ื•ืช, ื‘ื”ืชืืžื”.

ืœืคื™ื›ืš, ื”ืชื™ืื•ืจ ื”ืกื•ืคื™ ืฉืœ ืื•ืคืŸ ืคืขื•ืœืช ื”ืžื ื’ื ื•ืŸ: ื‘ืขืช ื›ืชื™ื‘ืช ื“ืฃ ืœื“ื™ืกืง, ื ืขืฉื” ื ื™ืกื™ื•ืŸ ืœื“ื—ื•ืก ืืช ื”ืขืžื•ื“. ืื ื’ื•ื“ืœ ื”ืขืžื•ื“ ื”ื“ื—ื•ืก ืžืืคืฉืจ ืœืฉื—ืจืจ ื‘ืœื•ืงื™ื ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื ืื—ื“ ืื• ื™ื•ืชืจ, ื”ื“ืฃ ื ื›ืชื‘ ื‘ืฆื•ืจื” ื“ื—ื•ืกื”, ื•ื™ื•ืฆืจ "ื—ื•ืจ" ื‘ืžืงื•ื ื”ื‘ืœื•ืงื™ื ื”ืžืฉื•ื—ืจืจื™ื (ืžืชื‘ืฆืขืช ืงืจื™ืืช ืžืขืจื›ืช fallocate() ืขื ื“ื’ืœ ื”ื—ื•ืจื™ื). ืื ื’ื•ื“ืœ ื”ืขืžื•ื“ ื”ื“ื—ื•ืก ืื™ื ื• ืžืืคืฉืจ ืœืฉื—ืจืจ ืืช ื”ื‘ืœื•ืงื™ื, ื”ืขืžื•ื“ ื ืฉืžืจ ื›ืคื™ ืฉื”ื•ื, ืœื ื“ื—ื•ืก. ื›ืœ ืงื™ื–ื•ื– ื”ืขืžื•ื“ื™ื ืžื—ื•ืฉื‘ื™ื ื‘ืื•ืชื• ืื•ืคืŸ ื›ืžื• ืœืœื ื“ื—ื™ืกื”, ืขืœ ื™ื“ื™ ื”ื›ืคืœืช ืื™ื ื“ืงืก ื”ืขืžื•ื“ ื‘ื’ื•ื“ืœ ื”ืขืžื•ื“. ืื™ืŸ ืฆื•ืจืš ื‘ื”ืขื‘ืจืช ื“ืคื™ื ื‘ืขืฆืžืš. ืงื™ื–ื•ื– ืขืžื•ื“ื™ื, ืžืžืฉ ื›ืžื• ืœืœื ื“ื—ื™ืกื”, ื ื•ืคืœื™ื ืขืœ ื’ื‘ื•ืœื•ืช ื‘ืœื•ืงื™ื ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื.

ื“ื—ื™ืกืช ื ืชื•ื ื™ื ื‘- Apache Ignite. ื”ื ื™ืกื™ื•ืŸ ืฉืœ ืกื‘ืจ

ื‘ื™ื™ืฉื•ื ื”ื ื•ื›ื—ื™, Ignite ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืจืง ืขื ืงื‘ืฆื™ื ื“ืœื™ืœื™ื ื‘-Linux OS; ื‘ื”ืชืื, ื ื™ืชืŸ ืœื”ืคืขื™ืœ ื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง ืจืง ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-Ignite ื‘ืžืขืจื›ืช ื”ืคืขืœื” ื–ื•.

ืืœื’ื•ืจื™ืชืžื™ ื“ื—ื™ืกื” ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ืœื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง: ZSTD, LZ4, Snappy. ื‘ื ื•ืกืฃ, ืงื™ื™ื ืžืฆื‘ ื”ืคืขืœื” (SKIP_GARBAGE), ื‘ื• ืจืง ืฉื˜ื— ืœื ืžื ื•ืฆืœ ื‘ืขืžื•ื“ ื ื–ืจืง ื”ื—ื•ืฆื” ืžื‘ืœื™ ืœื”ืคืขื™ืœ ื“ื—ื™ืกื” ืขืœ ืฉืืจ ื”ื ืชื•ื ื™ื, ืžื” ืฉืžืคื—ื™ืช ืืช ื”ืขื•ืžืก ืขืœ ื”-CPU ื‘ื”ืฉื•ื•ืื” ืœืืœื’ื•ืจื™ืชืžื™ื ื”ืจืฉื•ืžื™ื ืงื•ื“ื ืœื›ืŸ.

ื”ืฉืคืขืช ื‘ื™ืฆื•ืขื™ื

ืœืฆืขืจื™, ืœื ืขืจื›ืชื™ ืžื“ื™ื“ื•ืช ื‘ื™ืฆื•ืขื™ื ื‘ืคื•ืขืœ ืขืœ ื“ื•ื›ื ื™ื ืืžื™ืชื™ื™ื, ืžืื—ืจ ืฉืื™ื ื ื• ืžืชื›ื ื ื™ื ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ืŸ ื–ื” ื‘ื™ื™ืฆื•ืจ, ืืš ืื ื• ื™ื›ื•ืœื™ื ืœืฉืขืจ ื‘ืื•ืคืŸ ืชื™ืื•ืจื˜ื™ ื”ื™ื›ืŸ ื ืคืกื™ื“ ื•ืื™ืคื” ื ื ืฆื—.

ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืขืœื™ื ื• ืœื–ื›ื•ืจ ื›ื™ืฆื“ ื“ืคื™ื ื ืงืจืื™ื ื•ื›ื•ืชื‘ื™ื ื‘ืขืช ื’ื™ืฉื” ืืœื™ื”ื:

  • ื›ืืฉืจ ืžื‘ืฆืขื™ื ืคืขื•ืœืช ืงืจื™ืื”, ืžื‘ืฆืขื™ื ื—ื™ืคื•ืฉ ืชื—ื™ืœื” ื‘-RAM; ืื ื”ื—ื™ืคื•ืฉ ืœื ืžืฆืœื™ื—, ื”ื“ืฃ ื ื˜ืขืŸ ืœ-RAM ืžื”ื“ื™ืกืง ืขืœ ื™ื“ื™ ืื•ืชื• ืฉืจืฉื•ืจ ืฉืžื‘ืฆืข ืืช ื”ืงืจื™ืื”.
  • ื›ืืฉืจ ืžื‘ื•ืฆืขืช ืคืขื•ืœืช ื›ืชื™ื‘ื”, ื”ืขืžื•ื“ ื‘-RAM ืžืกื•ืžืŸ ื›ืžืœื•ื›ืœืš, ืืš ื”ืขืžื•ื“ ืื™ื ื• ื ืฉืžืจ ืคื™ื–ื™ืช ื‘ื“ื™ืกืง ืžื™ื“ ืขืœ ื™ื“ื™ ื”ืฉืจืฉื•ืจ ืฉืžื‘ืฆืข ืืช ื”ื›ืชื™ื‘ื”. ื›ืœ ื”ื“ืคื™ื ื”ืžืœื•ื›ืœื›ื™ื ื ืฉืžืจื™ื ื‘ื“ื™ืกืง ืžืื•ื—ืจ ื™ื•ืชืจ ื‘ืชื”ืœื™ืš ื”ืžื—ืกื•ื ื‘ืฉืจืฉื•ืจื™ื ื ืคืจื“ื™ื.

ืื– ื”ื”ืฉืคืขื” ืขืœ ืคืขื•ืœื•ืช ื”ืงืจื™ืื” ื”ื™ื:

  • ื—ื™ื•ื‘ื™ (ื“ื™ืกืง IO), ืขืงื‘ ื™ืจื™ื“ื” ื‘ืžืกืคืจ ื‘ืœื•ืงื™ื ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื”ื ืงืจืืช.
  • ืฉืœื™ืœื™ (CPU), ืขืงื‘ ื”ืขื•ืžืก ื”ื ื•ืกืฃ ื”ื ื“ืจืฉ ืขืœ ื™ื“ื™ ืžืขืจื›ืช ื”ื”ืคืขืœื” ืœืขื‘ื•ื“ื” ืขื ืงื‘ืฆื™ื ื“ืœื™ืœื™ื. ื™ื™ืชื›ืŸ ื’ื ืฉืคืขื•ืœื•ืช IO ื ื•ืกืคื•ืช ื™ื•ืคื™ืขื• ื›ืืŸ ื‘ืื•ืคืŸ ืžืจื•ืžื– ื›ื“ื™ ืœืฉืžื•ืจ ืžื‘ื ื” ืงื‘ืฆื™ื ื“ืœื™ืœ ืžื•ืจื›ื‘ ื™ื•ืชืจ (ืœืฆืขืจื™, ืื ื™ ืœื ื‘ืงื™ื ื‘ื›ืœ ื”ืคืจื˜ื™ื ื›ื™ืฆื“ ืคื•ืขืœื™ื ืงื‘ืฆื™ื ื“ืœื™ืœื™ื).
  • ืฉืœื™ืœื™ (CPU), ืขืงื‘ ื”ืฆื•ืจืš ื‘ืคื™ืจื•ืง ื“ืคื™ื.
  • ืื™ืŸ ื”ืฉืคืขื” ืขืœ ืคืขื•ืœื•ืช ื”ื›ืชื™ื‘ื”.
  • ื”ืฉืคืขื” ืขืœ ืชื”ืœื™ืš ื”ืžื—ืกื•ื (ื”ื›ืœ ื›ืืŸ ื“ื•ืžื” ืœืคืขื•ืœื•ืช ืงืจื™ืื”):
  • ื—ื™ื•ื‘ื™ (ื“ื™ืกืง IO), ืขืงื‘ ื™ืจื™ื“ื” ื‘ืžืกืคืจ ื‘ืœื•ืงื™ื ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื”ื›ืชื•ื‘ื”.
  • ืฉืœื™ืœื™ (CPU, ืื•ืœื™ ื“ื™ืกืง IO), ืขืงื‘ ืขื‘ื•ื“ื” ืขื ืงื‘ืฆื™ื ื“ืœื™ืœื™ื.
  • ืฉืœื™ืœื™ (CPU), ืขืงื‘ ื”ืฆื•ืจืš ื‘ื“ื—ื™ืกืช ืขืžื•ื“.

ืื™ื–ื” ืฆื“ ืฉืœ ื”ืกืงืืœื” ื™ื˜ื” ืืช ื”ืกืงืืœื”? ื›ืœ ื–ื” ืชืœื•ื™ ืžืื•ื“ ื‘ืกื‘ื™ื‘ื”, ืื‘ืœ ืื ื™ ื ื•ื˜ื” ืœื”ืืžื™ืŸ ืฉื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง ืชื•ื‘ื™ืœ ื›ื›ืœ ื”ื ืจืื” ืœื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื ื‘ืจื•ื‘ ื”ืžืขืจื›ื•ืช. ื™ืชืจื” ืžื›ืš, ื‘ื“ื™ืงื•ืช ืขืœ DBMSs ืื—ืจื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘ื’ื™ืฉื” ื“ื•ืžื” ืขื ืงื‘ืฆื™ื ื“ืœื™ืœื™ื ืžืจืื•ืช ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื ื›ืืฉืจ ื”ื“ื—ื™ืกื” ืžื•ืคืขืœืช.

ื›ื™ืฆื“ ืœื”ืคืขื™ืœ ื•ืœื”ื’ื“ื™ืจ

ื›ืคื™ ืฉื”ื•ื–ื›ืจ ืœืขื™ืœ, ื”ื’ืจืกื” ื”ืžื™ื ื™ืžืœื™ืช ืฉืœ Apache Ignite ื”ืชื•ืžื›ืช ื‘ื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง ื”ื™ื 2.8 ื•ืจืง ืžืขืจื›ืช ื”ื”ืคืขืœื” ืœื™ื ื•ืงืก ื ืชืžื›ืช. ื”ืคืขืœ ื•ื”ื’ื“ืจ ื‘ืื•ืคืŸ ื”ื‘ื:

  • ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื•ื“ื•ืœ ignite-compression ื‘-class-path. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ื•ื ืžืžื•ืงื ื‘ื”ืคืฆืช Apache Ignite ื‘ืกืคืจื™ื™ื” libs/ืื•ืคืฆื™ื•ื ืœื™ืช ื•ืื™ื ื• ื›ืœื•ืœ ื‘-class-path. ืืชื” ื™ื›ื•ืœ ืคืฉื•ื˜ ืœื”ื–ื™ื– ืืช ื”ืกืคืจื™ื™ื” ืœืžืขืœื” ืจืžื” ืื—ืช ืœ-libs ื•ืื– ื›ืืฉืจ ืชืคืขื™ืœ ืื•ืชื” ื“ืจืš ignite.sh ื”ื™ื ืชื•ืคืขืœ ืื•ื˜ื•ืžื˜ื™ืช.
  • ื™ืฉ ืœื”ืคืขื™ืœ ืืช ื”ื”ืชืžื“ื” (ืžื•ืคืขืœ ื‘ืืžืฆืขื•ืช DataRegionConfiguration.setPersistenceEnabled(true)).
  • ื’ื•ื“ืœ ื”ืขืžื•ื“ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื’ื“ื•ืœ ื™ื•ืชืจ ืžื’ื•ื“ืœ ื”ื‘ืœื•ืง ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื (ืชื•ื›ืœ ืœื”ื’ื“ื™ืจ ืื•ืชื• ื‘ืืžืฆืขื•ืช DataStorageConfiguration.setPageSize() ).
  • ืขื‘ื•ืจ ื›ืœ ืžื˜ืžื•ืŸ ืฉืฆืจื™ืš ืœื“ื—ื•ืก ืืช ื”ื ืชื•ื ื™ื ืฉืœื•, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ืฉื™ื˜ืช ื”ื“ื—ื™ืกื” ื•(ืื•ืคืฆื™ื•ื ืœื™) ืืช ืจืžืช ื”ื“ื—ื™ืกื” (ืฉื™ื˜ื•ืช CacheConfiguration.setDiskPageCompression() , CacheConfiguration.setDiskPageCompressionLevel()).

ื“ื—ื™ืกื” ืฉืœ WAL

ืึตื™ืš ืžึทืคืขึดื™ืœึดื™ื ืึถืช ื–ึถื”

ืžื”ื• WAL ื•ืœืžื” ื”ื•ื ื ื—ื•ืฅ? ื‘ืงืฆืจื” ืžืื•ื“: ื–ื”ื• ื™ื•ืžืŸ ื”ืžื›ื™ืœ ืืช ื›ืœ ื”ืื™ืจื•ืขื™ื ืฉืžืฉื ื™ื ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืืช ืื—ืกื•ืŸ ื”ื“ืฃ. ื–ื” ื ื—ื•ืฅ ื‘ืขื™ืงืจ ื›ื“ื™ ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื”ืชืื•ืฉืฉ ื‘ืžืงืจื” ืฉืœ ื ืคื™ืœื”. ื›ืœ ืคืขื•ืœื”, ืœืคื ื™ ืžืชืŸ ืฉืœื™ื˜ื” ืœืžืฉืชืžืฉ, ื—ื™ื™ื‘ืช ืชื—ื™ืœื” ืœื”ืงืœื™ื˜ ืื™ืจื•ืข ื‘-WAL, ื›ืš ืฉื‘ืžืงืจื” ืฉืœ ื›ืฉืœ, ื ื™ืชืŸ ื™ื”ื™ื” ืœื”ืฉืžื™ืข ืื•ืชื• ื‘ื™ื•ืžืŸ ื•ืœืฉื—ื–ืจ ืืช ื›ืœ ื”ืคืขื•ืœื•ืช ืฉื”ืžืฉืชืžืฉ ืงื™ื‘ืœ ืขืœื™ื”ืŸ ืชื’ื•ื‘ื” ืžื•ืฆืœื—ืช, ื’ื ืื ืคืขื•ืœื•ืช ืืœื• ืœื ื”ืกืคื™ืง ืœื”ืฉืชืงืฃ ื‘ืื—ืกื•ืŸ ื”ื“ืคื™ื ื‘ื“ื™ืกืง (ื›ื‘ืจ ืœืžืขืœื” ืชื•ืืจ ืฉื”ื›ืชื™ื‘ื” ื‘ืคื•ืขืœ ืœื—ื ื•ืช ื”ื“ืคื™ื ื ืขืฉื™ืช ื‘ืชื”ืœื™ืš ืฉื ืงืจื "ืฆ'ืง-ืคื•ื™ื ื˜ื™ื ื’" ืขื ืขื™ื›ื•ื‘ ืžืกื•ื™ื ืขืœ ื™ื“ื™ ืฉืจืฉื•ืจื™ื ื ืคืจื“ื™ื).

ืขืจื›ื™ื ื‘-WAL ืžื—ื•ืœืงื™ื ืœืœื•ื’ื™ื™ื ื•ืคื™ืกื™ื™ื. ืืœื” ื‘ื•ืœื™ืื ื™ื™ื ื”ื ื”ืžืคืชื—ื•ืช ื•ื”ืขืจื›ื™ื ืขืฆืžื. ืคื™ื–ื™ - ืžืฉืงืฃ ืฉื™ื ื•ื™ื™ื ื‘ื“ืคื™ื ื‘ื—ื ื•ืช ื”ื“ืคื™ื. ื‘ืขื•ื“ ืฉืจืฉื•ืžื•ืช ืœื•ื’ื™ื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ื•ืช ืขื‘ื•ืจ ื›ืžื” ืžืงืจื™ื ืื—ืจื™ื, ืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช ื ื—ื•ืฆื•ืช ืจืง ืœื”ืชืื•ืฉืฉื•ืช ื‘ืžืงืจื” ืฉืœ ืงืจื™ืกื” ื•ืจืฉื•ืžื•ืช ื ื—ื•ืฆื•ืช ืจืง ืžืื– ื”ืžื—ืกื•ื ื”ืžื•ืฆืœื— ื”ืื—ืจื•ืŸ. ื›ืืŸ ืœื ื ืคืจื˜ ื•ื ืกื‘ื™ืจ ืžื“ื•ืข ื–ื” ืขื•ื‘ื“ ื›ืš, ืืš ื”ืžืขื•ื ื™ื™ื ื™ื ื™ื›ื•ืœื™ื ืœื”ืชื™ื™ื—ืก ืœืžืืžืจ ืฉื”ื•ื–ื›ืจ ื›ื‘ืจ ืขืœ ื”- Apache Ignite Wiki: Ignite Persistent Store - ืžืชื—ืช ืœืžื›ืกื” ื”ืžื ื•ืข.

ืœืจื•ื‘ ื™ืฉ ื›ืžื” ืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช ืœื›ืœ ืจืฉื•ืžื” ืœื•ื’ื™ืช. ื›ืœื•ืžืจ, ืœืžืฉืœ, ืคืขื•ืœืช ื”ื›ื ืกื” ืื—ืช ืœืžื˜ืžื•ืŸ ืžืฉืคื™ืขื” ืขืœ ืžืกืคืจ ืขืžื•ื“ื™ื ื‘ื–ื™ื›ืจื•ืŸ ื”ืขืžื•ื“ (ืขืžื•ื“ ืขื ื”ื ืชื•ื ื™ื ืขืฆืžื, ืขืžื•ื“ื™ื ืขื ืื™ื ื“ืงืกื™ื, ืขืžื•ื“ื™ื ืขื ืจืฉื™ืžื•ืช ื—ื•ืคืฉื™ื•ืช). ื‘ื›ืžื” ื‘ื“ื™ืงื•ืช ืกื™ื ืชื˜ื™ื•ืช, ืžืฆืืชื™ ืฉืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช ืชื•ืคืกื•ืช ืขื“ 90% ืžืงื•ื‘ืฅ ื”-WAL. ืขื ื–ืืช, ื”ื ื ื—ื•ืฆื™ื ืœื–ืžืŸ ืงืฆืจ ืžืื•ื“ (ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืžืจื•ื•ื— ื‘ื™ืŸ ื”ืžื—ืกื•ืžื™ื ื”ื•ื 3 ื“ืงื•ืช). ื–ื” ื™ื”ื™ื” ื”ื’ื™ื•ื ื™ ืœื”ื™ืคื˜ืจ ืžื”ื ืชื•ื ื™ื ื”ืืœื” ืœืื—ืจ ืื™ื‘ื•ื“ ื”ืจืœื•ื•ื ื˜ื™ื•ืช ืฉืœื”ื. ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉืขื•ืฉื” ืžื ื’ื ื•ืŸ ื”ื“ื—ื™ืกื” ืฉืœ WAL: ื”ื•ื ื ืคื˜ืจ ืžืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช ื•ื“ื•ื—ืก ืืช ื”ืจืฉื•ืžื•ืช ื”ืœื•ื’ื™ื•ืช ื”ื ื•ืชืจื•ืช ื‘ืืžืฆืขื•ืช zip, ื‘ืขื•ื“ ืฉื’ื•ื“ืœ ื”ืงื•ื‘ืฅ ืžืฆื˜ืžืฆื ื‘ืฆื•ืจื” ืžืฉืžืขื•ืชื™ืช ืžืื•ื“ (ืœืคืขืžื™ื ื‘ืขืฉืจื•ืช ืžื•ื ื™ื).

ืžื‘ื—ื™ื ื” ืคื™ื–ื™ืช, WAL ืžื•ืจื›ื‘ ืžื›ืžื” ืžืงื˜ืขื™ื (10 ื›ื‘ืจื™ืจืช ืžื—ื“ืœ) ื‘ื’ื•ื“ืœ ืงื‘ื•ืข (64MB ื›ื‘ืจื™ืจืช ืžื—ื“ืœ), ืืฉืจ ื ืžื—ืงื™ื ื‘ืฆื•ืจื” ืžืขื’ืœื™ืช. ื‘ืจื’ืข ืฉื”ืงื˜ืข ื”ื ื•ื›ื—ื™ ืžืชืžืœื, ื”ืงื˜ืข ื”ื‘ื ืžื•ืงืฆื” ื›ื ื•ื›ื—ื™, ื•ื”ืงื˜ืข ื”ืžืœื ืžื•ืขืชืง ืœืืจื›ื™ื•ืŸ ื‘ืืžืฆืขื•ืช ืฉืจืฉื•ืจ ื ืคืจื“. ื“ื—ื™ืกื” ืฉืœ WAL ื›ื‘ืจ ืขื•ื‘ื“ืช ืขื ืžืงื˜ืขื™ ืืจื›ื™ื•ืŸ. ื›ืžื• ื›ืŸ, ื›ื—ื•ื˜ ื ืคืจื“, ื”ื•ื ืขื•ืงื‘ ืื—ืจ ื‘ื™ืฆื•ืข ื”ืžื—ืกื•ื ื•ืžืชื—ื™ืœ ื“ื—ื™ืกื” ื‘ืงื˜ืขื™ ืืจื›ื™ื•ืŸ ืฉืขื‘ื•ืจื ืื™ืŸ ืฆื•ืจืš ื‘ืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช ื™ื•ืชืจ.

ื“ื—ื™ืกืช ื ืชื•ื ื™ื ื‘- Apache Ignite. ื”ื ื™ืกื™ื•ืŸ ืฉืœ ืกื‘ืจ

ื”ืฉืคืขืช ื‘ื™ืฆื•ืขื™ื

ืžื›ื™ื•ื•ืŸ ืฉื”ื“ื—ื™ืกื” ืฉืœ WAL ืคื•ืขืœืช ื›ื—ื•ื˜ ื ืคืจื“, ืœื ืืžื•ืจื” ืœื”ื™ื•ืช ื”ืฉืคืขื” ื™ืฉื™ืจื” ืขืœ ื”ืคืขื•ืœื•ืช ื”ืžืชื‘ืฆืขื•ืช. ืื‘ืœ ื–ื” ืขื“ื™ื™ืŸ ืžื›ื ื™ืก ืขื•ืžืก ืจืงืข ื ื•ืกืฃ ืขืœ ื”ืžืขื‘ื“ (ื“ื—ื™ืกื”) ื•ืขืœ ื”ื“ื™ืกืง (ืงื•ืจื ื›ืœ ืงื˜ืข WAL ืžื”ืืจื›ื™ื•ืŸ ื•ื›ืชื™ื‘ืช ื”ืงื˜ืขื™ื ื”ื“ื—ื•ืกื™ื), ื›ืš ืฉืื ื”ืžืขืจื›ืช ืคื•ืขืœืช ื‘ืงื™ื‘ื•ืœืช ื”ืžืงืกื™ืžืœื™ืช ืฉืœื”, ื–ื” ื™ื•ื‘ื™ืœ ื’ื ืœื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื.

ื›ื™ืฆื“ ืœื”ืคืขื™ืœ ื•ืœื”ื’ื“ื™ืจ

ืืชื” ื™ื›ื•ืœ ืœืืคืฉืจ ื“ื—ื™ืกื” ืฉืœ WAL ื‘ืืžืฆืขื•ืช ื”ืžืืคื™ื™ืŸ WalCompactionEnabled ะฒ DataStorageConfiguration (DataStorageConfiguration.setWalCompactionEnabled(true)). ื›ืžื• ื›ืŸ, ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช DataStorageConfiguration.setWalCompactionLevel(), ืชื•ื›ืœ ืœื”ื’ื“ื™ืจ ืืช ืจืžืช ื”ื“ื—ื™ืกื” ืื ืื™ื ืš ืžืจื•ืฆื” ืžืขืจืš ื‘ืจื™ืจืช ื”ืžื—ื“ืœ (BEST_SPEED).

ื“ื—ื™ืกืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืขืžื•ื“ WAL

ืึตื™ืš ืžึทืคืขึดื™ืœึดื™ื ืึถืช ื–ึถื”

ื›ื‘ืจ ื’ื™ืœื™ื ื• ืฉื‘-WAL ืจืฉื•ืžื•ืช ืžื—ื•ืœืงื•ืช ืœืœื•ื’ื™ื•ืช ื•ืคื™ื–ื™ื•ืช. ืขื‘ื•ืจ ื›ืœ ืฉื™ื ื•ื™ ื‘ื›ืœ ืขืžื•ื“, ื ื•ืฆืจืช ืจืฉื•ืžืช WAL ืคื™ื–ื™ืช ื‘ื–ื™ื›ืจื•ืŸ ื”ืขืžื•ื“. ืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช, ื‘ืชื•ืจืŸ, ืžื—ื•ืœืงื•ืช ื’ื ืœ-2 ืชืช-ืกื•ื’ื™ื: ืจืฉื•ืžืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืขืžื•ื“ ื•ืจืฉื•ืžื” ื“ืœืชื. ื‘ื›ืœ ืคืขื ืฉืื ื• ืžืฉื ื™ื ืžืฉื”ื• ื‘ื“ืฃ ื•ืžืขื‘ื™ืจื™ื ืื•ืชื• ืžืžืฆื‘ ื ืงื™ ืœืžืฆื‘ ืžืœื•ื›ืœืš, ืขื•ืชืง ืฉืœื ืฉืœ ื“ืฃ ื–ื” ืžืื•ื—ืกืŸ ื‘-WAL (ืจืฉื•ืžื” ืฉืœ ื“ืฃ snapshot). ื’ื ืื ืฉื™ื ื™ื ื• ืจืง ื‘ื™ื™ื˜ ืื—ื“ ื‘-WAL, ื”ืจืฉื•ืžื” ืชื”ื™ื” ืžืขื˜ ื’ื“ื•ืœื” ื™ื•ืชืจ ืžื’ื•ื“ืœ ื”ืขืžื•ื“. ืื ื ืฉื ื” ืžืฉื”ื• ื‘ื“ืฃ ืฉื›ื‘ืจ ืžืœื•ื›ืœืš, ื ื•ืฆืจืช ืจืฉื•ืžืช ื“ืœืชื ื‘-WAL, ื”ืžืฉืงืคืช ืจืง ืฉื™ื ื•ื™ื™ื ื‘ื”ืฉื•ื•ืื” ืœืžืฆื‘ ื”ืงื•ื“ื ืฉืœ ื”ืขืžื•ื“, ืืš ืœื ืืช ื›ืœ ื”ืขืžื•ื“. ืžืื—ืจ ื•ืื™ืคื•ืก ืžืฆื‘ ื”ื“ืคื™ื ืžืžืœื•ื›ืœืš ืœื ืงื™ ืžืชื‘ืฆืข ื‘ืชื”ืœื™ืš ื”ืžื—ืกื•ื, ืžื™ื“ ืœืื—ืจ ืชื—ื™ืœืช ื”ืžื—ืกื•ื, ื›ืžืขื˜ ื›ืœ ื”ืจื™ืฉื•ืžื™ื ื”ืคื™ื–ื™ื™ื ื™ื”ื™ื• ืžื•ืจื›ื‘ื™ื ืจืง ืžืชืฆืœื•ืžื™ ืžืฆื‘ ืฉืœ ื“ืคื™ื (ืฉื›ืŸ ื›ืœ ื”ื“ืคื™ื ืžื™ื“ ืœืื—ืจ ืชื—ื™ืœืช ื”ืžื—ืกื•ื ื ืงื™ื™ื). , ืื– ื›ืฉืื ื—ื ื• ืžืชืงืจื‘ื™ื ืœืžื—ืกื•ื ื”ื‘ื, ื—ืœืง ื”ืจืฉื•ืžื•ืช ืฉืœ ื”ื“ืœืชื ืžืชื—ื™ืœ ืœื’ื“ื•ืœ ื•ืžืชืืคืก ืฉื•ื‘ ื‘ืชื—ื™ืœืช ื”ืžื—ืกื•ื ื”ื‘ื. ืžื“ื™ื“ื•ืช ื‘ื›ืžื” ื‘ื“ื™ืงื•ืช ืกื™ื ืชื˜ื™ื•ืช ื”ืจืื• ื›ื™ ื—ืœืงืŸ ืฉืœ ืชืžื•ื ื•ืช ื”ืขืžื•ื“ ื‘ื ืคื— ื”ื›ื•ืœืœ ืฉืœ ื”ืจืฉื•ืžื•ืช ื”ืคื™ื–ื™ื•ืช ืžื’ื™ืข ืœ-90%.

ื”ืจืขื™ื•ืŸ ืฉืœ ื“ื—ื™ืกืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืขืžื•ื“ WAL ื”ื•ื ืœื“ื—ื•ืก ืฆื™ืœื•ืžื™ ืขืžื•ื“ ื‘ืืžืฆืขื•ืช ื›ืœื™ ื“ื—ื™ืกืช ื“ืคื™ื ืžื•ื›ืŸ (ืจืื” ื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง). ื™ื—ื“ ืขื ื–ืืช, ื‘-WAL, ืจืฉื•ืžื•ืช ื ืฉืžืจื•ืช ื‘ืจืฆืฃ ื‘ืžืฆื‘ ื”ื•ืกืคื” ื‘ืœื‘ื“ ื•ืื™ืŸ ืฆื•ืจืš ืœืงืฉื•ืจ ืจืฉื•ืžื•ืช ืœื’ื‘ื•ืœื•ืช ื‘ืœื•ืงื™ื ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื, ื›ืš ืฉื›ืืŸ, ื‘ื ื™ื’ื•ื“ ืœืžื ื’ื ื•ืŸ ื“ื—ื™ืกืช ืขืžื•ื“ื™ ื”ื“ื™ืกืง, ืื™ืŸ ืœื ื• ืฆื•ืจืš ื‘ืงื‘ืฆื™ื ื“ืœื™ืœื™ื ื‘- ื”ื›ืœ; ื‘ื”ืชืื, ืžื ื’ื ื•ืŸ ื–ื” ื™ืขื‘ื•ื“ ืœื ืจืง ืขืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” Linux. ื‘ื ื•ืกืฃ, ื›ื‘ืจ ืœื ืžืฉื ื” ืœื ื• ืขื“ ื›ืžื” ื”ืฆืœื—ื ื• ืœื“ื—ื•ืก ืืช ื”ืขืžื•ื“. ื’ื ืื ืฉื—ืจืจื ื• 1 ื‘ื™ื™ื˜, ื–ื• ื›ื‘ืจ ืชื•ืฆืื” ื—ื™ื•ื‘ื™ืช ื•ื ื•ื›ืœ ืœืฉืžื•ืจ ื ืชื•ื ื™ื ื“ื—ื•ืกื™ื ื‘-WAL, ื‘ื ื™ื’ื•ื“ ืœื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง, ืฉื ื ืฉืžืจ ืืช ื”ืขืžื•ื“ ื”ื“ื—ื•ืก ืจืง ืื ืฉื—ืจืจื ื• ื™ื•ืชืจ ืž-1 ื‘ืœื•ืง ืžืขืจื›ืช ืงื‘ืฆื™ื.

ื“ืคื™ื ื”ื ื ืชื•ื ื™ื ื‘ืขืœื™ ื“ื—ื™ืกื” ื’ื‘ื•ื”ื”, ื—ืœืงื ื‘ื ืคื— ื”-WAL ื”ื›ื•ืœืœ ื’ื‘ื•ื” ืžืื•ื“, ื›ืš ืฉืœืœื ืฉื™ื ื•ื™ ืคื•ืจืžื˜ ืงื•ื‘ืฅ ื”-WAL ื ื•ื›ืœ ืœืงื‘ืœ ื”ืคื—ืชื” ืžืฉืžืขื•ืชื™ืช ื‘ื’ื•ื“ืœื•. ื“ื—ื™ืกื”, ืœืจื‘ื•ืช ืจืฉื•ืžื•ืช ืœื•ื’ื™ื•ืช, ืชื“ืจื•ืฉ ืฉื™ื ื•ื™ ื‘ืคื•ืจืžื˜ ื•ืื•ื‘ื“ืŸ ืชืื™ืžื•ืช, ืœืžืฉืœ ืขื‘ื•ืจ ืฆืจื›ื ื™ื ื—ื™ืฆื•ื ื™ื™ื ืฉืขืฉื•ื™ื™ื ืœื”ืชืขื ื™ื™ืŸ ื‘ืจืฉื•ืžื•ืช ืœื•ื’ื™ื•ืช, ืืš ืœื ื™ื•ื‘ื™ืœ ืœื”ืคื—ืชื” ืžืฉืžืขื•ืชื™ืช ื‘ื’ื•ื“ืœ ื”ืงื•ื‘ืฅ.

ื›ืžื• ื‘ื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง, ื“ื—ื™ืกืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืขืžื•ื“ WAL ื™ื›ื•ืœื” ืœื”ืฉืชืžืฉ ื‘ืืœื’ื•ืจื™ืชืžื™ ื“ื—ื™ืกื” ืฉืœ ZSTD, LZ4, Snappy, ื›ืžื• ื’ื ื‘ืžืฆื‘ SKIP_GARBAGE.

ื”ืฉืคืขืช ื‘ื™ืฆื•ืขื™ื

ืœื ืงืฉื” ืœื”ื‘ื—ื™ืŸ ืฉื”ืคืขืœื” ื™ืฉื™ืจื” ืฉืœ ื“ื—ื™ืกืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืขืžื•ื“ WAL ืžืฉืคื™ืขื” ืจืง ืขืœ ืฉืจืฉื•ืจื™ื ืฉื›ื•ืชื‘ื™ื ื ืชื•ื ื™ื ืœื–ื™ื›ืจื•ืŸ ื”ืขืžื•ื“, ื›ืœื•ืžืจ, ืื•ืชื ืฉืจืฉื•ืจื™ื ืฉืžืฉื ื™ื ื ืชื•ื ื™ื ื‘ืžื˜ืžื•ื ื™ื. ืงืจื™ืืช ืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช ืž-WAL ืžืชืจื—ืฉืช ืคืขื ืื—ืช ื‘ืœื‘ื“, ื‘ืจื’ืข ืฉื”ืฆื•ืžืช ืžื•ืจื ืœืื—ืจ ื ืคื™ืœื” (ื•ืจืง ืื ื”ื•ื ื ื•ืคืœ ื‘ืžื”ืœืš ืžื—ืกื•ื).

ื–ื” ืžืฉืคื™ืข ืขืœ ืฉืจืฉื•ืจื™ื ืฉืžืฉื ื™ื ื ืชื•ื ื™ื ื‘ืื•ืคืŸ ื”ื‘ื: ืื ื• ืžืงื‘ืœื™ื ืืคืงื˜ ืฉืœื™ืœื™ (CPU) ืขืงื‘ ื”ืฆื•ืจืš ืœื“ื—ื•ืก ืืช ื”ืขืžื•ื“ ื‘ื›ืœ ืคืขื ืœืคื ื™ ื›ืชื™ื‘ื” ืœื“ื™ืกืง, ื•ื”ืฉืคืขื” ื—ื™ื•ื‘ื™ืช (ื“ื™ืกืง IO) ืขืงื‘ ื™ืจื™ื“ื” ื‘ื›ืžื•ืช ืฉืœ ื ืชื•ื ื™ื ืฉื ื›ืชื‘ื•. ื‘ื”ืชืื, ื”ื›ืœ ืคืฉื•ื˜ ื›ืืŸ: ืื ื‘ื™ืฆื•ืขื™ ื”ืžืขืจื›ืช ืžื•ื’ื‘ืœื™ื ืขืœ ื™ื“ื™ ื”-CPU, ื ืงื‘ืœ ื”ืฉืคืœื” ืงืœื”, ืื ื”ื™ื ืžื•ื’ื‘ืœืช ืขืœ ื™ื“ื™ ื“ื™ืกืง I/O, ื ืงื‘ืœ ืขืœื™ื™ื”.

ื‘ืขืงื™ืคื™ืŸ, ื”ืงื˜ื ืช ื’ื•ื“ืœ ื”-WAL ืžืฉืคื™ืขื” (ื‘ืื•ืคืŸ ื—ื™ื•ื‘ื™) ืขืœ ื–ืจืžื™ื ื”ืžืฉืœื™ื›ื™ื ืžืงื˜ืขื™ WAL ืœืืจื›ื™ื•ืŸ ื•ืœื–ืจืžื™ ื”ื“ื—ื™ืกื” ืฉืœ WAL.

ืžื‘ื—ื ื™ ื‘ื™ืฆื•ืขื™ื ืืžื™ืชื™ื™ื ื‘ืกื‘ื™ื‘ื” ืฉืœื ื• ื‘ืืžืฆืขื•ืช ื ืชื•ื ื™ื ืกื™ื ืชื˜ื™ื™ื ื”ืจืื• ืขืœื™ื™ื” ืงืœื” (ื”ืชืคื•ืงื” ื’ื“ืœื” ื‘-10%-15%, ื–ืžืŸ ื”ื”ืฉื”ื™ื” ื™ืจื“ ื‘-10%-15%).

ื›ื™ืฆื“ ืœื”ืคืขื™ืœ ื•ืœื”ื’ื“ื™ืจ

ืžื™ื ื™ืžื•ื ื’ืจืกืช Apache Ignite: 2.8. ื”ืคืขืœ ื•ื”ื’ื“ืจ ื‘ืื•ืคืŸ ื”ื‘ื:

  • ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื•ื“ื•ืœ ignite-compression ื‘-class-path. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ื•ื ืžืžื•ืงื ื‘ื”ืคืฆืช Apache Ignite ื‘ืกืคืจื™ื™ื” libs/ืื•ืคืฆื™ื•ื ืœื™ืช ื•ืื™ื ื• ื›ืœื•ืœ ื‘-class-path. ืืชื” ื™ื›ื•ืœ ืคืฉื•ื˜ ืœื”ื–ื™ื– ืืช ื”ืกืคืจื™ื™ื” ืœืžืขืœื” ืจืžื” ืื—ืช ืœ-libs ื•ืื– ื›ืืฉืจ ืชืคืขื™ืœ ืื•ืชื” ื“ืจืš ignite.sh ื”ื™ื ืชื•ืคืขืœ ืื•ื˜ื•ืžื˜ื™ืช.
  • ื™ืฉ ืœื”ืคืขื™ืœ ืืช ื”ื”ืชืžื“ื” (ืžื•ืคืขืœ ื‘ืืžืฆืขื•ืช DataRegionConfiguration.setPersistenceEnabled(true)).
  • ื™ืฉ ืœื”ื’ื“ื™ืจ ืืช ืžืฆื‘ ื”ื“ื—ื™ืกื” ื‘ืฉื™ื˜ื” DataStorageConfiguration.setWalPageCompression(), ื”ื“ื—ื™ืกื” ืžื•ืฉื‘ืชืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ (ืžืฆื‘ DisABLED).
  • ืœื—ืœื•ืคื™ืŸ, ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืืช ืจืžืช ื”ื“ื—ื™ืกื” ื‘ืืžืฆืขื•ืช ื”ืฉื™ื˜ื” DataStorageConfiguration.setWalPageCompression(), ืขื™ื™ืŸ ื‘-javadoc ืขื‘ื•ืจ ื”ืฉื™ื˜ื” ืขื‘ื•ืจ ืขืจื›ื™ื ื—ื•ืงื™ื™ื ืขื‘ื•ืจ ื›ืœ ืžืฆื‘.

ืžืกืงื ื”

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ื ื™ ื“ื—ื™ืกืช ื”ื ืชื•ื ื™ื ื”ื ื—ืฉื‘ื™ื ื‘- Apache Ignite ืœืœื ืชืœื•ืช ื–ื” ื‘ื–ื”, ืืš ื’ื ื›ืœ ืฉื™ืœื•ื‘ ื‘ื™ื ื™ื”ื ืžืงื•ื‘ืœ. ื”ื‘ื ื” ื›ื™ืฆื“ ื”ื ืคื•ืขืœื™ื ืชืืคืฉืจ ืœืš ืœืงื‘ื•ืข ืขื“ ื›ืžื” ื”ื ืžืชืื™ืžื™ื ืœืžืฉื™ืžื•ืช ืฉืœืš ื‘ืกื‘ื™ื‘ืชืš ื•ืžื” ืชืฆื˜ืจืš ืœื”ืงืจื™ื‘ ื‘ืขืช ื”ืฉื™ืžื•ืฉ ื‘ื”ื. ื“ื—ื™ืกืช ื“ืคื™ ื“ื™ืกืง ื ื•ืขื“ื” ืœื“ื—ื•ืก ืืช ื”ืื—ืกื•ืŸ ื”ืจืืฉื™ ื•ื™ื›ื•ืœื” ืœืชืช ื™ื—ืก ื“ื—ื™ืกื” ื‘ื™ื ื•ื ื™. ื“ื—ื™ืกืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ืขืžื•ื“ WAL ืชื™ืชืŸ ื“ืจื’ืช ื“ื—ื™ืกื” ืžืžื•ืฆืขืช ืขื‘ื•ืจ ืงื‘ืฆื™ WAL, ื•ื›ื›ืœ ื”ื ืจืื” ืืฃ ืชืฉืคืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื. ืœื“ื—ื™ืกื” ืฉืœ WAL ืœื ืชื”ื™ื” ื”ืฉืคืขื” ื—ื™ื•ื‘ื™ืช ืขืœ ื”ื‘ื™ืฆื•ืขื™ื, ืืš ืชืคื—ื™ืช ืืช ื’ื•ื“ืœ ืงื‘ืฆื™ WAL ื›ื›ืœ ื”ืืคืฉืจ ืขืœ ื™ื“ื™ ื”ืกืจืช ืจืฉื•ืžื•ืช ืคื™ื–ื™ื•ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”