
28 рдЕрдЧрд╕реНрдд рдХреЛ, рдХреНрдпреВрдмрд░реНрдиреЗрдЯреНрд╕, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ рдЖрдзреБрдирд┐рдХ рдХреНрд▓рд╛рдЙрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдУрдкрди рд╕реЛрд░реНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкреАрдЫреЗ рд╕реАрдПрдирд╕реАрдПрдл (рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд┐рд╡ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдлрд╛рдЙрдВрдбреЗрд╢рди)
рдиреЗ рдЕрдкрдиреЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ -
рдЯреАрдЖрдИрдХреЗрд╡реА рдореЗрдВ рдПрдХ рдирдП рдЙрддреНрдкрд╛рдж рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреА
рдШреЛрд╖рдгрд╛ рдХреАред
рдпрд╣ рд╡рд┐рддрд░рд┐рдд, рдХреБрдВрдЬреА-рдореВрд▓реНрдп рд▓реЗрдирджреЗрди рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕
TiDB рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрджрд╛ рд╣реБрдЖ рдерд╛, рдПрдХ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдЬреЛ OLTP рдФрд░ OLAP рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ MySQL рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреАрдЖрдИрдбреАрдмреА
рдЪрд▓реЛ рдЪреАрдиреА рдХрдВрдкрдиреА рдкрд┐рдВрдЧрдХреИрдк рдЗрдВрдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ "рдореВрд▓" TiDB рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ DBMS рдХреА рдкрд╣рд▓реА рдмрдбрд╝реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рд▓реАрдЬрд╝ - 1.0 - рдПрдХ рд╕рд╛рд▓ рд╕реЗ рднреА рдХрдо рд╕рдордп рдкрд╣рд▓реЗ рд╣реБрдИ рдереАред рдЗрд╕рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЯреНрд░рд╛рдВрд╕реЗрдХреНрд╢рдирд▓ рдФрд░ рдПрдирд╛рд▓рд┐рдЯрд┐рдХрд▓ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ (рд╣рд╛рдЗрдмреНрд░рд┐рдб рдЯреНрд░рд╛рдВрдЬреИрдХреНрд╢рдирд▓ / рдПрдирд╛рд▓рд┐рдЯрд┐рдХрд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдПрдЪрдЯреАрдПрдкреА) рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рд╛рде-рд╕рд╛рде MySQL рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХреА рдЧрдИ рд╕рдВрдЧрддрддрд╛ рд╣реИрдВред рдирдП DBMS рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд░рд╣реЗ - рдЬреИрд╕реЗ рдХрд┐ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА, рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рд╕рдЦреНрдд ACID рдЕрдиреБрдкрд╛рд▓рди рдЬреИрд╕реЗ рдЕрдиреНрдп рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╕рдордп TiDB рдХреА рдПрдХ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдЙрднрд░рддреА рд╣реИред
TiDB рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдХреНрдпреЛрдВрдХрд┐ TiDB NoSQL рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдФрд░ ACID рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ
NewSQL рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ред рд▓реЗрдЦрдХ рдЗрд╕ рддрдереНрдп рдХреЛ рдЫрд┐рдкрд╛рддреЗ рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ NewSQL рдХреЗ рдЕрдиреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рддрд╣рдд рдЙрддреНрдкрд╛рдж рдмрдирд╛рдпрд╛:
Google рд╕реНрдкреИрдирд░ рдФрд░
рдПрдл 1 ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреАрдиреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ "рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ" рдкрд░ рдЬреЛрд░ рджрд┐рдпрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ
рдмреЗрддрд░рддреАрдм рдЖрдо рд╕рд╣рдорддрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдЪреБрдирд╛ (
рдкреИрдХреНрд╕реЛрд╕ рдХреЗ рдмрдЬрд╛рдп, рдЬреЛ рдХрд┐ рд╕реНрдкреИрдирд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ),
рд░реЙрдХреНрд╕рдбреАрдмреА рднрдВрдбрд╛рд░рдг (рдПрдХ рд╡рд┐рддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрдЬрд╛рдп), рдФрд░ рдЧреЛ (рдФрд░ рдЬрдВрдЧ) рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВред
TiDB рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд╡рд┐рд╡рд░рдг рдкрд┐рдВрдЧрдХреИрдк - рдореИрдХреНрд╕ рд▓рд┐рдпреВ рдХреЗ рд╕рд╣-рд╕рдВрд╕реНрдерд╛рдкрдХ рдФрд░ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХрд╛рд░реА рдЕрдзрд┐рдХрд╛рд░реА - "
рдХреИрд╕реЗ рд╣рдо TiDB рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ " рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ TiKV рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд▓реМрдЯрд╛рдПрдВрдЧреЗред TiDB рд╕реНрд░реЛрдд рдХреЛрдб рдореБрдлреНрдд Apache рд▓рд╛рдЗрд╕реЗрдВрд╕ v2 рдХреЗ рддрд╣рдд
рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ
рдкреНрд░рдореБрдЦ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд▓реЗрдиреЛрд╡реЛ, Meizu, рдмреИрдВрдХ рдСрдл рдмреАрдЬрд┐рдВрдЧ, рдЗрдВрдбрд╕реНрдЯреНрд░рд┐рдпрд▓ рдПрдВрдб рдХрдорд░реНрд╢рд┐рдпрд▓ рдмреИрдВрдХ рдСрдл рдЪрд╛рдЗрдирд╛ рдЖрджрд┐ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИред
TiKV рдХреНрдпрд╛ рд╣реИ рдФрд░ рджреБрдирд┐рдпрд╛ рдореЗрдВ TiDB (рдФрд░ рди рдХреЗрд╡рд▓) рдХреА рдХреНрдпрд╛ рднреВрдорд┐рдХрд╛ рд╣реИ?
TiKV рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рдлреАрдЪрд░реНрд╕
рдЖрдЗрдП, рдХреБрдЫ рдЕрд▓рдЧ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ TiDB рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ:

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ TiDB рдЦреБрдж SQL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ MySQL * рдЕрдиреБрдХреВрд▓рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмрд╛рдХреА рдХрд╛ рдХрд╛рдо TiKV рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ "рдмрд╛рдХреА рдХрд╛рдо" рдХреНрдпрд╛ рд╣реИ? рдпрд╣рд╛рдБ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЪрд┐рддреНрд░ рд╣реИ:

