TiDB3.0GAãªãªãŒã¹ããŒã
çºå£²æ¥ïŒ2019幎6æ28æ¥
TiDBããŒãžã§ã³ïŒ3.0.0
TiDB AnsibleããŒãžã§ã³ïŒ3.0.0
æŠèŠ
2019幎6æ28æ¥ãTiDB3.0GAããªãªãŒã¹ãããŸããã察å¿ããTiDBAnsibleã®ããŒãžã§ã³ã¯3.0.0ã§ãã TiDB 2.1ãšæ¯èŒããŠããã®ãªãªãŒã¹ã§ã¯æ¬¡ã®ç¹ã§å€§å¹ ã«æ¹åãããŠããŸãã
- å®å®ã TiDB 3.0ã¯ãæå€§150以äžã®ããŒããš300以äžã®TBã®ã¹ãã¬ãŒãžãåããå€§èŠæš¡ã¯ã©ã¹ã¿ãŒã§é·æçãªå®å®æ§ãå®èšŒããŠããŸãã
- 䜿ããããã TiDB 3.0ã¯ãæšæºåãããäœéã¯ãšãªãã°ãååã«éçºããããã°ãã¡ã€ã«ä»æ§ããŠãŒã¶ãŒã®éçšã³ã¹ããç¯çŽãã
EXPLAIN ANALYZEãSQL Traceãªã©ã®æ°æ©èœãªã©ã䜿ãããããå€é¢çã«æ¹åããŠããŸãã - ããã©ãŒãã³ã¹ã TiDB 3.0ã®ããã©ãŒãã³ã¹ã¯ãTPC-Cãã³ãããŒã¯ã§ã¯TiDB 2.1ã®4.5åãSysbenchãã³ãããŒã¯ã§ã¯1.5å以äžã§ãããã¥ãŒã®ãµããŒãã®ãããã§ãTPC-H50GQ15ãæ£åžžã«å®è¡ã§ããããã«ãªããŸããã
- ãŠã£ã³ããŠé¢æ°ããã¥ãŒïŒ Experimental ïŒãããŒãã£ã·ã§ã³ããŒãã«ããã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ããã·ãã¹ãã£ãã¯ããã¯ïŒ Experimental ïŒã
SQL Plan Managementãªã©ã®æ°æ©èœã
TiDB
- æ°æ©èœ
- ãŠã£ã³ããŠé¢æ°ããµããŒãããŸãã
NTILERANKPERCENT_RANKLEADã®CUME_DISTã®NTH_VALUELAST_VALUEãšFIRST_VALUEDENSE_RANKãROW_NUMBERLAG - ãµããŒããã¥ãŒïŒå®éšçïŒ
- ããŒãã«ããŒãã£ã·ã§ã³ãæ¹åãã
- ç¯å²ããŒãã£ã·ã§ã³ã®ãµããŒã
- ããã·ã¥ããŒãã£ã·ã§ã³ããµããŒããã
- ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ã远å ããIPãã¯ã€ããªã¹ãïŒ Enterprise ïŒãç£æ»ãã°ïŒ Enterprise ïŒãªã©ã®ãã©ã°ã€ã³ããµããŒãããŸãã
- SQLãã©ã³ç®¡çæ©èœããµããŒãããŠSQLå®è¡ãã©ã³ãã€ã³ãã£ã³ã°ãäœæããã¯ãšãªã®å®å®æ§ã確ä¿ããŸãïŒå®éšçïŒ
- ãŠã£ã³ããŠé¢æ°ããµããŒãããŸãã
- SQLãªããã£ãã€ã¶ãŒ
NOT EXISTSã®ãµãã¯ãšãªãæé©åãããããAnti Semi Joinã«å€æããŠãããã©ãŒãã³ã¹ãåäžãããŸãOuter Joinã®å®æ°äŒæãæé©åããOuter Joinã®é€å»ã®æé©åã«ãŒã«ã远å ããŠã广ã®ãªãèšç®ãæžãããããã©ãŒãã³ã¹ãåäžãããŸããINã®ãµãã¯ãšãªãæé©åããŠãéèšåŸã«Inner Joinãå®è¡ããããã©ãŒãã³ã¹ãåäžãããŸã- ããå€ãã®ã·ããªãªã«é©å¿ããããã«
Index Joinãæé©åãã - RangePartitionã®PartitionPruningæé©åã«ãŒã«ãæ¹åããŸã
- å
šè¡šã¹ãã£ã³ãåé¿ããããã©ãŒãã³ã¹ãåäžãããããã«ãã¯ãšãªããžãã¯ã
_tidb_rowidã«æé©åããŸã - ããã©ãŒãã³ã¹ãåäžãããããã«ãã£ã«ã¿ãŒã«é¢é£ããåãããå Žåã¯ãè€åã€ã³ããã¯ã¹ã®ã¢ã¯ã»ã¹æ¡ä»¶ãæœåºãããšãã«ãã€ã³ããã¯ã¹ã®ããå€ãã®ãã¬ãã£ãã¯ã¹åãäžèŽãããŸã
- åéã®é åºçžé¢ã䜿çšããŠãã³ã¹ãèŠç©ããã®ç²ŸåºŠãåäžãããŸã
- æ¬²åŒµãæŠç¥ãšåçèšç»æ³ã¢ã«ãŽãªãºã ã«åºã¥ããŠ
Join Orderãæé©åããè€æ°ã®ããŒãã«ã®çµåæäœãé«éåããŸã - ã¯ãšãªã®å®å®æ§ãåäžãããããã«å®è¡ãã©ã³ãçµ±èšã«é床ã«äŸåããããšãé²ãããã®ããã€ãã®ã«ãŒã«ã䜿çšããŠãã¹ã«ã€ã©ã€ã³ãã«ãŒãã³ã°ããµããŒãããŸã
- NULLå€ãæã€åäžåã€ã³ããã¯ã¹ã®è¡æ°æšå®ã®ç²ŸåºŠãåäžãããŸã
- å
šè¡šã¹ãã£ã³ãåé¿ããçµ±èšåéã«ããããã©ãŒãã³ã¹ãåäžãããããã«ãåãªãŒãžã§ã³ã§ã©ã³ãã ã«ãµã³ããªã³ã°ãã
FAST ANALYZEããµããŒãããŸãã - çµ±èšåéã®ããã©ãŒãã³ã¹ãåäžãããããã«ãå調ã«å¢å ããã€ã³ããã¯ã¹åã§ã®å¢ååææäœããµããŒãããŸã
DOã¹ããŒãã¡ã³ãã§ã®ãµãã¯ãšãªã®äœ¿çšã®ãµããŒã- ãã©ã³ã¶ã¯ã·ã§ã³ã§
Index Joinã䜿çšããããšããµããŒã - ãã©ã¡ãŒã¿ãªãã®
executeã¹ããŒãã¡ã³ãããµããŒãããããã«prepareãæé©åãã stats-leaseã®å€æ°å€ã0ã®å Žåã«ãçµ±èšãèªåããŒãããããã«ã·ã¹ãã ã®åäœã倿ŽããŸã- å±¥æŽçµ±èšã®ãšã¯ã¹ããŒãããµããŒã
- ãã¹ãã°ã©ã ã®
dumpçžé¢ããµããŒããload
- SQLå®è¡ãšã³ãžã³
- ãã°åºåã®æé©åïŒ
EXECUTEã€ã¯ãŠãŒã¶ãŒå€æ°ãåºåããCOMMITã¯ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ããããã®äœéã¯ãšãªãã°ãåºåããŸã - SQLãã¥ãŒãã³ã°ã®äœ¿ãããããåäžããã
EXPLAIN ANALYZEã®é¢æ°ããµããŒããã - 次ã®è¡ã®IDãååŸããããã®
admin show next_row_idã³ãã³ãããµããŒãããŸã COALESCEã€ã®çµã¿èŸŒã¿é¢æ°ã远å ãJSON_ARRAY_APPENDJSON_MERGE_PRESERVEJSON_QUOTEãNAME_CONSTBENCHMARK- ãã£ã³ã¯ãµã€ãºã®å¶åŸ¡ããžãã¯ãæé©åããŠãã¯ãšãªã³ã³ããã¹ãã«åºã¥ããŠåçã«èª¿æŽããSQLã®å®è¡æéãšãªãœãŒã¹ã®æ¶è²»ãåæžããŸã
IndexReaderTableReaderããã³IndexLookupReaderïŒã§ã®ã¡ã¢ãªãŒäœ¿çšéã®è¿œè·¡ãšå¶åŸ¡ããµããŒãããŸã- 空ã®
ONæ¡ä»¶ããµããŒãããããã«ãããŒãžçµåæŒç®åãæé©åããŸã - åãå€ãããåäžã®ããŒãã«ã®æžã蟌ã¿ããã©ãŒãã³ã¹ãæé©åãã
- éé ã®ã¹ãã£ã³ããŒã¿ããµããŒãããããšã«ããã
admin show ddl jobsã®ããã©ãŒãã³ã¹ãåäžãããŸã - ãããã¹ãããã®åé¡ã軜æžããããã«ãããŒãã«Regionãæåã§åå²ãã
split table regionã®ã¹ããŒãã¡ã³ãã远å ããŸã - ãããã¹ãããã®åé¡ã軜æžããããã«ã€ã³ããã¯ã¹ãªãŒãžã§ã³ãæåã§åå²ãã
split index regionã®ã¹ããŒãã¡ã³ãã远å ããŸã - åŒãã³ããã»ããµãŒã«ããã·ã¥ããŠã³ããããšãçŠæ¢ãããããã¯ãªã¹ãã远å ããŸã
Expensive Queryã®ãã°ãæé©åããŠãæ§æãããå®è¡æéãŸãã¯ã¡ã¢ãªã®å¶éãè¶ ãããšãã«SQLã¯ãšãªããã°ã«åºåããŸã
- ãã°åºåã®æé©åïŒ
- DDL
- æåã»ãã
utf8ããutf8mb4ãžã®ç§»è¡ããµããŒã - ããã©ã«ãã®æåã»ããã
utf8ããutf8mb4ã«å€æŽããŸã alter schemaã¹ããŒãã¡ã³ãã远å ããŠãããŒã¿ããŒã¹ã®æåã»ãããšç §åé åºã倿ŽããŸãINSTANTã¢ã«ãŽãªãºãINPLACEããµããŒã- ãµããŒã
SHOW CREATE VIEW - ãµããŒã
SHOW CREATE USER - 誀ã£ãŠåé€ãããããŒãã«ã®é«éãªã«ããªããµããŒã
- ADDINDEXã®åæå®è¡æ°ã®åçãªèª¿æŽããµããŒã
CREATE TABLEã¹ããŒãã¡ã³ãã䜿çšããŠããŒãã«ãäœæãããšãã«ãªãŒãžã§ã³ãäºåã«å²ãåœãŠãpre_split_regionsãªãã·ã§ã³ã远å ããŠãããŒãã«äœæåŸã®å€§éã®æžã蟌ã¿ã«ãã£ãŠåŒãèµ·ããããæžã蟌ã¿ããããªãŒãžã§ã³ã軜æžããŸãã- ãããã¹ãããã®åé¡ã軜æžããããã«SQLã¹ããŒãã¡ã³ãã䜿çšããŠæå®ãããããŒãã«ã®ã€ã³ããã¯ã¹ãšç¯å²ã«ãããªãŒãžã§ã³ã®åå²ããµããŒã
ddl_error_count_limitã®ã°ããŒãã«å€æ°ã远å ããŠãDDLã¿ã¹ã¯ã®å詊è¡åæ°ãå¶éããŸã- ãããã¹ãããã®åé¡ã軜æžããããã«ãåã«AUTO_INCREMENT屿§ãå«ãŸããŠããå Žåã«ã
SHARD_ROW_ID_BITSã䜿çšããŠè¡IDã忣ããæ©èœã远å ããŸãã - ç¡å¹ãªDDLã¡ã¿ããŒã¿ã®åç¶æéãæé©åããŠãTiDBã¯ã©ã¹ã¿ã®ã¢ããã°ã¬ãŒãåŸã®DDLæäœã®éåžžã®å®è¡ã®å埩ãé«éåããŸã
- æåã»ãã
- ãã©ã³ã¶ã¯ã·ã§ã³
- æ²èгçãªãã©ã³ã¶ã¯ã·ã§ã³ã¢ãŒãããµããŒãããïŒå®éšçïŒ
- ãã©ã³ã¶ã¯ã·ã§ã³åŠçããžãã¯ãæé©åããŠãããå€ãã®ã·ããªãªã«é©å¿ãããŸãã
- ããã©ã«ãå€ã®
tidb_disable_txn_auto_retryãonã«å€æŽããŸããããã¯ãèªåã³ããããããŠããªããã©ã³ã¶ã¯ã·ã§ã³ãå詊è¡ãããªãããšãæå³ããŸãã tidb_batch_commitã®ã·ã¹ãã 倿°ã远å ããŠããã©ã³ã¶ã¯ã·ã§ã³ãè€æ°ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«åå²ããåæã«å®è¡ããŸãtidb_low_resolution_tsoã®ã·ã¹ãã 倿°ã远å ããŠããããã§ååŸããTSOã®æ°ãå¶åŸ¡ãããã©ã³ã¶ã¯ã·ã§ã³ãTSOãèŠæ±ããåæ°ãæžãããŠãæŽåæ§ã®èŠä»¶ãæ¯èŒçäœãã·ããªãªã§ã®ããã©ãŒãã³ã¹ãåäžãããŸãã- åé¢ã¬ãã«ãSERIALIZABLEã«èšå®ãããŠããå Žåã«ãšã©ãŒãå ±åãããã©ãããå¶åŸ¡ããããã«ã
tidb_skip_isolation_level_checkã®å€æ°ã远å ããŸã tidb_disable_txn_auto_retryã®ã·ã¹ãã 倿°ã倿ŽããŠãå詊è¡å¯èœãªãã¹ãŠã®ãšã©ãŒã§æ©èœããããã«ããŸã
- ããã©ã«ãå€ã®
- æš©é管ç
ANALYZEãããã³SET GLOBALã¹ããŒãã¡ã³ãã®æš©éãã§ãã¯ãSHOW PROCESSLISTãUSE- ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ïŒRBACïŒããµããŒãïŒå®éšçïŒ
- ãµãŒã
- é
ãã¯ãšãªãã°ãæé©åããïŒ
- ãã°åœ¢åŒãåæ§ç¯ãã
- ãã°ã®å 容ãæé©åãã
- ãã°ã¯ãšãªã¡ãœãããæé©åããŠãã¡ã¢ãªããŒãã«ã®
INFORMATION_SCHEMA.SLOW_QUERYã¹ããŒãã¡ã³ããšADMIN SHOW SLOWã¹ããŒãã¡ã³ãã䜿çšããŠãäœéã®ã¯ãšãªãã°ãã¯ãšãªã§ããããã«ããŸãã
- ããŒã«ã«ããåéãšåæã容æã«ããããã«ãåæ§ç¯ããããã°ã·ã¹ãã ã䜿çšããŠçµ±äžããããã°åœ¢åŒã®ä»æ§ãéçºããŸã
- SQLã¹ããŒãã¡ã³ãã䜿çšããTiDBBinlogãµãŒãã¹ã®ç®¡çããµããŒãããŸããããã«ã¯ãã¹ããŒã¿ã¹ã®ã¯ãšãªãTiDB Binlogã®æå¹åãTiDBBinlogæŠç¥ã®ç¶æãšéä¿¡ãå«ãŸããŸãã
unix_socketã䜿çšããŠããŒã¿ããŒã¹ã«æ¥ç¶ããããšããµããŒã- SQLã¹ããŒãã¡ã³ãã®ãµããŒã
Trace - ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ããããã«ã1HTTPã€ã³ã¿ãŒãã§ãŒã¹ãä»ãã
/debug/zipã€ã³ã¹ã¿ã³ã¹ã®æ å ±ã®ååŸããµããŒãããŸãã - ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ããããã«ç£èŠé
ç®ãæé©åããŸãã
high_error_rate_feedback_totalã®ç£èŠé ç®ã远å ããŠãçµ±èšã«åºã¥ããŠå®éã®ããŒã¿éãšæšå®ããŒã¿éã®å·®ãç£èŠããŸãã- ããŒã¿ããŒã¹ãã£ã¡ã³ã·ã§ã³ã«QPSç£èŠé ç®ã远å ããŸã
- ã·ã¹ãã åæåããã»ã¹ãæé©åããŠãDDLææè ã®ã¿ãåæåãå®è¡ã§ããããã«ããŸããããã«ãããåæåãŸãã¯ã¢ããã°ã¬ãŒãã®èµ·åæéãççž®ãããŸãã
kill queryã®å®è¡ããžãã¯ãæé©åããŠãããã©ãŒãã³ã¹ãåäžããããªãœãŒã¹ãé©åã«è§£æŸãããããã«ããŸãã- ã¹ã¿ãŒãã¢ãããªãã·ã§ã³
config-checkã远å ããŠãæ§æãã¡ã€ã«ã®æå¹æ§ã確èªããŸã tidb_back_off_weightã®ã·ã¹ãã 倿°ã远å ããŠãå éšãšã©ãŒå詊è¡ã®ããã¯ãªãæéãå¶åŸ¡ããŸãwait_timeoutãšinteractive_timeoutã®ã·ã¹ãã 倿°ã远å ããŠãèš±å¯ãããæå€§ã¢ã€ãã«æ¥ç¶ãå¶åŸ¡ããŸã- TiKVã®æ¥ç¶ããŒã«ã远å ããŠãæ¥ç¶ç¢ºç«æéãççž®ããŸã
- é
ãã¯ãšãªãã°ãæé©åããïŒ
- äºææ§
ALLOW_INVALID_DATESã¢ãŒãããµããŒããã- MySQL320ãã³ãã·ã§ã€ã¯ãããã³ã«ããµããŒããã
- 笊å·ãªãBIGINTåãèªåã€ã³ã¯ãªã¡ã³ãåãšããŠæç€ºããããšããµããŒã
SHOW CREATE DATABASE IF NOT EXISTSæ§æããµããŒããã- CSVãã¡ã€ã«ã®ãã©ãŒã«ããã¬ã©ã³ã¹
load dataãæé©åãã - ãã£ã«ã¿ãªã³ã°æ¡ä»¶ã«ãŠãŒã¶ãŒå€æ°ãå«ãŸããŠããå Žåã¯ãè¿°èªããã·ã¥ããŠã³æäœãç Žæ£ããŠããŠãŒã¶ãŒå€æ°ã䜿çšããŠãŠã£ã³ããŠé¢æ°ãã·ãã¥ã¬ãŒãããMySQLã®åäœãšã®äºææ§ãåäžãããŸãã
PD
- åäžããŒãããã®ã¯ã©ã¹ã¿ã®åäœæããµããŒã
- ãªãŒãžã§ã³ã¡ã¿ããŒã¿ãetcdããgo-leveldbã¹ãã¬ãŒãžãšã³ãžã³ã«ç§»è¡ããŠãå€§èŠæš¡ã¯ã©ã¹ã¿ãŒã®etcdã®ã¹ãã¬ãŒãžããã«ããã¯ã解決ããŸã
- API
remove-tombstoneã®APIã远å ããŠTombstoneã¹ãã¢ãã¯ãªã¢ããŸã- ãªãŒãžã§ã³æ
å ±ããããã¯ãšãªããããã«
ScanRegionsã®APIã远å ããŸã - å®è¡äžã®æŒç®åãã¯ãšãªããããã«
GetOperatorã®APIã远å ããŸã GetStoresã®ããã©ãŒãã³ã¹ãæé©åãã
- æ§æ
- æ§æã¢ã€ãã ã®ãšã©ãŒãåé¿ããããã«æ§æãã§ãã¯ããžãã¯ãæé©åãã
- ãªãŒãžã§ã³ããŒãžã®æ¹åãå¶åŸ¡ããã«ã¯ã
enable-two-way-mergeã远å ããŸã - ããããªãŒãžã§ã³ã®ã¹ã±ãžã¥ãŒãªã³ã°ã¬ãŒããå¶åŸ¡ããã«ã¯ã
hot-region-schedule-limitã远å ããŸã - è€æ°ã®ãããå€ã«é£ç¶ããŠå°éãããšãã«ãããã¹ããããèå¥ããã«ã¯ã
hot-region-cache-hits-thresholdã远å ããŸã store-balance-rateã®æ§æã¢ã€ãã ã远å ããŠã1åãããã«èš±å¯ããããã©ã³ã¹ãªãŒãžã§ã³ãªãã¬ãŒã¿ãŒã®æå€§æ°ãå¶åŸ¡ããŸã
- ã¹ã±ãžã¥ãŒã©ã®æé©å
- ååºèã®ãªãã¬ãŒã¿ãŒã®é床ãåå¥ã«å¶åŸ¡ããããã®åºèå¶éã¡ã«ããºã ã远å ããŸã
waitingOperatorã®ãã¥ãŒããµããŒãããŠãããŸããŸãªã¹ã±ãžã¥ãŒã©éã®ãªãœãŒã¹ç«¶åãæé©åããŸã- ã¹ã±ãžã¥ãŒãªã³ã°æäœãTiKVã«ã¢ã¯ãã£ãã«éä¿¡ããããã®ã¹ã±ãžã¥ãŒãªã³ã°ã¬ãŒãå¶éããµããŒãããŸããããã«ãããåäžããŒãã§ã®åæã¹ã±ãžã¥ãŒãªã³ã°ã¿ã¹ã¯ã®æ°ãå¶éãããã¹ã±ãžã¥ãŒãªã³ã°ã¬ãŒããåäžããŸãã
- å¶éã¡ã«ããºã ã«ãã£ãŠå¶éãããªãããã«
Region Scatterã®ã¹ã±ãžã¥ãŒãªã³ã°ãæé©åããŸã - ãããã¹ãããã®ã¹ã±ãžã¥ãŒãªã³ã°ãäžååãªã·ããªãªã§TiKVã®å®å®æ§ãã¹ãã容æã«ããããã«ã
shuffle-hot-regionã®ã¹ã±ãžã¥ãŒã©ãŒã远å ããŸã
- ã·ãã¥ã¬ãŒã¿ãŒ
- ããŒã¿ã€ã³ããŒãã·ããªãªçšã®ã·ãã¥ã¬ãŒã¿ãŒã远å ãã
- ã¹ãã¢ã®ç°ãªãããŒãããŒãééã®èšå®ããµããŒã
- ãã®ä»
- etcdãã¢ããã°ã¬ãŒãããŠãäžè²«æ§ã®ãªããã°åºå圢åŒãprevoteã§ã®ãªãŒããŒéžæã®å€±æãããã³ãªãŒã¹ã®ãããããã¯ã®åé¡ã解決ããŸãã
- ããŒã«ã«ããåéãšåæã容æã«ããããã«ãåæ§ç¯ããããã°ã·ã¹ãã ã䜿çšããŠçµ±äžããããã°åœ¢åŒã®ä»æ§ãéçºããŸã
- ã¹ã±ãžã¥ãŒãªã³ã°ãã©ã¡ãŒã¿ãã¯ã©ã¹ã¿ã©ãã«æ å ±ãTSOèŠæ±ãåŠçããããã«PDãæ¶è²»ããæéãã¹ãã¢IDãšã¢ãã¬ã¹æ å ±ãªã©ãå«ãç£èŠã¡ããªãã¯ã远å ããŸãã
TiKV
- 忣GCãšåæããã¯è§£æ±ºããµããŒãããŠãGCã®ããã©ãŒãã³ã¹ãåäžãããŸã
- ãµããŒãã¯
raw_scanãšraw_batch_scanãéã«ããŸãã - ãã«ãã¹ã¬ããRaftstoreãšãã«ãã¹ã¬ããApplyããµããŒãããŠãåäžããŒãå ã®ã¹ã±ãŒã©ããªãã£ãåæå®è¡å®¹éãããã³ãªãœãŒã¹äœ¿çšéãæ¹åããŸããåãã¬ãã«ã®å§åã§ããã©ãŒãã³ã¹ã70ïŒ åäžããŸã
- Raftã¡ãã»ãŒãžã®ãããéåä¿¡ããµããŒãããæžã蟌ã¿ãéäžããã·ããªãªã§TPSã7ïŒ åäžãããŸã
- æžã蟌ã¿ã¹ããŒã«ãåé¿ããããã«ãã¹ãããã·ã§ãããé©çšããåã«RocksDBã¬ãã«0ãã¡ã€ã«ããã§ãã¯ããããšããµããŒãããŸã
- å€ã®ãµã€ãºã1KiBãè¶ ããã·ããªãªã®æžã蟌ã¿ããã©ãŒãã³ã¹ãåäžãããæžã蟌ã¿ã®å¢å¹ ãããçšåºŠç·©åããKey-Valueãã©ã°ã€ã³ã§ããTitanã玹ä»ããŸã
- æ²èгçãªãã©ã³ã¶ã¯ã·ã§ã³ã¢ãŒãããµããŒãããïŒå®éšçïŒ
- HTTPçµç±ã§ã®ç£èŠæ å ±ã®ååŸããµããŒã
Insertã®ã»ãã³ãã£ã¯ã¹ã倿ŽããŠãããŒããªãå Žåã«ã®ã¿ããªã©ã€ããæåããããã«ããŸãã- ããŒã«ã«ããåéãšåæã容æã«ããããã«ãåæ§ç¯ããããã°ã·ã¹ãã ã䜿çšããŠçµ±äžããããã°åœ¢åŒã®ä»æ§ãéçºããŸã
- æ§ææ å ±ãšããŒããŠã³ãã¯ããã·ã³ã°ã«é¢é£ããããã©ãŒãã³ã¹ã¡ããªãã¯ã远å ããŸã
- RawKVã§ããŒã«ã«ãªãŒããŒããµããŒãããŠããã©ãŒãã³ã¹ãåäžããã
- ãšã³ãžã³
- ã¡ã¢ãªç®¡çãæé©åããŠã
Iterator Key Bound Optionã®ã¡ã¢ãªå²ãåœãŠãšã³ããŒãåæžããŸã - ç°ãªãåãã¡ããªãŒéã§ã®
block cacheã®å ±æããµããŒã
- ã¡ã¢ãªç®¡çãæé©åããŠã
- ãµãŒã
- ã³ã³ããã¹ãã¹ã€ããã®ãªãŒããŒãããã
batch commandsããåæž txn schedulerãåé€ããŸãread indexãšGC workerã«é¢é£ããç£èŠé ç®ã远å ããŸã
- ã³ã³ããã¹ãã¹ã€ããã®ãªãŒããŒãããã
- RaftStore
- RaftStoreããã®CPUæ¶è²»ãæé©åããããã«HibernateãªãŒãžã§ã³ããµããŒãããïŒå®éšçïŒ
- ããŒã«ã«ãªãŒããŒã¹ã¬ãããåé€ããŸã
- ã³ããã»ããµãŒ
- èšç®ãã¬ãŒã ã¯ãŒã¯ããªãã¡ã¯ã¿ãªã³ã°ããŠãã¯ãã«æŒç®åããã¯ãã«åŒã䜿çšããèšç®ãããã³ãã¯ãã«éèšãå®è£ ããŠããã©ãŒãã³ã¹ãåäžããã
- TiDBã®
EXPLAIN ANALYZEã¹ããŒãã¡ã³ãã®æŒç®åå®è¡ã¹ããŒã¿ã¹ã®æäŸããµããŒã - ã³ã³ããã¹ãã¹ã€ããã®ã³ã¹ããåæžããã«ã¯ã
work-stealingã¹ã¬ããããŒã«ã¢ãã«ã«åãæ¿ããŸã
ããŒã«
- TiDB Lightning
- ããŒã¿ããŒãã«ã®ãªãã€ã¬ã¯ãã¬ããªã±ãŒã·ã§ã³ããµããŒã
- CSVãã¡ã€ã«ã®ã€ã³ããŒãããµããŒã
- SQLããKVãã¢ãžã®å€æã®ããã©ãŒãã³ã¹ãåäžããã
- åäžããŒãã«ã®ãããã€ã³ããŒãããµããŒãããŠãããã©ãŒãã³ã¹ãåäžãããŸã
- TiKV-importerã®ããã©ãŒãã³ã¹ãåäžãããããã«ã倧ããªããŒãã«ã®ããŒã¿ãšã€ã³ããã¯ã¹ãåå¥ã«ã€ã³ããŒãããããšããµããŒãããŸã
- æ°ãããã¡ã€ã«ã§åããŒã¿ãæ¬ èœããŠããå Žåã«ã
row_idãŸãã¯ããã©ã«ãã®åå€ã䜿çšããŠæ¬ èœããŠããåãåããããšããµããŒãããŸã - SSTãã¡ã€ã«ãTiKVã«ã¢ããããŒããããšãã«é床å¶éã
TIKV-importerã«èšå®ããããšããµããŒã
- TiDB Binlog
- ã³ã³ããç°å¢ã§ããªããžã¢ãŒãããµããŒãããã«ã¯ãDrainerã«
advertise-addrã®æ§æã远å ããŸã - Pumpã«
GetMvccByEncodeKey颿°ã远å ããŠããã©ã³ã¶ã¯ã·ã§ã³ã¹ããŒã¿ã¹ã®ã¯ãšãªãé«éåããŸã - ã³ã³ããŒãã³ãéã®éä¿¡ããŒã¿ã®å§çž®ããµããŒãããŠããããã¯ãŒã¯ãªãœãŒã¹ã®æ¶è²»ãåæžããŸã
- Kafkaããã®binlogã®èªã¿åãããµããŒãããã¢ãŒãã¿ãŒããŒã«ã远å ããããŒã¿ãMySQLã«è€è£œããŸã
- Reparoãä»ããã¬ããªã±ãŒã·ã§ã³ãå¿ èŠãšããªããã¡ã€ã«ã®é€å€ããµããŒã
- çæãããåã®è€è£œããµããŒã
- DDLã¯ãšãªãè§£æããããã®ããŸããŸãªSQLã¢ãŒãã®äœ¿çšããµããŒããã
syncer.sql-modeã®æ§æã¢ã€ãã ã远å ããŸã - è€è£œãããªããã£ã«ã¿ãªã³ã°ããŒãã«ããµããŒãããããã«
syncer.ignore-tableã®æ§æã¢ã€ãã ã远å ããŸã
- ã³ã³ããç°å¢ã§ããªããžã¢ãŒãããµããŒãããã«ã¯ãDrainerã«
- sync-diff-inspector
- ãã§ãã¯ãã€ã³ãããµããŒãããŠæ€èšŒã¹ããŒã¿ã¹ãèšé²ããåèµ·ååŸã«æåŸã«ä¿åãããã€ã³ãããæ€èšŒãç¶è¡ããŸã
- ãã§ãã¯ãµã ãèšç®ããŠããŒã¿ã®æŽåæ§ããã§ãã¯ããã«ã¯ã
only-use-checksumã®æ§æã¢ã€ãã ã远å ããŸã - ããå€ãã®ã·ããªãªã«é©å¿ããããã®æ¯èŒã®ããã«ãã£ã³ã¯ãåå²ããããã®TiDBçµ±èšãšè€æ°ã®åã®äœ¿çšããµããŒã
TiDB Ansible
- 次ã®ç£èŠã³ã³ããŒãã³ããå®å®ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãããŸãã
- V2.2.1ããV2.8.1ãžã®ããã¡ããŠã¹
- V0.4.0ããV0.7.0ãžã®ããã·ã¥ã²ãŒããŠã§ã€
- V0.15.2ããV0.17.0ãžã®Node_exporter
- V0.14.0ããV0.17.0ãžã®Alertmanager
- V4.6.3ããV6.1.6ãžã®Grafana
- V2.5.14ããV2.7.11ãŸã§Ansible
- TiKVãµããªãŒã¢ãã¿ãªã³ã°ããã·ã¥ããŒãã远å ããŠãã¯ã©ã¹ã¿ã®ã¹ããŒã¿ã¹ã䟿å©ã«è¡šç€ºããŸã
- TiKVã®trouble_shootingç£èŠããã·ã¥ããŒãã远å ããŠãéè€ããã¢ã€ãã ãåé€ãããã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ããŸã
- TiKV詳现ç£èŠããã·ã¥ããŒãã远å ããŠããããã°ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ããŸã
- æŽæ°ã®ããã©ãŒãã³ã¹ãåäžãããããã«ãæŽæ°ã®ããŒãªã³ã°äžã«ããŒãžã§ã³ã®æŽåæ§ã®åæãã§ãã¯ã远å ããŸã
- TiDBLightningã®å±éãšéçšããµããŒããã
table-regions.pyã®ã¹ã¯ãªãããæé©åããŠãããŒãã«ã«ãããªãŒããŒååžã®è¡šç€ºããµããŒãããŸã- TiDBã¢ãã¿ãªã³ã°ãæé©åããSQLã«ããŽãªããšã«ã¬ã€ãã³ã·é¢é£ã®ã¢ãã¿ãªã³ã°é ç®ã远å ããŸã
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ããŒãžã§ã³å¶éã倿ŽããŠãCentOS7.0以éããã³RedHat7.0以éã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã¿ããµããŒãããããã«ããŸãã
- ç£èŠé ç®ã远å ããŠãã¯ã©ã¹ã¿ã®æå€§QPSãäºæž¬ããŸãïŒããã©ã«ãã§ã¯é衚瀺ïŒ