TiDB是屬於NewSQL的一員,那麼NewSQL又具有何種特色?
首先從最一開始盛行的RDBMS說起。這類型DB主要的特色是滿足了ACID特性(原子性、一致性、隔離性和可持久性),確保資料的強一致性,使用SQL管理資料。如MSSQL,Oracle,MySQL,PostgreSQL等等,這些耳熟能詳的DB都屬於這個分類。
但是隨著使用情境的變更,RDBMS漸漸無法滿足所有的場景,加上不易水平擴充。於是NoSQL(Not only SQL)崛起。
因為本身資料就採分散式儲存的特性,水平擴充無難度,也降低了升級的成本。但是不支援ACID特性,符合CAP特性當中的可用性與可分區性但是犧牲了一致性只保證最終一致性。Google的BigTable,MangoDB,Cassandra等等都屬於這個分類。
這時候謎之音冒出了一句『爭什麼?摻在一起做成NewSQL啊、笨蛋!』,滿足了SQL & NoSQL特性的NewSQL橫空出世。不但符合了ACID的特性也保留了擴充性。Google的Spanner,VoltDB,TiDB等等都屬於這一類新型態的DB。
TiDB分為計算層與儲存層還有一個專門負責集群管理層。如果需要提升處理能力可以水平擴充計算層,而隨著資料量的增加則可以水平擴充儲存層。除此之外TiDB也實現的HTAP功能,下一篇會針對HTAP功能多做一點解釋。