分片

互联网协议允许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)在某些情况下会是更为复杂的过程。例如,一个数据库持有很少结构化数据,分片它就可能非常复杂,并且结果碎片可能会很难维护。

区块星球登载此文出于传递信息目的,并不意味着赞同其观点或证实其描述。本文不构成投资建议。投资者据此操作,风险自担。