TiDBã¢ãã¿ãªã³ã°ã¡ããªã¯ã¹
TiUPã䜿çšããŠTiDBã¯ã©ã¹ã¿ããããã€ããå Žåãç£èŠã·ã¹ãã ïŒPrometheusïŒGrafanaïŒãåæã«ãããã€ãããŸããç£èŠã¢ãŒããã¯ãã£ã«ã€ããŠã¯ã TiDBã¢ãã¿ãªã³ã°ãã¬ãŒã ã¯ãŒã¯ã®æŠèŠãåç §ããŠãã ããã
Grafanaããã·ã¥ããŒãã¯ãæŠèŠãPDãTiDBãTiKVãNode_exporterããã£ã¹ã¯ããã©ãŒãã³ã¹ãªã©ãå«ãäžé£ã®ãµãããã·ã¥ããŒãã«åå²ãããŠããŸãã TiDBããã·ã¥ããŒãã¯ãTiDBããã«ãšTiDBèŠçŽããã«ã§æ§æãããŠããŸãã 2ã€ã®ããã«ã®éãã¯ã次ã®ç¹ã§ç°ãªããŸãã
- TiDBããã«ïŒã¯ã©ã¹ã¿ã®ç°åžžããã©ãã«ã·ã¥ãŒãã£ã³ã°ããããã®å¯èœãªéãå æ¬çãªæ å ±ãæäŸããŸãã
- TiDBèŠçŽããã«ïŒãŠãŒã¶ãŒãæãæžå¿µããŠããTiDBããã«æ å ±ã®äžéšããããã€ãã®å€æŽãå ããŠæœåºããŸããããã¯ããŠãŒã¶ãŒãæ¥åžžã®ããŒã¿ããŒã¹æäœã§æ°ã«ããããŒã¿ïŒQPSãTPSãå¿çé å»¶ãªã©ïŒãæäŸããŸããããã¯ã衚瀺ãŸãã¯å ±åãããç£èŠæ å ±ãšããŠæ©èœããŸãã
ãã®ããã¥ã¡ã³ãã§ã¯ãTiDBããã·ã¥ããŒãã«è¡šç€ºãããããã€ãã®äž»èŠãªç£èŠã¡ããªãã¯ã«ã€ããŠèª¬æããŸãã
äž»ãªææšã®èª¬æ
TiDBããã·ã¥ããŒãã«è¡šç€ºãããäž»èŠãªã¡ããªãã¯ãçè§£ããã«ã¯ã次ã®ãªã¹ãã確èªããŠãã ããã
ã¯ãšãªã®æŠèŠ
- æéïŒå®è¡æé
- ã¯ã©ã€ã¢ã³ãã®ãããã¯ãŒã¯èŠæ±ãTiDBã«éä¿¡ãããŠãããTiDBãèŠæ±ãå®è¡ããåŸã«èŠæ±ãã¯ã©ã€ã¢ã³ãã«è¿ããããŸã§ã®æéãäžè¬ã«ãã¯ã©ã€ã¢ã³ãèŠæ±ã¯SQLã¹ããŒãã¡ã³ãã®åœ¢åŒã§éä¿¡ãã
COM_SLEEP
ããCOM_PING
ãªã©ã®ã³ãã³ãã®å®è¡æéãå«ããããšãã§ãCOM_STMT_FETCH
COM_SEND_LONG_DATA
- TiDBã¯ãã«ãã¯ãšãªããµããŒãããŠããããã
select 1; select 1; select 1;
ãªã©ã®è€æ°ã®SQLã¹ããŒãã¡ã³ãã®éä¿¡ãäžåºŠã«ãµããŒãããŸãããã®å Žåããã®ã¯ãšãªã®åèšå®è¡æéã«ã¯ããã¹ãŠã®SQLã¹ããŒãã¡ã³ãã®å®è¡æéãå«ãŸããŸãã
- ã¯ã©ã€ã¢ã³ãã®ãããã¯ãŒã¯èŠæ±ãTiDBã«éä¿¡ãããŠãããTiDBãèŠæ±ãå®è¡ããåŸã«èŠæ±ãã¯ã©ã€ã¢ã³ãã«è¿ããããŸã§ã®æéãäžè¬ã«ãã¯ã©ã€ã¢ã³ãèŠæ±ã¯SQLã¹ããŒãã¡ã³ãã®åœ¢åŒã§éä¿¡ãã
- 1ç§ãããã®ã³ãã³ãïŒ1ç§ãããã«TiDBã«ãã£ãŠåŠçãããã³ãã³ãã®æ°ãã³ãã³ãå®è¡çµæã®æåãŸãã¯å€±æã«å¿ããŠåé¡ãããŸãã
- QPSïŒãã¹ãŠã®TiDBã€ã³ã¹ã¿ã³ã¹ã§
SELECT
ç§ãããã«å®è¡ãããSQLã¹ããŒãã¡ã³ãã®æ°INSERT
ãããã³ãã®ä»ã®ã¿ã€ãã®ã¹ããŒãã¡ã³ãã«åŸã£ãŠã«ãŠã³ãããUPDATE
ã - ã€ã³ã¹ã¿ã³ã¹å¥ã®CPSïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã®ã³ãã³ãçµ±èšãã³ãã³ãå®è¡çµæã®æåãŸãã¯å€±æã«å¿ããŠåé¡ãããŸãã
- 倱æããã¯ãšãªOPMïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã§1åãããã®SQLã¹ããŒãã¡ã³ãã®å®è¡æã«çºçãããšã©ãŒã«å¿ãããšã©ãŒã¿ã€ãïŒæ§æãšã©ãŒãäž»ããŒã®ç«¶åãªã©ïŒã®çµ±èšããšã©ãŒãçºçããã¢ãžã¥ãŒã«ãšãšã©ãŒã³ãŒããå«ãŸããŠããŸã
- äœéã¯ãšãªïŒäœéã¯ãšãªã®åŠçæéã®çµ±èšïŒäœéã¯ãšãªå šäœã®æéã³ã¹ããã³ããã»ããµãŒã®æéã³ã¹ããããã³ã³ããã»ããµãŒã¹ã±ãžã¥ãŒãªã³ã°ã®åŸ æ©æéïŒãé ãã¯ãšãªã¯ãå éšSQLã¹ããŒãã¡ã³ããšäžè¬SQLã¹ããŒãã¡ã³ãã«åé¡ãããŸã
- æ¥ç¶ã¢ã€ãã«æéïŒã¢ã€ãã«æ¥ç¶ã®æé
- 999/99/95/80æéïŒããŸããŸãªã¿ã€ãã®SQLã¹ããŒãã¡ã³ãïŒããŸããŸãªããŒã»ã³ã¿ã€ã«ïŒã®å®è¡æéã®çµ±èš
- æéïŒå®è¡æé
ã¯ãšãªã®è©³çް
- æé80/95/99/999ã€ã³ã¹ã¿ã³ã¹å¥ïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã§ã®SQLã¹ããŒãã¡ã³ãã®å®è¡æéã®çµ±èšïŒç°ãªãããŒã»ã³ã¿ã€ã«ïŒ
- 倱æããã¯ãšãªOPMã®è©³çްïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã§1åãããã®SQLã¹ããŒãã¡ã³ãã®å®è¡æã«çºçãããšã©ãŒã«å¿ãããšã©ãŒã¿ã€ãïŒæ§æãšã©ãŒãäž»ããŒã®ç«¶åãªã©ïŒã®çµ±èš
- å éšSQLOPSïŒTiDBã¯ã©ã¹ã¿å šäœã§1ç§ãããã«å®è¡ãããå éšSQLã¹ããŒãã¡ã³ããå éšSQLã¹ããŒãã¡ã³ãã¯å éšã§å®è¡ãããéåžžããŠãŒã¶ãŒSQLã¹ããŒãã¡ã³ããŸãã¯å éšã§ã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ã«ãã£ãŠããªã¬ãŒãããŸãã
ãµãŒã
- 皌åæéïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã®å®è¡æé
- ã¡ã¢ãªäœ¿çšéïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã®ã¡ã¢ãªäœ¿çšéçµ±èšãããã¯ãããã»ã¹ã«ãã£ãŠå æãããŠããã¡ã¢ãªãšãããŒãäžã§Golangã«ãã£ãŠé©çšãããŠããã¡ã¢ãªã«åå²ãããŸãã
- CPU䜿çšçïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã®CPU䜿çšçã®çµ±èš
- æ¥ç¶æ°ïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ãããŠããã¯ã©ã€ã¢ã³ãã®æ°
- Open FD CountïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã®éããããã¡ã€ã«èšè¿°åã®çµ±èš
- åææ°ïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã«åæãããã¯ã©ã€ã¢ã³ãã®æ°
- ã€ãã³ãOPMïŒãéå§ãããéãããããã°ã¬ãŒã¹ãã«ã·ã£ããããŠã³ããããã«ããããã³ã°ããªã©ã®äž»èŠãªã€ãã³ãã®çµ±èš
- Goroutine CountïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã®Goroutineã®æ°
- ã¹ããŒãã¡ã³ãæ°ã®æºåïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã§å®è¡ããã
Prepare
ã®ã¹ããŒãã¡ã³ãã®æ°ãšãããã®ç·æ° - Keep Alive OPMïŒåTiDBã€ã³ã¹ã¿ã³ã¹ã§1åããšã«ã¡ããªãã¯ãæŽæ°ãããåæ°ãéåžžãæ³šæãæãå¿ èŠã¯ãããŸããã
- ãããã¯ããã³é倧ãªãšã©ãŒïŒTiDBã§çºçãããããã¯ããã³é倧ãªãšã©ãŒã®æ°
- Time Jump Back OPSïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãåTiDBã€ã³ã¹ã¿ã³ã¹ã§1ç§ããšã«å·»ãæ»ãåæ°
- ããŒã¯ã³æéã®ååŸïŒåæ¥ç¶ã§ããŒã¯ã³ãååŸããããã®æéã³ã¹ã
- ãã³ãã°ã«ãŠã³ããã¹ãããïŒTiDBã§ã®ãã³ãã°æžã蟌ã¿ã®å€±æã®æ°
- ã¯ã©ã€ã¢ã³ãããŒã¿ãã©ãã£ãã¯ïŒTiDBãšã¯ã©ã€ã¢ã³ãã®ããŒã¿ãã©ãã£ãã¯çµ±èš
ååŒ
- ãã©ã³ã¶ã¯ã·ã§ã³OPSïŒ1ç§ãããã«å®è¡ããããã©ã³ã¶ã¯ã·ã§ã³ã®æ°
- æéïŒãã©ã³ã¶ã¯ã·ã§ã³ã®å®è¡æé
- ãã©ã³ã¶ã¯ã·ã§ã³ã¹ããŒãã¡ã³ãæ°ïŒãã©ã³ã¶ã¯ã·ã§ã³å ã®SQLã¹ããŒãã¡ã³ãã®æ°
- Transaction Retry NumïŒãã©ã³ã¶ã¯ã·ã§ã³ãå詊è¡ããåæ°
- ã»ãã·ã§ã³å詊è¡ãšã©ãŒOPSïŒ1ç§ãããã®ãã©ã³ã¶ã¯ã·ã§ã³å詊è¡äžã«çºçãããšã©ãŒã®æ°ããã®ã¡ããªãã¯ã«ã¯ã2ã€ã®ãšã©ãŒã¿ã€ããå«ãŸããŸããå詊è¡ã®å€±æãšæå€§å詊è¡åæ°ã®è¶ éã§ãã
- ã³ãããããŒã¯ã³åŸ
æ©æéïŒãã©ã³ã¶ã¯ã·ã§ã³ã®ã³ãããäžã®ãããŒå¶åŸ¡ãã¥ãŒã§ã®åŸ
æ©æéãåŸ
æ©æéãé·ãå Žåã¯ãã³ããããããã©ã³ã¶ã¯ã·ã§ã³ã倧ããããŠãããŒãå¶åŸ¡ãããŠããããšãæå³ããŸããã·ã¹ãã ã«ãŸã 䜿çšå¯èœãªãªãœãŒã¹ãããå Žåã¯ãTiDBæ§æãã¡ã€ã«ã®
committer-concurrency
ã®å€ãå¢ããããšã§ãã³ãããããã»ã¹ãé«éåã§ããŸãã - KVãã©ã³ã¶ã¯ã·ã§ã³OPSïŒåTiDBã€ã³ã¹ã¿ã³ã¹å
ã§1ç§ãããã«å®è¡ããããã©ã³ã¶ã¯ã·ã§ã³ã®æ°
- ãŠãŒã¶ãŒãã©ã³ã¶ã¯ã·ã§ã³ã¯ãå éšã¡ã¿ããŒã¿ã®èªã¿åãããŠãŒã¶ãŒãã©ã³ã¶ã¯ã·ã§ã³ã®ã¢ãããã¯å詊è¡ãªã©ãTiDBã§è€æ°ã®ãã©ã³ã¶ã¯ã·ã§ã³å®è¡ãããªã¬ãŒããå ŽåããããŸãã
- TiDBã®å éšã§ã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ãããã®ããã«ã«å«ãŸããŠãããã©ã³ã¶ã¯ã·ã§ã³ãä»ããŠããŒã¿ããŒã¹ã§åäœããŸã
- KVãã©ã³ã¶ã¯ã·ã§ã³æéïŒåTiDBå ã§ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããã«è²»ããããæé
- ãã©ã³ã¶ã¯ã·ã§ã³ãªãŒãžã§ã³æ°ïŒãã©ã³ã¶ã¯ã·ã§ã³ã§æäœããããªãŒãžã§ã³ã®æ°
- Transaction Write KV Num Rate and SumïŒKVãæžã蟌ãŸããã¬ãŒããšããã©ã³ã¶ã¯ã·ã§ã³ã§æžã蟌ãŸãããããã®KVã®åèš
- Transaction Write KV NumïŒãã©ã³ã¶ã¯ã·ã§ã³ã§æäœãããKVã®æ°
- ã¹ããŒãã¡ã³ãããã¯ããŒïŒ1ã€ã®ã¹ããŒãã¡ã³ãã®ããã¯ã®æ°
- ããŒãããŒãéä¿¡æéïŒãã©ã³ã¶ã¯ã·ã§ã³ãããŒãããŒããéä¿¡ããæé
- ãã©ã³ã¶ã¯ã·ã§ã³æžã蟌ã¿ãµã€ãºãã€ãã¬ãŒããšåèšïŒãã©ã³ã¶ã¯ã·ã§ã³ã§ãã€ããæžã蟌ãŸããã¬ãŒããšããããã®æžã蟌ãŸãããã€ãã®åèš
- ãã©ã³ã¶ã¯ã·ã§ã³æžã蟌ã¿ãµã€ãºãã€ãïŒãã©ã³ã¶ã¯ã·ã§ã³ã§æžã蟌ãŸããããŒã¿ã®ãµã€ãº
- æ²èгçããã¯ã®ååŸæéïŒããã¯ã®è¿œå ã«ãããæé
- TTLã©ã€ãã¿ã€ã ãªãŒãã«ãŠã³ã¿ãŒïŒTTLã®äžéã«éãããã©ã³ã¶ã¯ã·ã§ã³ã®æ°ã TTLäžéã®ããã©ã«ãå€ã¯1æéã§ããããã¯ãæ²èгçãã©ã³ã¶ã¯ã·ã§ã³ã®æåã®ããã¯ãŸãã¯æ¥œèгçãã©ã³ã¶ã¯ã·ã§ã³ã®æåã®äºåæžã蟌ã¿ãã1æéãçµéããããšãæå³ããŸãã TTLã®äžéã®ããã©ã«ãå€ã¯1æéã§ãã TTL寿åœã®äžéã¯ãTiDBæ§æãã¡ã€ã«ã®
max-txn-TTL
ã倿Žããããšã§å€æŽã§ããŸãã - Load Safepoint OPSïŒ
Safepoint
ãããŒããããåæ°ãSafepoint
ã¯ããã©ã³ã¶ã¯ã·ã§ã³ãããŒã¿ãèªã¿åããšãã«Safepoint
ããåã®ããŒã¿ãèªã¿åãããªãããã«ããããšã§ãããŒã¿ã®å®å šæ§ã確ä¿ããŸããSafepoint
ããåã®ããŒã¿ã¯GCã«ãã£ãŠã¯ãªãŒã³ã¢ãããããå¯èœæ§ããããŸã - ãã·ãã¹ãã£ãã¯ã¹ããŒãã¡ã³ãã®å詊è¡OPSïŒãã·ãã¹ãã£ãã¯ã¹ããŒãã¡ã³ãã®å詊è¡ã®åæ°ãã¹ããŒãã¡ã³ããããã¯ã远å ããããšãããšãæžã蟌ã¿ã®ç«¶åãçºçããå¯èœæ§ããããŸãããã®ãšããã¹ããŒãã¡ã³ãã¯æ°ããã¹ãããã·ã§ãããååŸããããã¯ãå床远å ããŸã
- 1ç§ãããã®ãã©ã³ã¶ã¯ã·ã§ã³ã¿ã€ãïŒæåãã©ã³ã¶ã¯ã·ã§ã³ãšå€±æãã©ã³ã¶ã¯ã·ã§ã³ã®äž¡æ¹ãå«ãã2ãã§ãŒãºã³ãããïŒ2PCïŒãéåæã³ããããããã³1ãã§ãŒãºã³ãããïŒ1PCïŒã¡ã«ããºã ã䜿çšããŠ1ç§ãããã«ã³ãããããããã©ã³ã¶ã¯ã·ã§ã³ã®æ°
ãšã°ãŒãã¥ãŒã¿
- è§£ææéïŒSQLã¹ããŒãã¡ã³ãã®è§£ææéã®çµ±èš
- ã³ã³ãã€ã«æéïŒè§£æãããSQLASTãå®è¡ãã©ã³ã«ã³ã³ãã€ã«ããæéã®çµ±èš
- å®è¡æéïŒSQLã¹ããŒãã¡ã³ãã®å®è¡æéã®çµ±èš
Hash Agg
Stream Agg
Sort
Index Look Up Join
Hash Join
ãªã©ãMerge Join
ç§ãããã«å€ãã®ã·ã¹ãã ãªãœãŒã¹ãæ¶è²»ããTopN
ã®çµ±èš- ãã©ã³ãã£ãã·ã¥OPSã䜿çšããã¯ãšãªïŒ1ç§ãããã®ãã©ã³ãã£ãã·ã¥ã䜿çšããã¯ãšãªã®çµ±èš
Distsql
- DistsqlæéïŒDistsqlã¹ããŒãã¡ã³ãã®åŠçæé
- Distsql QPSïŒDistsqlã¹ããŒãã¡ã³ãã®çµ±èš
- DistsqléšåQPSïŒæ¯ç§ã®éšåçµæã®æ°
- ã¹ãã£ã³ããŒæ°ïŒåã¯ãšãªãã¹ãã£ã³ããããŒã®æ°
- ã¹ãã£ã³ããŒã®éšåçªå·ïŒåéšåçµæãã¹ãã£ã³ããããŒã®æ°
- éšåçãªæ°å€ïŒåSQLã¹ããŒãã¡ã³ãã®éšåçãªçµæã®æ°
KVãšã©ãŒ
- KVããã¯ãªãæéïŒKVå詊è¡èŠæ±ãç¶ãåèšæéã TiKVã«ãªã¯ãšã¹ããéä¿¡ãããšãTiDBã§ãšã©ãŒãçºçããå ŽåããããŸãã TiDBã«ã¯ãTiKVãžã®ãã¹ãŠã®èŠæ±ã«å¯ŸããŠå詊è¡ã¡ã«ããºã ããããŸãããã®
KV Backoff Duration
ã®é ç®ã¯ãèŠæ±ã®å詊è¡ã®åèšæéãèšé²ããŸãã - TiClientãªãŒãžã§ã³ãšã©ãŒOPSïŒTiKVã«ãã£ãŠè¿ããããªãŒãžã§ã³é¢é£ã®ãšã©ãŒã¡ãã»ãŒãžã®æ°
- KVããã¯ãªãOPSïŒTiKVã«ãã£ãŠè¿ããããšã©ãŒã¡ãã»ãŒãžã®æ°
- Lock Resolve OPSïŒããã¯ã解決ããããã®TiDBæäœã®æ°ã TiDBã®èªã¿åããŸãã¯æžã蟌ã¿èŠæ±ãããã¯ã«ééãããšãããã¯ã解決ããããšããŸã
- ãã®ä»ã®ãšã©ãŒOPSïŒããã¯ã®ã¯ãªã¢ãæŽæ°ãå«ããã®ä»ã®ã¿ã€ãã®ãšã©ãŒã®æ°
SafePoint
- KVããã¯ãªãæéïŒKVå詊è¡èŠæ±ãç¶ãåèšæéã TiKVã«ãªã¯ãšã¹ããéä¿¡ãããšãTiDBã§ãšã©ãŒãçºçããå ŽåããããŸãã TiDBã«ã¯ãTiKVãžã®ãã¹ãŠã®èŠæ±ã«å¯ŸããŠå詊è¡ã¡ã«ããºã ããããŸãããã®
KVãªã¯ãšã¹ã
- KVãªã¯ãšã¹ãOPSïŒTiKVã«åŸã£ãŠè¡šç€ºãããKVãªã¯ãšã¹ãã®å®è¡æé
- ã¹ãã¢ããšã®KVãªã¯ãšã¹ãæé99ïŒTiKVã«åŸã£ãŠè¡šç€ºãããKVãªã¯ãšã¹ãã®å®è¡æé
- ã¿ã€ãå¥ã®KVãªã¯ãšã¹ãæé99ïŒãªã¯ãšã¹ãã¿ã€ãã«å¿ããŠè¡šç€ºãããKVãªã¯ãšã¹ãã®å®è¡æé
PDã¯ã©ã€ã¢ã³ã
- PDã¯ã©ã€ã¢ã³ãCMDOPSïŒ1ç§ãããã«PDã¯ã©ã€ã¢ã³ãã«ãã£ãŠå®è¡ãããã³ãã³ãã®çµ±èš
- PDã¯ã©ã€ã¢ã³ãã®CMDæéïŒPDã¯ã©ã€ã¢ã³ããã³ãã³ããå®è¡ããã®ã«ãããæé
- PDã¯ã©ã€ã¢ã³ãCMD倱æOPSïŒPDã¯ã©ã€ã¢ã³ãã«ãã£ãŠ1ç§ãããã«å®è¡ããã倱æããã³ãã³ãã®çµ±èš
- PD TSO OPSïŒTiDBã1ç§ãããPDããååŸããTSOã®æ°
- PD TSOåŸ æ©æéïŒTiDBãPDãTSOãè¿ãã®ãåŸ æ©ããæé
- PD TSO RPCæéïŒTiDBãïŒTSOãååŸããããã«ïŒPDã«èŠæ±ãéä¿¡ããŠããTiDBãTSOãåä¿¡ãããŸã§ã®æé
- TSOåŸ
æ©æéã®éå§ïŒTiDBãPDã«èŠæ±ãéä¿¡ããŠããïŒ
start TSO
ãååŸããããïŒãTiDBãstart TSO
ãåä¿¡ãããŸã§ã®æé
ã¹ããŒãã®ããŒã
- ã¹ããŒãã®ããŒãæéïŒTiDBãTiKVããã¹ããŒããååŸããã®ã«ãããæé
- Load Schema OPSïŒTiDBãTiKVãã1ç§ãããã«ååŸããã¹ããŒãã®çµ±èš
- ã¹ããŒããªãŒã¹ãšã©ãŒOPMïŒã¹ããŒããªãŒã¹ãšã©ãŒã«ã¯ã
change
ãšoutdate
ã®2ã€ã®ã¿ã€ãããããŸããchange
ã¯ã¹ããŒãã倿Žãããããšãæå³ããoutdate
ã¯ã¹ããŒããæŽæ°ã§ããªãããšãæå³ããŸããããã¯ããæ·±å»ãªãšã©ãŒã§ãããã¢ã©ãŒããããªã¬ãŒããŸãã - Load Privilege OPSïŒTiDBãTiKVãã1ç§ãããã«ååŸããç¹æš©æ å ±ã®æ°ã®çµ±èš
DDL
- DDLæé95ïŒDDLã¹ããŒãã¡ã³ãåŠçæéã®95ïŒ åäœ
- ã€ã³ããã¯ã¹ã®ãããè¿œå æé100ïŒã€ã³ããã¯ã¹ã®äœæã«åããããè²»ãããæå€§æéã®çµ±èš
- DDLåŸ æ©ãžã§ãæ°ïŒåŸ æ©ããŠããDDLã¿ã¹ã¯ã®æ°
- DDL META OPMïŒDDLã1åããšã«METAãååŸããåæ°
- DDLã¯ãŒã«ãŒæé99ïŒåDDLã¯ãŒã«ãŒã®å®è¡æéã®99ïŒ åäœæ°
- Syncerã®ãããã€æéïŒSchema Version Syncerã®åæåãåèµ·åãããã³æäœã®ã¯ãªã¢ã«ãããæé
- ææè ãã³ãã«ã·ã³ã¯ãæéïŒDDLææè ãã¹ããŒãããŒãžã§ã³ãæŽæ°ãååŸãããã³ç¢ºèªããã®ã«ãããæé
- èªå·±ããŒãžã§ã³ã®æŽæ°æéïŒSchemaVersionSyncerã®ããŒãžã§ã³æ å ±ãæŽæ°ããããã«ãããæé
- DDL OPMïŒ1ç§ãããã®DDLå®è¡æ°
- DDLã€ã³ããã¯ã¹ã®è¿œå ã®é²æçïŒããŒã»ã³ããŒãžïŒïŒã€ã³ããã¯ã¹ã®è¿œå ã®é²æç¶æ³
çµ±èš
- èªååææé95ïŒèªå
ANALYZE
ã§æ¶è²»ãããæé - èªååæQPSïŒèªå
ANALYZE
ã®çµ±èš - çµ±èšäžæ£ç¢ºçïŒçµ±èšäžæ£ç¢ºçã®æ å ±
- ç䌌æšå®OPSïŒç䌌統èšã䜿çšããŠæé©åãããSQLã¹ããŒãã¡ã³ãã®æ°
- ãã³ããã£ãŒãããã¯OPSïŒä¿åãããçµ±èšãã£ãŒãããã¯ã®æ°
- ã¯ãšãªãã£ãŒãããã¯ã®ä¿åQPSïŒTiDBã¡ã¢ãªã§å®è¡ããããŠããªã³ã¯ãšãªã®ãã£ãŒãããã¯æ å ±ãä¿åããããã®1ç§ãããã®æäœæ°
- éèŠãªãã£ãŒãããã¯ïŒçµ±èšæ å ±ãæŽæ°ããéèŠãªãã£ãŒãããã¯ã®æ°
- çµ±èšã®æŽæ°OPSïŒãã£ãŒãããã¯ã䜿çšããŠçµ±èšãæŽæ°ããæäœã®æ°
- Fast Analyze Status 100ïŒçµ±èšæ å ±ããã°ããåéããããã®ã¹ããŒã¿ã¹
- èªååææé95ïŒèªå
ãªãŒããŒ
- æ°ããETCDã»ãã·ã§ã³æé95ïŒæ°ããetcdã»ãã·ã§ã³ã®äœæã«ãããæéã TiDBã¯ãetcdã¯ã©ã€ã¢ã³ããä»ããŠPDã®etcdã«æ¥ç¶ããã¡ã¿ããŒã¿æ å ±ãä¿å/èªã¿åããŸããããã¯ãã»ãã·ã§ã³ã®äœæã«è²»ããããæéãèšé²ããŸã
- ãªãŒããŒãŠã©ããã£ãŒOPSïŒDDLãªãŒããŒãŠã©ããPDã®etcdã¡ã¿ããŒã¿ã®1ç§ãããã®Goroutineæäœã®æ°
ã¡ã¿
- AutoID QPSïŒ3ã€ã®æäœïŒã°ããŒãã«IDå²ãåœãŠãåäžããŒãã«AutoIDå²ãåœãŠãåäžããŒãã«AutoIDãªããŒã¹ïŒãå«ãAutoIDé¢é£ã®çµ±èš
- AutoIDæéïŒAutoIDé¢é£ã®æäœã«ãããæé
- ãªãŒãžã§ã³ãã£ãã·ã¥ãšã©ãŒOPSïŒTiDBã«ãã£ãã·ã¥ããããªãŒãžã§ã³æ å ±ã1ç§ãããã«çºçãããšã©ãŒã®æ°
- ã¡ã¿ãªãã¬ãŒã·ã§ã³æé99ïŒã¡ã¿ãªãã¬ãŒã·ã§ã³ã®ã¬ã€ãã³ã·ãŒ
GC
- ã¯ãŒã«ãŒã¢ã¯ã·ã§ã³OPM
delete\_range
run_job
resolve_lock
GCé¢é£ã®æäœã®æ° - æé99ïŒGCé¢é£ã®æäœã«è²»ããããæé
- æ§æïŒGCããŒã¿ã®å¯¿åœãšGCã®å®è¡ééã®æ§æ
- GC倱æOPMïŒå€±æããGCé¢é£æäœã®æ°
- ç¯å²ã®åé€ã®å€±æOPMïŒ
Delete Range
ã倱æããåæ° - Too Many Locks Error OPMïŒGCãããŸãã«ãå€ãã®ããã¯ãã¯ãªã¢ãããšã©ãŒã®æ°
- ã¢ã¯ã·ã§ã³çµæOPMïŒGCé¢é£ã®æäœã®çµæã®æ°
- ç¯å²ã¿ã¹ã¯ã¹ããŒã¿ã¹ã®åé€ïŒå®äºãšå€±æãå«ã
Delete Range
ã®ã¿ã¹ã¯ã¹ããŒã¿ã¹ - ããã·ã¥ã¿ã¹ã¯æé95ïŒGCãµãã¿ã¹ã¯ãGCã¯ãŒã«ãŒã«ããã·ã¥ããããã«è²»ããããæé
- ã¯ãŒã«ãŒã¢ã¯ã·ã§ã³OPM
ãããã¯ã©ã€ã¢ã³ã
- TiKVã«ããä¿çäžã®ãªã¯ãšã¹ãæ°ïŒåŠçãä¿çããŠãããããã¡ãã»ãŒãžã®æ°
- ãããã¯ã©ã€ã¢ã³ã䜿çšäžå¯æé95ïŒãããã¯ã©ã€ã¢ã³ãã®äœ¿çšäžå¯æé
- 䜿çšå¯èœãªæ¥ç¶ã«ãŠã³ã¿ãŒããããŸããïŒãããã¯ã©ã€ã¢ã³ãã䜿çšå¯èœãªãªã³ã¯ãèŠã€ããããªãã£ãåæ°