支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


シャーディングについてご存じですか? シャーディングという単語は、破片を意味する英単語シャード(shard)に由来しています。 シャーディングは仮想通貨取引における大きな問題の1つ、スケーラビリティの問題を解決・改善する事への期待が高い技術として注目を集めています。 今回はIT業界におけるシャーディングとは何か、何ができるのかを簡潔にご紹介します。

シャーディングとは

シャーディングとはデータベースの負荷分散方法の1種で、水平分割とも呼ばれています。 同じテーブルを複数のデータベースに用意し、1つのテーブルに保存していたレコードを分散する事で各データベース内に保持されるレコードの量をへらす負荷分散の方法です。処理速度が遅いブロックチェーンなどにも使われていて今注目されている技術です。

メリット

1つのテーブル内のレコード数が大きくなる事で、低下していく処理速度を複数のデータベースに分け、1テーブル内のデータ量を減らし、1データベース内のデータ量も減らすことができます。 また、データベースのサーバーを分けることでCPUやメモリにかかる負荷も分散され更に、保存しているディスクを分ける事で保存する事が出来るデータの最大量を増やすことが可能です。

デメリット

シャーディングは、負荷が分散されとても便利な技術のように思えますが、やはりデメリットもあります。 このシャーディングによる分割作業では各シャードが独立した状態となり、それぞれ異なったハッシュパワーを持つようになります。それぞれハッシュパワーの強いシャードや弱いシャードが誕生してしまいその結果、現在のPoWアルゴリズムの場合だとハッシュパワーの強いシャードが弱いシャードに対して簡単に攻撃を仕掛ける事ができてしまいます。 そこで、シャーディングはセキュリティ性を維持させる為にPoSアルゴリズムへ変更する事を前提に設計されいます。 また、シャーディングを適切に行うためには、動作を完全に理解していることが必須です。一番処理に時間がかかっている動作は何なのか?正しい箇所をシャーディングしないことには、シャーディングの技術を活かしきれません。

テーブルシャーディングとは

テーブルシャーディングとは、同じデータベース内で同じカラム構成のテーブルを複数用意し分散の対象の値をテーブル名に入れる事で1テーブル内のデータ量を分散します。 この方法は、他テーブルとのJOIN等が出来る点が特徴ですが、データベース内の容量を分散する事はできなくなる為通常のデータベースシャーディングとテーブルシャーディングのどちらを使うかはしっかりと設計をしないといけません。

シャーディングの実用例

普段目にすることはありませんが、そもそもシャーディングとはどこに使われているのでしょうか?それは、仮想通貨の技術で有名なブロックチェーンなどに使われていますし、提供されているサービスもありますので、シャーディングの実用例をご紹介します。

仮想通貨

p>現在、シャーディングを実装した最初の仮想通貨として「アルトコインのZilliqa(ジリカ/ZIL)」が話題になっています。そのトランザクション処理能力はテスト段階でも脅威的な数値を叩き出しており、やはり、シャーディングは期待値が高いと言えます。 具体的には、ビットコインやイーサリアムなどの仮想通貨は、すべてのノードがすべての取引を処理するため、同じ計算を行っています。 その結果、処理が集中する事で、トランザクション速度が低下してしまうがシャーディングでは、ブロックチェーンネットワークをいくつかのシャードに分けて、検証作業を並列化して行う事で作業効率を向上させることができます。

提供されているサービス

シャーディングを活用される方へすでに提供されているサービスを一部ご紹介します。

Amazon RDS

Amazon RDSとは、その名称のとおりAWSのリレーショナル型のデータベースです。 Amazon RDSでは、データベースのインストールやバックアップなどのセットアップをしなくても、データベースが利用できる環境が提供されているため、契約後すぐにAWS上でデータベースを使用することができます。 またRDSは初期費用は必要なく、稼働させた分だけ料金が発生する従量課金のため、短期間の利用でも最低限の料金で利用できるのがメリットです。 また、「Amazon Aurora」「PostgreSQL」「MySQL」「MariaDB」「Oracle」「Microsoft SQL Server」と6種類のデータベースからシステムやスキルに合ったものを選択できます。

まとめ

いかがだったでしょうか。 シャーディングは、これからどのように技術開発が発展していくのか非常に注目度の高い技術です。 普段あまり聞かないシャーディングについてご紹介しましたが、より詳しく知りたい方はぜひご自身でも調べてみてください。