ืืฉืขืืืืื ืขื ืืืืืืช ืืืืืืช ืฉื ื ืชืื ืื, ืืืืื ืืืชืขืืจืจ ืืคืขืืื ืืขืื ืฉื ืืืกืจ ืืงืื ืืืืกืง. ืืืช ืืืจืืื ืืคืชืืจ ืืขืื ืื ืืื ืืืืกื, ืฉืืืืืชื, ืขื ืืืชื ืฆืืื, ืืชื ืืืื ืืืจืฉืืช ืืขืฆืื ืืืืืื ืืช ื ืคืื ืืืืกืื. ืืืืืจ ืื, ื ืืื ืืืฆื ืคืืขืืช ืืืืกืช ื ืชืื ืื ื- Apache Ignite. ืืืืจ ืื ืืชืืจ ืจืง ืืช ืฉืืืืช ืืืืกืช ืืืืกืง ืืืืืฉืืืช ืืชืื ืืืืฆืจ. ืฉืืืืช ืืืจืืช ืฉื ืืืืกืช ื ืชืื ืื (ืขื ืืจืฉืช, ืืืืืจืื), ืืื ืื ืืืฉืื ืืืื ืื ืื, ืืืฉืืจื ืืืืฅ ืืชืืื.
ืื, ืืฉืืฆื ืืชืืื ืืืคืขื, ืืชืืฆืื ืืฉืื ืืืื ืื ืชืื ืื ืืืืืื ืื, Ignite ืืชืืื ืืืชืื ืืืืกืง:
- ืชืืื ืืืืื ืื
- ืืชืื ืืืื ืงืืืื (ืืืื ืคืฉืื WAL)
ืงืืื ืื ืื ืื ืืืืืกืช WAL ืืืจ ืื ืืจืื ืืื, ืื ืงืจื WAL compaction. ื-Apache Ignite 2.8 ืฉืฉืืืจืจ ืืืืจืื ื ืืฆืื ืฉื ื ืื ืื ืื ืื ื ืืกืคืื ืืืืคืฉืจืื ืืืืืก ื ืชืื ืื ืืืืกืง: ืืืืกืช ืขืืืื ืืืกืง ืืืืืกืช ืชืืื ืืืืืื ืื ืืืืืกืช ืชืืื ืช ืืฆื ืฉื ืขืืื WAL ืืืืืกืช ืืืง ืืืขืจืื WAL. ืคืจืืื ื ืืกืคืื ืขื ืื ืฉืืืฉืช ืืื ืื ืื ืื ืืืื ืืืืฉื.
ืืืืกืช ืืคื ืืืกืง
ืึตืื ืึทืคืขึดืืึดืื ืึถืช ืึถื
ืจืืฉืืช, ืืืื ื ืกืชืื ืืืื ืขื ืืืืคื ืฉืื Ignite ืืืืกื ื ืชืื ืื. ืืืืจืื ืืขืืื ืืฉืืฉ ืืืืกืื. ืืืื ืืขืืื ืืืืืจ ืืชืืืืช ืืฆืืืช ืืื ื ืืชื ืืฉื ืืช ืืืชื ืืฉืืืื ืืืืืจืื ืืืชืจ; ืืื ืื, ืืืื ืืขืืื ืืืื ืืืืืช ืืืืงืช ืฉืชืืื ืืืคืืื ืฉื ืืืื ืืืืืง ืฉื ืืขืจืืช ืืงืืฆืื. ืืคืื ื ืืขื ืื ื-RAM ืืืืืกืง ืืคื ืืฆืืจื; ืืืื ืื ืชืื ืื ืืืืกืง ืขืฉืื ืืขืืืช ืขื ืืืืช ื-RAM ืฉืืืงืฆื. ืื ืืื ืืกืคืืง ืืงืื ื-RAM ืืื ืืืขืื ืขืืื ืืืืืกืง, ืืคืื ืืฉื ืื ืฉืืื ื ืืฉืืืืฉ ืขืื ืืคืื ื ืื-RAM.
ืื ืชืื ืื ืืืืืกื ืื ืืืืกืง ืืฆืืจื ืืืื: ื ืืฆืจ ืงืืืฅ ื ืคืจื ืืื ืืืืฆื ืฉื ืื ืงืืืฆืช ืืืืื, ืืงืืืฅ ืื ืืืคืืขืื ืืคืื ืืื ืืืจ ืื ืืกืืจ ืืื ืืงืก ืขืืื. ืืืื ืืขืืื ืืืื ืืืื ืืช ืืืื ืงืืืฆืช ืืืืืื, ืืกืคืจ ืืืืืฆื ืืืื ืืงืก ืืขืืืืื ืืงืืืฅ. ืื, ืืืืฆืขืืช ืืืื ืืขืืื ืืืื, ื ืืื ืืงืืืข ืืืืคื ืืืืืื ืืช ืืงืืืฅ ืืืช ืืืืกื ืืงืืืฅ ืขืืืจ ืื ืขืืื. ืืชื ืืืื ืืงืจืื ืขืื ืขื ืืืืจืื ืืืืืคื ืืืืืจ Apache Ignite Wiki:
ืื ืื ืื ืืืืกืช ืขืืืื ืืืืกืง, ืืคื ืฉื ืืชื ืื ืืฉ ืืืฉื, ืคืืขื ืืจืืช ืืขืืื. ืืืฉืจ ืื ืื ืื ืื ืืืคืขื, ืื ืชืื ืื ื-RAM ืืขืืืืื ืืคื ืฉืื, ืืื ืื ืืืืกื, ืื ืืืฉืจ ืืคืื ื ืฉืืจืื ื-RAM ืืืืกืง, ืื ื ืืืกืื.
ืืื ืืืืกืช ืื ืขืืื ืื ืคืจื ืืื ื ืคืชืจืื ืืืขืื; ืืชื ืฆืจืื ืืืืฉืื ืืืคืืืช ืืช ืืืื ืงืืฆื ืื ืชืื ืื ืืืชืงืืืื. ืื ืืืื ืืขืืื ืืืจ ืื ืงืืืข, ืื ื ืืื ืืืชืจ ืืืชืื ืืคืื ืืงืืืฅ ืืื ืืืจ ืื, ืืืืืื ืฉืืืืจ ืขืืื ืืืฆืืจ ืืกืคืจ ืืขืืืช:
- ืืืืฆืขืืช ืืื ืืงืก ืืขืืืืื ืื ื ืืื ืืืฉื ืืช ืืืืกื ืืคืื ืืื ื ืืฆื ืืงืืืฅ.
- ืื ืืจืืจ ืื ืขืืฉืื ืขื ืืคืื ืฉืื ื ืืฆืืื ืืกืืฃ ืืงืืืฅ ืืืฉื ืื ืืช ืืืืื. ืื ืืืื ืืขืืื ืืงืื, ืืฉืื ืฉืืื ืคืื ื ืืืขืื. ืื ืืืื ืืขืืื ืืื, ืขืืื ืืืคืฉ ืขืืืจื ืืงืื ืืืฉ ืืงืืืฅ.
- ืื ืขืืื ืื ืืืกืคืจ ืืชืื ืฉืืื ื ืืคืื ืฉื ืืืื ืืืืืง ืฉื ืืขืจืืช ืืงืืฆืื, ืืื ืงืจืืื ืื ืืชืืื ืฉืื ืชืืจืืฉ ื ืืืขื ืืืืืง ืืื ื ืืกืฃ ืฉื ืืขืจืืช ืืงืืฆืื, ืื ืฉืขืืื ืืืืืื ืืืจืืื ืืืืฆืืขืื.
ืืื ืืืืื ืข ืืคืชืจืื ืืขืืืช ืืื ืืจืื ืืฉืื, ืืืืกืช ืขืืืื ืืืกืง ื- Apache Ignite ืืฉืชืืฉืช ืืื ืื ืื ืืขืจืืช ืงืืฆืื ืื ืงืจื ืงืืฆืื ืืืืืื. ืงืืืฅ ืืืื ืืื ืงืืืฅ ืฉืื ื ืืชื ืืกืื ืืื ืืืืจืื ืืืื ืืคืก ื"ืืืจืื". ืืืงืจื ืื, ืื ืืืงืฆื ืืืืงืื ืฉื ืืขืจืืช ืืงืืฆืื ืืืืกืื ืืืืจืื ืืืื, ืืืชืืฆืื ืืื ืืืกืืื ืืฉืื ืืืืกืง.
ืื ืืืืื ื ืฉืืื ืืฉืืจืจ ืืืืง ืฉื ืืขืจืืช ืืงืืฆืื, ืืืื ืืืืจ ืืืื ืืืืืช ืืืื ืื ืฉืืื ืืืืืง ืืขืจืืช ืืงืืฆืื, ืื ืฉืืืื ืืืืื ื ืืกืคืช ืขื ืืืื ืืขืืื ื- Apache Ignite: ืืื ืืืืืกื ืชืืื ืืฉืคืขื ืืืฉืื, ืืืื ืืขืืื ืืืื ืืืืืช ืืืื ืืืชืจ ืืืืืื ืฉื ืืืืง ืืขืจืืช ืืงืืฆืื. ืื ืืืื ืืขืืื ืฉืืื ืืืืื ืืืืืง, ืื ืืขืืื ืื ื ืืื ืืฉืืจืจ ืืืืง ืืืื, ืฉืื ืืื ืืฉืืจืจ ืืืืง ืืืื, ืืขืืื ืืืืืก ืืืื ืืชืคืืก 0 ืืชืื. ืื ืืืื ืืขืืื ืฉืืื ืืืืื ืฉื 2 ืื 4 ืืืืงืื, ืืืจ ื ืืื ืืคื ืืช ืืคืืืช ืืืืง ืืื ืื ืืืฃ ืฉืื ื ืืืืก ื-50% ืื 75% ืืคืืืช, ืืืชืืื.
ืืคืืื, ืืชืืืืจ ืืกืืคื ืฉื ืืืคื ืคืขืืืช ืืื ืื ืื: ืืขืช ืืชืืืช ืืฃ ืืืืกืง, ื ืขืฉื ื ืืกืืื ืืืืืก ืืช ืืขืืื. ืื ืืืื ืืขืืื ืืืืืก ืืืคืฉืจ ืืฉืืจืจ ืืืืงืื ืฉื ืืขืจืืช ืงืืฆืื ืืื ืื ืืืชืจ, ืืืฃ ื ืืชื ืืฆืืจื ืืืืกื, ืืืืฆืจ "ืืืจ" ืืืงืื ืืืืืงืื ืืืฉืืืจืจืื (ืืชืืฆืขืช ืงืจืืืช ืืขืจืืช fallocate()
ืขื ืืื ืืืืจืื). ืื ืืืื ืืขืืื ืืืืืก ืืื ื ืืืคืฉืจ ืืฉืืจืจ ืืช ืืืืืงืื, ืืขืืื ื ืฉืืจ ืืคื ืฉืืื, ืื ืืืืก. ืื ืงืืืื ืืขืืืืื ืืืืฉืืื ืืืืชื ืืืคื ืืื ืืื ืืืืกื, ืขื ืืื ืืืคืืช ืืื ืืงืก ืืขืืื ืืืืื ืืขืืื. ืืื ืฆืืจื ืืืขืืจืช ืืคืื ืืขืฆืื. ืงืืืื ืขืืืืื, ืืืฉ ืืื ืืื ืืืืกื, ื ืืคืืื ืขื ืืืืืืช ืืืืงืื ืฉื ืืขืจืืช ืืงืืฆืื.
ืืืืฉืื ืื ืืืื, 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:
ืืจืื ืืฉ ืืื ืจืฉืืืืช ืคืืืืืช ืืื ืจืฉืืื ืืืืืช. ืืืืืจ, ืืืฉื, ืคืขืืืช ืืื ืกื ืืืช ืืืืืื ืืฉืคืืขื ืขื ืืกืคืจ ืขืืืืื ืืืืืจืื ืืขืืื (ืขืืื ืขื ืื ืชืื ืื ืขืฆืื, ืขืืืืื ืขื ืืื ืืงืกืื, ืขืืืืื ืขื ืจืฉืืืืช ืืืคืฉืืืช). ืืืื ืืืืงืืช ืกืื ืชืืืืช, ืืฆืืชื ืฉืจืฉืืืืช ืคืืืืืช ืชืืคืกืืช ืขื 90% ืืงืืืฅ ื-WAL. ืขื ืืืช, ืื ื ืืืฆืื ืืืื ืงืฆืจ ืืืื (ืืืจืืจืช ืืืื, ืืืจืืื ืืื ืืืืกืืืื ืืื 3 ืืงืืช). ืื ืืืื ืืืืื ื ืืืืคืืจ ืืื ืชืื ืื ืืืื ืืืืจ ืืืืื ืืจืืืื ืืืืช ืฉืืื. ืื ืืืืืง ืื ืฉืขืืฉื ืื ืื ืื ืืืืืกื ืฉื WAL: ืืื ื ืคืืจ ืืจืฉืืืืช ืคืืืืืช ืืืืืก ืืช ืืจืฉืืืืช ืืืืืืืช ืื ืืชืจืืช ืืืืฆืขืืช zip, ืืขืื ืฉืืืื ืืงืืืฅ ืืฆืืืฆื ืืฆืืจื ืืฉืืขืืชืืช ืืืื (ืืคืขืืื ืืขืฉืจืืช ืืื ืื).
ืืืืื ื ืคืืืืช, WAL ืืืจืื ืืืื ืืงืืขืื (10 ืืืจืืจืช ืืืื) ืืืืื ืงืืืข (64MB ืืืจืืจืช ืืืื), ืืฉืจ ื ืืืงืื ืืฆืืจื ืืขืืืืช. ืืจืืข ืฉืืงืืข ืื ืืืื ืืชืืื, ืืงืืข ืืื ืืืงืฆื ืื ืืืื, ืืืงืืข ืืืื ืืืขืชืง ืืืจืืืื ืืืืฆืขืืช ืฉืจืฉืืจ ื ืคืจื. ืืืืกื ืฉื WAL ืืืจ ืขืืืืช ืขื ืืงืืขื ืืจืืืื. ืืื ืื, ืืืื ื ืคืจื, ืืื ืขืืงื ืืืจ ืืืฆืืข ืืืืกืื ืืืชืืื ืืืืกื ืืงืืขื ืืจืืืื ืฉืขืืืจื ืืื ืฆืืจื ืืจืฉืืืืช ืคืืืืืช ืืืชืจ.
ืืฉืคืขืช ืืืฆืืขืื
ืืืืืื ืฉืืืืืกื ืฉื 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