分片

互聯網協議允許IP分片,這樣的話,當數據包比鏈路最大傳輸單元大時,就可以被分解為很多的足夠小片段,以便能夠在其上進行傳輸。RFC 1191描述了“路徑MTU發現”,該技術用于確定兩臺IP主機間的路徑MTU,這樣就可以避免IP分片。在Internet協議IPv4版本和較新的IPv6版本中,分片機制的細節和分片機制的整體框架是有所不同的。

產生原因

鏈路層具有最大傳輸單元MTU這個特性,它限制了數據幀的最大長度,不同的網絡類型都有一個上限值。以太網的MTU是1500,你可以用 netstat -i 命令查看這個值。如果IP層有數據包要傳,而且數據包的長度超過了MTU,那么IP層就要對數據包進行分片
(fragmentation)操作,使每一片的長度都小于或等于MTU。我們假設要傳輸一個UDP數據包,以太網的MTU為1500字節,一般IP首部為20字節,UDP首部為8字節,數據的凈荷(payload)部分預留是1500-20-8=1472字節。如果數據部分大于1472字節,就會出現分片現象。

詳細介紹

分片(sharding)是數據庫分區的一種,它將大型數據庫分成更小、更快、更容易管理的部分,這些部分叫做數據碎片。碎片這個詞意思就是整體的一小部分。

Jason Tee表示:“簡言之,分片(sharding)數據庫需要將數據庫(database)分成多個沒有共同點的小型數據庫,且它們可以跨多臺服務器傳播。”
技術上來說,分片(sharding)是水平分區的同義詞。在實際操作中,這個術語常用來表示讓一個大型數據庫更易于管理的所有數據庫分區。

分片(sharding)的核心理念基于一個想法:數據庫大小以及數據庫上每單元時間內的交易數呈線型增長,查詢數據庫的響應時間(response time)以指數方式增長。

另外,在一個地方創建和維護一個大型數據庫的成本會成指數增長,因為數據庫將需要高端的計算機。相反地,數據碎片可以分布到大量便宜得多的商用服務器上。就硬件和軟件要求而言,數據碎片相對來說沒什么限制。

在某些情況中,數據庫分片(sharding)可以很簡單地完成。按地理位置拆分用戶數據庫就是一個常見的例子。位于東海岸的用戶被分到一臺服務器上,在西海岸的用戶被分在另一臺服務器上。假設沒有用戶有多個地理位置,這種分區很易于維護和創建規則。

但是數據分片(sharding)在某些情況下會是更為復雜的過程。例如,一個數據庫持有很少結構化數據,分片它就可能非常復雜,并且結果碎片可能會很難維護。

區塊星球登載此文出于傳遞信息目的,并不意味著贊同其觀點或證實其描述。本文不構成投資建議。投資者據此操作,風險自擔。
欧美日韩亚洲第一区