倧éã®ããŒã¿ãæ±ãå Žåããã£ã¹ã¯å®¹éäžè¶³ã®åé¡ãçºçããããšããããŸãã ãã®åé¡ã解決ãã XNUMX ã€ã®æ¹æ³ã¯å§çž®ã§ããããã«ãããåãæ©åšäžã§ã¹ãã¬ãŒãž ããªã¥ãŒã ãå¢ããäœè£ãåŸãããŸãã ãã®èšäºã§ã¯ãApache Ignite ã§ããŒã¿å§çž®ãã©ã®ããã«æ©èœããããèŠãŠãããŸãã ãã®èšäºã§ã¯ã補åå ã§å®è£ ãããŠãããã£ã¹ã¯å§çž®æ¹æ³ã®ã¿ã«ã€ããŠèª¬æããŸãã ä»ã®ããŒã¿å§çž®æ¹æ³ (ãããã¯ãŒã¯äžãã¡ã¢ãªå ) ã¯ãå®è£ ãããŠãããã©ããã«ãããããã察象å€ãšãªããŸãã
ãããã£ãŠãæ°žç¶ã¢ãŒããæå¹ã«ãªã£ãŠãããšããã£ãã·ã¥å ã®ããŒã¿ãå€æŽãããçµæãIgnite ã¯ãã£ã¹ã¯ãžã®æžã蟌ã¿ãéå§ããŸãã
- ãã£ãã·ã¥ã®å 容
- å è¡æžã蟌ã¿ãã°ïŒä»¥äžãåã« WALïŒ
WAL å§çž®ã«ã¯ãWAL å§çž®ãšåŒã°ããã¡ã«ããºã ãããªãåããååšããŠããŸãã æè¿ãªãªãŒã¹ããã Apache Ignite 2.8 ã§ã¯ããã£ã¹ã¯äžã®ããŒã¿ãå§çž®ã§ãã XNUMX ã€ã®ã¡ã«ããºã ãããã«å°å
¥ãããŸããããã£ãã·ã¥ã®å
容ãå§çž®ãããã£ã¹ã¯ ããŒãžå§çž®ãšãäžéšã® WAL ãšã³ããªãå§çž®ãã WAL ããŒãž ã¹ãããã·ã§ããå§çž®ã§ãã ããã XNUMX ã€ã®ã¡ã«ããºã ãã¹ãŠã«ã€ããŠã¯ã以äžã§è©³ãã説æããŸãã
ãã£ã¹ã¯ããŒãžå§çž®
ããã¯ã©ãåããã®ã§ãã
ãŸããIgnite ãããŒã¿ãä¿åããæ¹æ³ãç°¡åã«èŠãŠã¿ãŸãããã ããŒãž ã¡ã¢ãªã¯ã¹ãã¬ãŒãžã«äœ¿çšãããŸãã ããŒãž ãµã€ãºã¯ããŒãã®éå§æã«èšå®ãããåŸã®æ®µéã§ã¯å€æŽã§ããŸããããŸããããŒãž ãµã€ãºã¯ XNUMX ã®çŽ¯ä¹ã§ããã¡ã€ã« ã·ã¹ãã ã®ããã㯠ãµã€ãºã®åæ°ã§ããå¿ èŠããããŸãã ããŒãžã¯å¿ èŠã«å¿ããŠãã£ã¹ã¯ãã RAM ã«ããŒããããããããã£ã¹ã¯äžã®ããŒã¿ã®ãµã€ãºãå²ãåœãŠããã RAM ã®éãè¶ ããå ŽåããããŸãã ãã£ã¹ã¯ããããŒãžãããŒãããã®ã«ååãªã¹ããŒã¹ã RAM ã«ãªãå Žåãå€ããŠäœ¿çšãããªããªã£ãããŒãžã RAM ããåé€ãããŸãã
ããŒã¿ã¯æ¬¡ã®åœ¢åŒã§ãã£ã¹ã¯ã«æ ŒçŽãããŸã: åãã£ãã·ã¥ã»ã°ã«ãŒãã®ããŒãã£ã·ã§ã³ããšã«å¥åã®ãã¡ã€ã«ãäœæããããã®ãã¡ã€ã«å
ã«ããŒãžãã€ã³ããã¯ã¹ã®æé ã§æ¬¡ã
ã«è¡šç€ºãããŸãã ãã«ããŒãžèå¥åã«ã¯ããã¡ã€ã«å
ã®ãã£ãã·ã¥ã°ã«ãŒãèå¥åãããŒãã£ã·ã§ã³çªå·ãããã³ããŒãžã€ã³ããã¯ã¹ãå«ãŸããŸãã ãããã£ãŠãå®å
šãªããŒãžèå¥åã䜿çšãããšããã¡ã€ã«ãšåããŒãžã®ãã¡ã€ã«å
ã®ãªãã»ãããäžæã«æ±ºå®ã§ããŸãã ããŒãžã³ã° ã¡ã¢ãªã®è©³çŽ°ã«ã€ããŠã¯ãApache Ignite Wiki ã®èšäºãåç
§ããŠãã ããã
ååããæšæž¬ã§ããããã«ããã£ã¹ã¯ ããŒãžå§çž®ã¡ã«ããºã ã¯ããŒãž ã¬ãã«ã§æ©èœããŸãã ãã®ã¡ã«ããºã ãæå¹ã«ãããšãRAM å ã®ããŒã¿ã¯å§çž®ãããã«ãã®ãŸãŸåŠçãããŸãããããŒãžã RAM ãããã£ã¹ã¯ã«ä¿åããããšãã«å§çž®ãããŸãã
ãã ããåããŒãžãåå¥ã«å§çž®ããããšã¯åé¡ã®è§£æ±ºçã§ã¯ãªããããçµæãšããŠåŸãããããŒã¿ ãã¡ã€ã«ã®ãµã€ãºãäœããã®æ¹æ³ã§åæžããå¿ èŠããããŸãã ããŒãž ãµã€ãºãåºå®ãããªããªã£ãå Žåããã¡ã€ã«ã«ããŒãžã次ã ã«æžã蟌ãããšãã§ããªããªããŸããããã¯ã次ã®ãããªããŸããŸãªåé¡ãçºçããå¯èœæ§ãããããã§ãã
- ããŒãž ã€ã³ããã¯ã¹ã䜿çšãããšããã¡ã€ã«å ã§ã®ããŒãž ã€ã³ããã¯ã¹ã®ãªãã»ãããèšç®ã§ããŸããã
- ãã¡ã€ã«ã®æ«å°Ÿã«ãªãããµã€ãºãå€æŽãããããŒãžãã©ããããã¯æ確ã§ã¯ãããŸããã ããŒãž ãµã€ãºãæžå°ãããšã解æŸãããã¹ããŒã¹ããªããªããŸãã ããŒãž ãµã€ãºãå¢å ããå Žåã¯ããã¡ã€ã«å ã®æ°ããå Žæãæ¢ãå¿ èŠããããŸãã
- ãã¡ã€ã« ã·ã¹ãã ã®ããã㯠ãµã€ãºã®åæ°ã§ã¯ãªããã€ãæ°ã§ããŒãžã移åããå ŽåãããŒãžã®èªã¿åããŸãã¯æžã蟌ã¿ã«ã¯ãã¡ã€ã« ã·ã¹ãã ãããã¯ããã XNUMX ã€æäœããå¿ èŠããããããã©ãŒãã³ã¹ã®äœäžã«ã€ãªããå¯èœæ§ããããŸãã
ãããã®åé¡ãç¬èªã®ã¬ãã«ã§è§£æ±ºããªãããã«ããããã«ãApache Ignite ã®ãã£ã¹ã¯ ããŒãžå§çž®ã§ã¯ãã¹ããŒã¹ ãã¡ã€ã«ãšåŒã°ãããã¡ã€ã« ã·ã¹ãã ã¡ã«ããºã ã䜿çšãããŸãã ã¹ããŒã¹ ãã¡ã€ã«ãšã¯ããŒãã§åããããäžéšã®é åããããŒã«ããšããŠããŒã¯ã§ãããã¡ã€ã«ã§ãã ãã®å Žåããããã®ããŒã«ãä¿åããããã«ãã¡ã€ã« ã·ã¹ãã ãããã¯ãå²ãåœãŠãããªãããããã£ã¹ã¯é åãç¯çŽãããŸãã
ãã¡ã€ã« ã·ã¹ãã ãããã¯ã解æŸããã«ã¯ãããŒã«ã®ãµã€ãºããã¡ã€ã« ã·ã¹ãã ãããã¯ä»¥äžã§ããå¿ èŠãããã®ã¯è«ççã§ããããã«ãããããŒãž ãµã€ãºãš Apache Ignite ã«è¿œå ã®å¶éã課ããããŸããå§çž®ãå¹æãçºæ®ããã«ã¯ãããŒãž ãµã€ãºã¯ãã¡ã€ã« ã·ã¹ãã ãããã¯ã®ãµã€ãºããå³å¯ã«å€§ãããªããã°ãªããŸããã ããŒãž ãµã€ãºãããã㯠ãµã€ãºãšçããå Žåãåäžã®ãããã¯ã解æŸããããšã¯ã§ããŸãããåäžã®ãããã¯ã解æŸããã«ã¯ãå§çž®ãããããŒãžã 0 ãã€ããå æããå¿ èŠãããããã§ãã ããŒãž ãµã€ãºã 2 ãããã¯ãŸã㯠4 ãããã¯ã®ãµã€ãºã«çããå ŽåãããŒãžãããããå°ãªããšã 50% ãŸã㯠75% ã«å§çž®ãããŠããã°ããã§ã«å°ãªããšã XNUMX ã€ã®ãããã¯ã解æŸã§ããŸãã
ãããã£ãŠãã¡ã«ããºã ãã©ã®ããã«æ©èœãããã«ã€ããŠã®æåŸã®èª¬æã¯æ¬¡ã®ãšããã§ãã ããŒãžããã£ã¹ã¯ã«æžã蟌ããšãã«ãããŒãžã®å§çž®ãè©Šè¡ãããŸãã å§çž®ããŒãžã®ãµã€ãºã«ãã£ãŠ XNUMX ã€ä»¥äžã®ãã¡ã€ã« ã·ã¹ãã ãããã¯ã解æŸã§ããå ŽåãããŒãžã¯å§çž®åœ¢åŒã§æžã蟌ãŸãã解æŸããããããã¯ã®ä»£ããã«ãããŒã«ããäœæãããŸã (ã·ã¹ãã ã³ãŒã«ãå®è¡ãããŸã)ã fallocate()
ãã³ãããŒã«ãã©ã°ä»ã)ã å§çž®ãããããŒãžã®ãµã€ãºã«ãã£ãŠãããã¯ã解æŸã§ããªãå ŽåãããŒãžã¯å§çž®ãããã«ãã®ãŸãŸä¿åãããŸãã ãã¹ãŠã®ããŒãž ãªãã»ããã¯ãå§çž®ãªãã®å Žåãšåãæ¹æ³ã§ãããŒãž ã€ã³ããã¯ã¹ãšããŒãž ãµã€ãºãä¹ç®ããŠèšç®ãããŸãã èªåã§ããŒãžã移åããå¿
èŠã¯ãããŸããã ããŒãž ãªãã»ããã¯ãå§çž®ãè¡ããªãå Žåãšåæ§ã«ããã¡ã€ã« ã·ã¹ãã ãããã¯ã®å¢çäžã«ãããŸãã
çŸåšã®å®è£
ã§ã¯ãIgnite 㯠Linux OS ã§ã¹ããŒã¹ ãã¡ã€ã«ã®ã¿ãåŠçã§ããããããã£ã¹ã¯ ããŒãžå§çž®ã¯ããã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã 㧠Ignite ã䜿çšããå Žåã«ã®ã¿æå¹ã«ã§ããŸãã
ãã£ã¹ã¯ ããŒãžã®å§çž®ã«äœ¿çšã§ããå§çž®ã¢ã«ãŽãªãºã : ZSTDãLZ4ãSnappyã ããã«ãæ®ãã®ããŒã¿ãå§çž®ããã«ããŒãžå ã®æªäœ¿çšé åã®ã¿ãå»æ£ããåäœã¢ãŒã (SKIP_GARBAGE) ããããããã«ãããåè¿°ã®ã¢ã«ãŽãªãºã ãšæ¯èŒã㊠CPU ã®è² è·ã軜æžãããŸãã
ããã©ãŒãã³ã¹ãžã®åœ±é¿
æ®å¿µãªããããã®ã¡ã«ããºã ãæ¬çªç°å¢ã§äœ¿çšããäºå®ããªããããå®éã®ã¹ã¿ã³ãã§ã®å®éã®ããã©ãŒãã³ã¹ã®æž¬å®ã¯è¡ã£ãŠããŸããããã©ãã§è² ããŠã©ãã§åã€ããçè«çã«æšæž¬ããããšã¯ã§ããŸãã
ãããè¡ãã«ã¯ãã¢ã¯ã»ã¹æã«ããŒãžãã©ã®ããã«èªã¿æžããããããèŠããŠããå¿ èŠããããŸãã
- èªã¿åãæäœãå®è¡ããå ŽåããŸã RAM å ã§ããŒãžãæ€çŽ¢ãããæ€çŽ¢ã倱æããå Žåãèªã¿åããå®è¡ããã®ãšåãã¹ã¬ããã«ãã£ãŠããŒãžããã£ã¹ã¯ãã RAM ã«ããŒããããŸãã
- æžã蟌ã¿æäœãå®è¡ããããšãRAM å ã®ããŒãžã¯ããŒãã£ãšããŠããŒã¯ãããŸããããã®ããŒãžã¯æžã蟌ã¿ãå®è¡ããã¹ã¬ããã«ãã£ãŠç©ççã«ããã«ãã£ã¹ã¯ã«ä¿åãããŸããã ãã¹ãŠã®ããŒã㣠ããŒãžã¯ãåŸã®ãã§ãã¯ãã€ã³ã ããã»ã¹ã§å¥ã®ã¹ã¬ããã§ãã£ã¹ã¯ã«ä¿åãããŸãã
ãããã£ãŠãèªã¿åãæäœãžã®åœ±é¿ã¯æ¬¡ã®ããã«ãªããŸãã
- èªã¿åããã¡ã€ã« ã·ã¹ãã ãããã¯æ°ã®æžå°ã«ããããã©ã¹ (ãã£ã¹ã¯ IO)ã
- ãã€ãã¹ (CPU)ããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãã¹ããŒã¹ ãã¡ã€ã«ãåŠçããããã«å¿ èŠãªè¿œå ã®è² è·ã®ããã ããè€éãªã¹ããŒã¹ ãã¡ã€ã«æ§é ãä¿åããããã«ãããã§è¿œå ã® IO æäœãæé»çã«è¡šç€ºãããå¯èœæ§ããããŸã (æ®å¿µãªãããã¹ããŒã¹ ãã¡ã€ã«ãã©ã®ããã«æ©èœãããã«ã€ããŠã¯ãç§ã¯è©³ããç¥ããŸãã)ã
- ããŒãžã解åããå¿ èŠãããããããã¬ãã£ã (CPU)ã
- æžã蟌ã¿æäœã«ã¯åœ±é¿ããŸããã
- ãã§ãã¯ãã€ã³ã ããã»ã¹ãžã®åœ±é¿ (ããã§ã®ãã¹ãŠã¯èªã¿åãæäœãšåæ§ã§ã):
- æžã蟌ãŸãããã¡ã€ã« ã·ã¹ãã ãããã¯ã®æ°ãæžå°ããããããã©ã¹ (ãã£ã¹ã¯ IO)ã
- ã¹ããŒã¹ ãã¡ã€ã«ãæäœããããããã€ãã¹ (CPUããããããã£ã¹ã¯ IO)ã
- ããŒãžå§çž®ãå¿ èŠãªããããã€ãã¹ (CPU)ã
倩秀ã®ã©ã¡ãåŽã«åŸãã§ããããïŒ ããã¯ãã¹ãŠç°å¢ã«å€§ããäŸåããŸããããã£ã¹ã¯ ããŒãžã®å§çž®ã¯ã»ãšãã©ã®ã·ã¹ãã ã§ããã©ãŒãã³ã¹ã®äœäžã«ã€ãªããå¯èœæ§ãé«ããšç§ã¯èããŠããŸãã ããã«ãã¹ããŒã¹ ãã¡ã€ã«ã«å¯ŸããŠåæ§ã®ã¢ãããŒãã䜿çšããä»ã® DBMS ã§ã®ãã¹ãã§ã¯ãå§çž®ãæå¹ã«ãããšããã©ãŒãã³ã¹ãäœäžããããšã瀺ãããŠããŸãã
æå¹åããã³èšå®ããæ¹æ³
åè¿°ããããã«ããã£ã¹ã¯ ããŒãžå§çž®ããµããŒããã Apache Ignite ã®æå°ããŒãžã§ã³ã¯ 2.8 ã§ãããLinux ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã¿ããµããŒããããŠããŸãã 次ã®ããã«æå¹ã«ããŠèšå®ããŸãã
- ã¯ã©ã¹ãã¹ã« ignite-compression ã¢ãžã¥ãŒã«ãååšããå¿ èŠããããŸãã ããã©ã«ãã§ã¯ãApache Ignite ãã£ã¹ããªãã¥ãŒã·ã§ã³ã® libs/optional ãã£ã¬ã¯ããªã«ãããã¯ã©ã¹ãã¹ã«ã¯å«ãŸããŸããã ãã£ã¬ã¯ããªã XNUMX ã€äžã®ã¬ãã«ã® libs ã«ç§»åããã ãã§ãignite.sh ãéããŠå®è¡ãããšèªåçã«æå¹ã«ãªããŸãã
- æ°žç¶æ§ãæå¹ã«ããå¿
èŠããããŸã (æå¹ã«ãã
DataRegionConfiguration.setPersistenceEnabled(true))
. - ããŒãž ãµã€ãºã¯ããã¡ã€ã« ã·ã¹ãã ã®ããã㯠ãµã€ãºãã倧ãããªããã°ãªããŸãã (次ã䜿çšããŠèšå®ã§ããŸã)
DataStorageConfiguration.setPageSize()
). - ããŒã¿ãå§çž®ããå¿
èŠããããã£ãã·ã¥ããšã«ãå§çž®æ¹æ³ãš (ãªãã·ã§ã³ã§) å§çž®ã¬ãã« (ã¡ãœãã) ãæ§æããå¿
èŠããããŸãã
CacheConfiguration.setDiskPageCompression() , CacheConfiguration.setDiskPageCompressionLevel()
).
WALã®å§çž®
ããã¯ã©ãåããã®ã§ãã
WAL ãšã¯äœã§ãã? ãªãå¿ èŠã§ãã? éåžžã«ç°¡åã«èª¬æãããšãããã¯ãããŒãž ã¹ãã¬ãŒãžãæçµçã«å€æŽãããã¹ãŠã®ã€ãã³ããå«ããã°ã§ãã ããã¯äž»ã«ã転åããå Žåã«å埩ã§ããããã«ããããã«å¿ èŠã§ãã ãã¹ãŠã®æäœã¯ããŠãŒã¶ãŒã«å¶åŸ¡ãäžããåã«ããŸã WAL ã«ã€ãã³ããèšé²ããå¿ èŠããããŸããããã«ããã倱æããå Žåã«ãã°ã§åçãããŠãŒã¶ãŒãæåããå¿çãåãåã£ããã¹ãŠã®æäœã埩å ã§ããŸãããã£ã¹ã¯äžã®ããŒãž ã¹ãã¬ãŒãžã«åæ ããæéããããŸããã§ãã (ããŒãž ã¹ãã¢ãžã®å®éã®æžã蟌ã¿ã¯ãå¥ã®ã¹ã¬ããã«ããå€å°ã®é 延ã䌎ãããã§ãã¯ãã€ã³ãããšåŒã°ããããã»ã¹ã§è¡ãããããšã¯ãã§ã«èª¬æããŸãã)ã
WAL ã®ãšã³ããªã¯ãè«çãšã³ããªãšç©çãšã³ããªã«åããããŸãã ããŒã«å€ã¯ããŒãšå€ãã®ãã®ã§ãã ç©ç - ããŒãž ã¹ãã¢å
ã®ããŒãžãžã®å€æŽãåæ ããŸãã è«çã¬ã³ãŒãã¯ä»ã®å Žåã«ã圹ç«ã¡ãŸãããç©çã¬ã³ãŒãã¯ã¯ã©ãã·ã¥æã®å埩ã«ã®ã¿å¿
èŠã§ãããã¬ã³ãŒãã¯æåŸã«æåãããã§ãã¯ãã€ã³ã以éã«ã®ã¿å¿
èŠã§ãã ããã§ã¯ããªããã®ããã«æ©èœããã®ãã«ã€ããŠã¯è©³ãã説æããŸããããèå³ãããæ¹ã¯ãApache Ignite Wiki ã§æ¢ã«èšåãããŠããèšäºãåç
§ããŠãã ããã
å€ãã®å Žåãè«çã¬ã³ãŒãããšã«è€æ°ã®ç©çã¬ã³ãŒããååšããŸãã ã€ãŸããããšãã°ããã£ãã·ã¥ãžã® 90 ã€ã® put æäœã¯ãããŒãž ã¡ã¢ãªå ã®è€æ°ã®ããŒãž (ããŒã¿èªäœãå«ãããŒãžãã€ã³ããã¯ã¹ãå«ãããŒãžãããªãŒ ãªã¹ããå«ãããŒãž) ã«åœ±é¿ããŸãã ããã€ãã®åæãã¹ãã§ã¯ãç©çã¬ã³ãŒãã WAL ãã¡ã€ã«ã®æ倧 3% ãå ããŠããããšãããããŸããã ãã ããããããå¿ èŠãšãªãã®ã¯éåžžã«çãæéã§ã (ããã©ã«ãã§ã¯ããã§ãã¯ãã€ã³ãéã®éé㯠XNUMX åã§ã)ã é¢é£æ§ã倱ã£ãåŸããã®ããŒã¿ãåé€ããã®ãè«ççã§ãã ããã¯ãŸãã« WAL å§çž®ã¡ã«ããºã ã®æ©èœã§ããç©çã¬ã³ãŒããåé€ããæ®ãã®è«çã¬ã³ãŒãã zip ã䜿çšããŠå§çž®ãããã¡ã€ã« ãµã€ãºãå€§å¹ ã« (å Žåã«ãã£ãŠã¯æ°ååã® XNUMX) åæžããŸãã
ç©ççã«ãWAL ã¯åºå®ãµã€ãº (ããã©ã«ãã§ã¯ 10MB) ã®ããã€ãã®ã»ã°ã¡ã³ã (ããã©ã«ãã§ã¯ 64) ã§æ§æãããŠããããããã®ã»ã°ã¡ã³ãã¯åŸªç°çã«äžæžããããŸãã çŸåšã®ã»ã°ã¡ã³ãããã£ã±ãã«ãªããšããã«ã次ã®ã»ã°ã¡ã³ããçŸåšã®ã»ã°ã¡ã³ããšããŠå²ãåœãŠããããã£ã±ãã«ãªã£ãã»ã°ã¡ã³ãã¯å¥ã®ã¹ã¬ããã«ãã£ãŠã¢ãŒã«ã€ãã«ã³ããŒãããŸãã WAL å§çž®ã¯ãã§ã«ã¢ãŒã«ã€ã ã»ã°ã¡ã³ãã§æ©èœããŸãã ãŸããå¥åã®ã¹ã¬ãããšããŠããã§ãã¯ãã€ã³ãã®å®è¡ãç£èŠããç©çã¬ã³ãŒããäžèŠã«ãªã£ãã¢ãŒã«ã€ã ã»ã°ã¡ã³ãã®å§çž®ãéå§ããŸãã
ããã©ãŒãã³ã¹ãžã®åœ±é¿
WAL å§çž®ã¯å¥ã®ã¹ã¬ãããšããŠå®è¡ããããããå®è¡ãããæäœã«çŽæ¥çãªåœ±é¿ã¯ãããŸããã ãã ããããã§ã CPU (å§çž®) ãšãã£ã¹ã¯ (ã¢ãŒã«ã€ãããå WAL ã»ã°ã¡ã³ããèªã¿åããå§çž®ã»ã°ã¡ã³ããæžã蟌ã) ã«è¿œå ã®ããã¯ã°ã©ãŠã³ãè² è·ãããããããã·ã¹ãã ãæ倧容éã§å®è¡ãããŠããå Žåãããã©ãŒãã³ã¹ã®äœäžã«ãã€ãªãããŸãã
æå¹åããã³èšå®ããæ¹æ³
ããããã£ã䜿çšã㊠WAL å§çž®ãæå¹ã«ã§ããŸãã WalCompactionEnabled
в DataStorageConfiguration (DataStorageConfiguration.setWalCompactionEnabled(true)
ïŒã ãŸããããã©ã«ãå€ (BEST_SPEED) ã«æºè¶³ã§ããªãå Žåã¯ãDataStorageConfiguration.setWalCompactionLevel() ã¡ãœããã䜿çšããŠå§çž®ã¬ãã«ãèšå®ã§ããŸãã
WAL ããŒãžã®ã¹ãããã·ã§ããå§çž®
ããã¯ã©ãåããã®ã§ãã
WAL ã§ã¯ã¬ã³ãŒããè«çã¬ã³ãŒããšç©çã¬ã³ãŒãã«åãããŠããããšããã§ã«ããããŸããã åããŒãžã«å€æŽãå ãããããã³ã«ãç©ç WAL ã¬ã³ãŒããããŒãž ã¡ã¢ãªå ã«çæãããŸãã ç©çã¬ã³ãŒãããããŒãž ã¹ãããã·ã§ãã ã¬ã³ãŒããšãã«ã¿ ã¬ã³ãŒãã® 2 ã€ã®ãµãã¿ã€ãã«åé¡ãããŸãã ããŒãžäžã®äœããå€æŽããã¯ãªãŒã³ãªç¶æ ããããŒãã£ãªç¶æ ã«ç§»è¡ãããã³ã«ããã®ããŒãžã®å®å šãªã³ããŒã WAL (ããŒãž ã¹ãããã·ã§ãã ã¬ã³ãŒã) ã«ä¿åãããŸãã WAL 㧠90 ãã€ãã ãå€æŽããå Žåã§ããã¬ã³ãŒãã¯ããŒãž ãµã€ãºãããããã«å€§ãããªããŸãã ãã§ã«ããŒãã£ãªããŒãžã§äœããå€æŽãããšãWAL å ã«ãã«ã¿ ã¬ã³ãŒãã圢æãããŸããããã¯ãããŒãžå šäœã§ã¯ãªããããŒãžã®åã®ç¶æ ãšæ¯èŒããå€æŽã®ã¿ãåæ ããŸãã ããŒãžã®ç¶æ ãããŒãã£ããã¯ãªãŒã³ã«ãªã»ããããããšã¯ãã§ãã¯ãã€ã³ã ããã»ã¹äžã«å®è¡ãããããããã§ãã¯ãã€ã³ãã®éå§çŽåŸãã»ãšãã©ãã¹ãŠã®ç©çã¬ã³ãŒãã¯ããŒãžã®ã¹ãããã·ã§ããã®ã¿ã§æ§æãããŸã (ãã§ãã¯ãã€ã³ãã®éå§çŽåŸã¯ãã¹ãŠã®ããŒãžãã¯ãªãŒã³ã§ãããã)ããã®åŸã次ã®ãã§ãã¯ãã€ã³ãã«è¿ã¥ããšããã«ã¿ ã¬ã³ãŒãã®éšåãå¢å ãå§ãã次ã®ãã§ãã¯ãã€ã³ãã®éå§æã«åã³ãªã»ãããããŸãã ããã€ãã®åæãã¹ãã®æž¬å®ã§ã¯ãç©çã¬ã³ãŒãã®ç·éã«å ããããŒãž ã¹ãããã·ã§ããã®å²åã XNUMX% ã«éããããšã瀺ãããŸããã
WAL ããŒãž ã¹ãããã·ã§ããå§çž®ã®èãæ¹ã¯ãæ¢è£œã®ããŒãžå§çž®ããŒã«ã䜿çšããŠããŒãž ã¹ãããã·ã§ãããå§çž®ããããšã§ã (ãã£ã¹ã¯ ããŒãžå§çž®ãåç §)ã åæã«ãWAL ã§ã¯ãã¬ã³ãŒãã¯è¿œå å°çšã¢ãŒãã§é 次ä¿åããããã¡ã€ã« ã·ã¹ãã ãããã¯ã®å¢çã«ã¬ã³ãŒãããã€ã³ãããå¿ èŠããªããããããã§ã¯ãã£ã¹ã¯ ããŒãžå§çž®ã¡ã«ããºã ãšã¯ç°ãªããã¹ããŒã¹ ãã¡ã€ã«ã¯å¿ èŠãããŸããããããã£ãŠããã®ã¡ã«ããºã 㯠OS Linux ã ãã§åäœããããã§ã¯ãããŸããã ããã«ãããŒãžãã©ãã ãå§çž®ã§ãããã¯ãã¯ãéèŠã§ã¯ãããŸããã 1 ãã€ãã解æŸãããšããŠããããã¯ãã§ã«è¯å®çãªçµæã§ããããã£ã¹ã¯ ããŒãžå§çž®ãšã¯ç°ãªããå§çž®ããŒã¿ã WAL ã«ä¿åã§ããŸãããã£ã¹ã¯ ããŒãžå§çž®ã§ã¯ãè€æ°ã®ãã¡ã€ã« ã·ã¹ãã ãããã¯ã解æŸããå Žåã«ã®ã¿å§çž®ããŒãžãä¿åãããŸãã
ããŒãžã¯å§çž®çã®é«ãããŒã¿ã§ãããWAL ã®ç·ããªã¥ãŒã ã«å ããå²åãéåžžã«é«ããããWAL ãã¡ã€ã«åœ¢åŒãå€æŽããã«ãµã€ãºãå€§å¹ ã«åæžã§ããŸãã è«çã¬ã³ãŒããå«ãå§çž®ã«ã¯ãããšãã°ãè«çã¬ã³ãŒãã«é¢å¿ãããå¯èœæ§ã®ããå€éšæ¶è²»è ã«ãšã£ãŠã圢åŒã®å€æŽãšäºææ§ã®åªå€±ãå¿ èŠã«ãªããŸããããã¡ã€ã« ãµã€ãºã®å€§å¹ ãªåæžã«ã¯ã€ãªãããŸããã
ãã£ã¹ã¯ ããŒãžå§çž®ãšåæ§ãWAL ããŒãž ã¹ãããã·ã§ããå§çž®ã§ã¯ãZSTDãLZ4ãSnappy å§çž®ã¢ã«ãŽãªãºã ã«å ããSKIP_GARBAGE ã¢ãŒãã䜿çšã§ããŸãã
ããã©ãŒãã³ã¹ãžã®åœ±é¿
WAL ããŒãž ã¹ãããã·ã§ããå§çž®ãçŽæ¥æå¹ã«ãããšãããŒã¿ãããŒãž ã¡ã¢ãªã«æžã蟌ãã¹ã¬ãããã€ãŸããã£ãã·ã¥å ã®ããŒã¿ãå€æŽããã¹ã¬ããã«ã®ã¿åœ±é¿ããããšã«æ°ã¥ãã®ã¯é£ãããããŸããã WAL ããã®ç©çã¬ã³ãŒãã®èªã¿åãã¯ãããŒããèœäžåŸã«ç«ã¡äžãã£ãç¬éã« XNUMX åã ãè¡ãããŸã (ãã§ãã¯ãã€ã³ãäžã«èœäžããå Žåã®ã¿)ã
ããã¯ãããŒã¿ãå€æŽããã¹ã¬ããã«æ¬¡ã®ãããªåœ±é¿ãäžããŸãããã£ã¹ã¯ã«æžã蟌ãåã«æ¯åããŒãžãå§çž®ããå¿ èŠããããããã€ãã¹ã®å¹æ (CPU) ãåŸãããããŒã¿éã®æžå°ã«ãããã©ã¹ã®å¹æ (ãã£ã¹ã¯ IO) ãåŸãããŸããããŒã¿ãæžã蟌ãŸããŸããã ãããã£ãŠãããã§ã¯ãã¹ãŠãåçŽã§ããã·ã¹ãã ããã©ãŒãã³ã¹ã CPU ã«ãã£ãŠå¶éãããŠããå Žåã¯ãããã«äœäžããŸããããã£ã¹ã¯ I/O ã«ãã£ãŠå¶éãããŠããå Žåã¯å¢å ããŸãã
éæ¥çã«ãWAL ãµã€ãºã®çž®å°ã¯ãWAL ã»ã°ã¡ã³ããã¢ãŒã«ã€ãããã³ WAL å§çž®ã¹ããªãŒã ã«ãã³ãããã¹ããªãŒã ã«ã (ãã©ã¹ã®) 圱é¿ãäžããŸãã
åæããŒã¿ã䜿çšããç°å¢ã§ã®å®éã®ããã©ãŒãã³ã¹ ãã¹ãã§ã¯ãããããªå¢å ã瀺ãããŸãã (ã¹ã«ãŒããã㯠10% ïœ 15% å¢å ããã¬ã€ãã³ã·ã¯ 10% ïœ 15% æžå°ããŸãã)ã
æå¹åããã³èšå®ããæ¹æ³
Apache Ignite ã®æå°ããŒãžã§ã³: 2.8ã 次ã®ããã«æå¹ã«ããŠèšå®ããŸãã
- ã¯ã©ã¹ãã¹ã« ignite-compression ã¢ãžã¥ãŒã«ãååšããå¿ èŠããããŸãã ããã©ã«ãã§ã¯ãApache Ignite ãã£ã¹ããªãã¥ãŒã·ã§ã³ã® libs/optional ãã£ã¬ã¯ããªã«ãããã¯ã©ã¹ãã¹ã«ã¯å«ãŸããŸããã ãã£ã¬ã¯ããªã XNUMX ã€äžã®ã¬ãã«ã® libs ã«ç§»åããã ãã§ãignite.sh ãéããŠå®è¡ãããšèªåçã«æå¹ã«ãªããŸãã
- æ°žç¶æ§ãæå¹ã«ããå¿
èŠããããŸã (æå¹ã«ãã
DataRegionConfiguration.setPersistenceEnabled(true)
). - å§çž®ã¢ãŒãã¯æ¬¡ã®ã¡ãœããã䜿çšããŠèšå®ããå¿
èŠããããŸãã
DataStorageConfiguration.setWalPageCompression()
ãå§çž®ã¯ããã©ã«ãã§ç¡å¹ã«ãªã£ãŠããŸã (DISABLED ã¢ãŒã)ã - ãªãã·ã§ã³ã§ã次ã®ã¡ãœããã䜿çšããŠå§çž®ã¬ãã«ãèšå®ã§ããŸãã
DataStorageConfiguration.setWalPageCompression()
ãåã¢ãŒãã®æå¹ãªå€ã«ã€ããŠã¯ãã¡ãœããã® Javadoc ãåç §ããŠãã ããã
ãŸãšã
Apache Ignite ã§æ€èšãããŠããããŒã¿å§çž®ã¡ã«ããºã ã¯ãããããç¬ç«ããŠäœ¿çšã§ããŸãããããããä»»æã«çµã¿åãããŠäœ¿çšââããããšãã§ããŸãã ããããã©ã®ããã«æ©èœããããç解ããããšã§ãããããç°å¢å
ã®ã¿ã¹ã¯ã«ã©ãã ãé©ããŠãããããŸããããã䜿çšããéã«äœãç ç²ã«ããå¿
èŠãããããå€æã§ããããã«ãªããŸãã ãã£ã¹ã¯ ããŒãžå§çž®ã¯ã¡ã€ã³ ã¹ãã¬ãŒãžãå§çž®ããããã«èšèšãããŠãããäžçšåºŠã®å§çž®çãåŸãããŸãã WAL ããŒãž ã¹ãããã·ã§ããå§çž®ã¯ãWAL ãã¡ã€ã«ã«å¹³åçãªå§çž®çããããããããã©ãŒãã³ã¹ãåäžããå¯èœæ§ããããŸãã WAL å§çž®ã¯ããã©ãŒãã³ã¹ã«è¯ã圱é¿ãäžããŸããããç©çã¬ã³ãŒããåé€ããããšã§ WAL ãã¡ã€ã«ã®ãµã€ãºãå¯èœãªéãåæžããŸãã
åºæïŒ habr.com