* TiDB рдореЗрдВ MySQL рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреА рдкрд░рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВредрдХреБрдВрдЬреА-рдорд╛рди рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рд╢реНрдиреЛрдВ рд╕реЗ:
INSERT INTO user VALUES (1, "bob", "huang@pingcap.com"); INSERT INTO user VALUES (2, "tom", "tom@pingcap.com");
... рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ:

TiDB рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рд╕рд╛рдзрд╛рд░рдг рдЬреЛрдбрд╝реЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдорд╛рди рдбреЗрдЯрд╛ рд▓рд╛рдЗрди рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ:

TiKV рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:
- рдХреЗрд╡реА рдПрдкреАрдЖрдИ - рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ / рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ;
- рдХреЛрдкреНрд░реЛрд╕реЗрд╕рд░ - рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╕рдВрд╕рд╛рдзрдХ рдврд╛рдВрдЪрд╛ (HBase рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛);
- рд▓реЗрдирджреЗрди - Google Percolator рдХреЗ рд╕рдорд╛рди рдПрдХ рд▓реЗрдирджреЗрди рдореЙрдбрд▓ (2 рдЪрд░рдгреЛрдВ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓; рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдЖрд╡рдВрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рд╕реНрдкреИрдирд░ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рднреА рджреЗрдЦреЗрдВ);
- MVCC (MultiVersion Concurrency Control) рддрд╛рд▓реЗ рдФрд░ ACID рд▓реЗрдирджреЗрди рдХреЗ рдмрд┐рдирд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП (рдбреЗрдЯрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдореЗрдВ рдХрд┐рдП рдЧрдП рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЕрдиреНрдп рд▓реЗрди-рджреЗрди рдХреЗ рд╕рдордп рддрдХ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ);
- рдмреЗрдбрд╝рд╛ рдХреЗрд╡реА - рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд░реЗрдЬрд╝ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо; рд░рд╕реНрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ etcd (рд╡реНрдпрд╛рдкрдХ рд╢реЛрд╖рдг рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд) рд╕реЗ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рд╡реИрд╕реЗ, рдЯреАрдЖрдИрдХреЗрд╡реА рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ "рдбреЗрдЯрд╛ рдХреА 100+ рдЯреАрдмреА рдХреЛ рд╕рд░рд▓ рдорд╛рдкрдиреАрдпрддрд╛" рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛;
- RocksDB - рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг, рдЙрддреНрдкрд╛рджрди (рдлреЗрд╕рдмреБрдХ) рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд;
- рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдбреНрд░рд╛рдЗрд╡рд░ - рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ "рдорд╕реНрддрд┐рд╖реНрдХ", Google рд╕реНрдкреИрдирд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓реЛрдб рд╡рд┐рддрд░рдг (рд░рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рднреА рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рд╣рдо рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдВрддрд░реНрд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:
- рдкреНрд░рддреНрдпреЗрдХ TiKV рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (RocksDB) рд╣реИред
- рдкреНрд░рддреНрдпреЗрдХ рднрдВрдбрд╛рд░ рдХреЗ рдХрдИ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ ред
- рдПрдХ рдХреНрд╖реЗрддреНрд░ "рдХреА-рд╡реИрд▓реНрдпреВ рдбреЗрдЯрд╛ рдореВрд╡рдореЗрдВрдЯ рдХреА рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЗрдХрд╛рдИ" рд╣реИ, рдЗрд╕реЗ рдХрдИ рдиреЛрдбреНрд╕ рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдореВрд╣ рд╕рдореВрд╣ рдмрдирд╛рддреА рд╣реИ ред
- рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдбреНрд░рд╛рдЗрд╡рд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╕реНрд╡рдпрдВ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИред
TiKV рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг
TiKV рдХреЛрдб рдЖрдзрд╛рд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ Rust рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рдШрдЯрдХ рд╣реИрдВ (C ++ рдореЗрдВ RocksDB рдФрд░ Go рдореЗрдВ GRPC)ред рдПрдХ рд╣реА рдореБрдлреНрдд рдЕрдкрд╛рдЪреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ v2 рдХреЗ рддрд╣рдд
рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, TiKV рд╢реБрд░реВ рдореЗрдВ TiDB рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдЬ рдпрд╣ рдЗрд╕ DBMS рдХреЗ рднреАрддрд░ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреЛрдиреЛрдВ рддрд░рд╣ рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП Go рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП
рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
TiDB DBMS рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ TiKV рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛
рдирд┐рд░реНрджреЗрд╢ Git, Docker (17.03+), Docker Compose (1.6.0+), MySQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ:
git clone https://github.com/pingcap/tidb-docker-compose.git cd tidb-docker-compose && docker-compose pull docker-compose up -d
рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ TiDB рдХреНрд▓рд╕реНрдЯрд░ рдХреА рддреИрдирд╛рддреА рд╣реЛрдЧреА, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ TiDB рдХреА 1 рдкреНрд░рддрд┐;
- TiKV рдХреА 3 рдкреНрд░рддрд┐рдпрд╛рдВ;
- рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдЪрд╛рд▓рдХ рдХреЗ 3 рдЙрджрд╛рд╣рд░рдг;
- рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ (рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП) ;
- TiSpark рдХреА 2 рдкреНрд░рддрд┐рдпрд╛рдБ (рдорд╛рд╕реНрдЯрд░ + рд╕реНрд▓реЗрд╡) (рдЬрдЯрд┐рд▓ OLAP рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TiDB / TiKV рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ Apache Spark рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рдд) ;
- TiDB- рд╡рд┐рдЬрд╝рди рдХрд╛ 1 рдЙрджрд╛рд╣рд░рдг (рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП) ред
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд DBMS рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХрд╛ рдХрд╛рдо:
- MySQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди:
mysql -h 127.0.0.1 -P 4000 -u root
; - рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╛рдирд╛ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ -
http://localhost:3000
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ / рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рддрд╣рдд; - рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдФрд░ рдиреЛрдбреНрд╕ рдкрд░ рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП TiDB-Vision рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ -
http://localhost:8010
; - рд╕реНрдкрд╛рд░реНрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ -
http://localhost:8080
( spark://127.0.0.1:7077
рдорд╛рдзреНрдпрдо рд╕реЗ рдЯрд╛рдЗрд╕реНрдкрд╛рд░реНрдХ рддрдХ рдкрд╣реБрдВрдЪ http://localhost:8080
127.0.0.1 spark://127.0.0.1:7077
)ред
рдпрджрд┐ рдЖрдк рдПрдХ
рдХрд╛рдлреА рдорд╛рдирдХ TiDB рдХреНрд▓рд╕реНрдЯрд░ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ (рдпрд╛рдиреА рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рджреЗрдВ, рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ, рдкреЛрд░реНрдЯ, рдЖрджрд┐), рддреЛ
tidb-docker-compos рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк
ocker рдХрдореНрдкреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП
рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЛ рдПрдбрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ cd tidb-docker-compose $ vi compose/values.yaml $ helm template compose > generated-docker-compose.yaml $ docker-compose -f generated-docker-compose.yaml pull $ docker-compose -f generated-docker-compose.yaml up -d
рдФрд░ рднреА рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП, TiDB, TiKV, рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдбреНрд░рд╛рдпрд╡рд░ рдФрд░ рдЕрдиреНрдп рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП "
рдЕрдиреБрдХреВрд▓рд┐рдд TiDB рдХреНрд▓рд╕реНрдЯрд░ " рджреЗрдЦреЗрдВред
рдХреБрдмрд░реНрдиреЗрдЯреЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ TiDB рдХреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ
рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдирд╛рдо рдХрд╛
рдСрдкрд░реЗрдЯрд░ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ -
TiDB рдСрдкрд░реЗрдЯрд░ ред рдпрд╣ рд╣реЗрд▓рдо рдЪрд╛рд░реНрдЯ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдбреНрд╕ рддрдХ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (TiDB DevConf 2018 рдореЗрдВ
рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рд╕реНрд▓рд╛рдЗрдб):

рд╡реИрд╕реЗ, рдЗрд╕ рдбреАрдмреАрдПрдордПрд╕ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдкрд░ TiDB рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рд╕реНрддреБрддрд┐ рдмреЛрд▓рддреА рд╣реИред рдкрд╛рдареНрдп рд╡рд┐рд╡рд░рдг, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЪреАрдиреА рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рд╕реНрд▓рд╛рдЗрдбреЛрдВ рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рд╕реАрдзреЗ TiKV рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ - рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓реЙрдиреНрдЪ рдЧрд╛рдЗрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рд╣реИрдВ:
рдФрд░
рдЙрддреНрдкрд╛рджрди рдореЗрдВ TiKV рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП
, рд╡рд╣рд╛рдБ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд╛рд╕ рд╣реИрдВ - рдлрд┐рд░ рд╕реЗ,
TiDB рдХреЗ рд╕рд╛рде рдФрд░
рдмрд┐рдирд╛ ред
рдЕрдВрдд рдореЗрдВ, TiKV рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИ:
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд░рд╕реНрдЯ рдкрд░ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдПрдХ рдЪреАрдиреА рдХрдВрдкрдиреА рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдПрдХ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, TiKV рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдзрд┐ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реИред
GitHub рдХреЗ рдЖрдВрдХрдбрд╝реЗ рди рдХреЗрд╡рд▓ 3600+ рддрд╛рд░реЗ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд▓рдЧрднрдЧ 500 рдХрд╛рдВрдЯреЗ, рдФрд░ рд▓рдЧрднрдЧ 100 рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рджреЛ рджрд░реНрдЬрди рдиреЗ 10 рд╕реЗ рдЕрдзрд┐рдХ рдХрдорд┐рдЯ рдХрд┐рдП рд╣реИрдВ)ред
рддрд┐рд╡рдХрд╡реА рдХреЛ
рд╕реАрдПрдирд╕реАрдПрдл рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╣рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдпрд╣ рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рджрд▓ рдореВрд▓ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрд╛рдж рдХреА рдорд╛рдиреНрдпрддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ ... рдФрд░ рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреЗ рдХреЛрдб рдЖрдзрд╛рд░ рдХреЗ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрд░реНрдерд╛рдд рдореВрд▓ рдХрдВрдкрдиреА рдФрд░ рдЙрд╕рдХреЗ DBMS рдХреЗ рдмрд╛рд╣рд░) ) рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рджреНрд╡рд╛рд░рд╛ред
рдкреБрдирд╢реНрдЪ
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: