シャード 【shard】
概要
シャード(shard)とは、破片、かけらなどの意味を持つ英単語。IT分野では、データベースや検索システムなどでデータを分割して複数の機器に分けて保管する仕組みなどを指すことが多い。データをシャードに分割して保管することを「シャーディング」(sharding)という。シャードによる分割を行うと、論理的には(アプリケーション側から見ると)単一のデータベースのように振る舞うが、実際には複数の物理的なサーバにデータが分散されて記録される。データベースの個々の断片がシャードである。
各シャードは同じテーブル構造を持ち、それぞれ異なるレコードを保管している(水平分割)。管理上、どのレコードがどのシャードに保管されているかを簡単に割り出せるようにする必要があるため、指定された列の値から計算により求めたハッシュ値でサーバを決定するといった手法が用いられる。
レコードごとにそれぞれのシャードを管理するサーバが応答するため、負荷分散を行うことができる。データが増大してもサーバを増やしていけば性能を向上することができる。サーバがダウンするとそのサーバにあったシャードにはアクセスできなくなるが、他のシャードは引き続き利用することができ、被害を局所化することができる。
(2023.10.6更新)