SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド

分析・集計処理の並列実行を複数の物理サーバーに拡張するには? アーキテクチャ2つのパターンを紹介

オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド 第5回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 この連載では、開発者の皆さまがシステム・アーキテクチャやアプリケーション・コードをより洗練させるのに役立つデータベース・マネジメント・システム(DBMS)の基本を振り返り、実装に合った技術の組み合わせを解説します。今回は、複数の物理サーバーのクラスタで1台を超える性能を達成するアーキテクチャとその課題を見ていきます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 第4回は分析・集計処理のような1つの処理が大量のデータにアクセスする場合によく使用される並列実行について扱いました。今回も分析・集計処理を高速化する技法を扱います。並列実行を、複数台の物理サーバーのCPUコアを使用する場合に拡張します。

 なお、本連載で例として挙げるデータベースはオラクルが提供しているものが多いですが、オラクル製品を使っていない方にも参考にしていただけるように解説していきます。

対象読者

 この連載では以下の読者を想定しています。

  • データ資産を活用する、新しいアプリケーションの構想や設計を担われる方
  • データ基盤の運用を担われている方や、今後検討される方
  • 新たに開発するアプリケーションの、最適なデータベースをお探しの方
  • 目的別データベースから、価値ある情報を素早く引き出す検討をされている方

並列実行を複数サーバーに拡張する

 複数台の物理サーバーで1つの階層を構成することを、一般的にクラスタ構成と呼びます。1つの処理を複数の物理サーバーで並列化するには、処理対象の全体のデータを何らかの方法で分割して各物理サーバーに分担させる必要があります。全体のデータを分割して各物理サーバーに割り当てるのは第3回でも説明したパーティショニングの概念そのものです。

複数台の物理サーバーにデータを分割して並列実行
複数台の物理サーバーにデータを分割して並列実行

 そしてパーティショニングされたデータの部分集合の処理量に大きなばらつきがあると、並列実行プロセス間の処理時間のばらつきも大きくなり、最も処理時間の長い並列実行プロセスの完了を待たないと全体としては処理が完了しないため、並列度を上げても全体の処理時間が短縮されないという問題があります。そのため、並列実行させる処理のデータへのアクセス・パターンを事前に把握し、それに適したパーティショニングを適用する必要があります。ある処理には適合したデータのパーティショニングであっても、別の処理に対してはあまり適切ではないということもあります。パーティショニングしたデータへのアクセスが硬直的なDBMSアーキテクチャであると、データへのアクセス・パターンの変化に適応するのが難しくなります。ストレージに格納されたデータのパーティショニングのやり直しは膨大な量のデータの移動が発生するので現実的ではない場合があります。

 各物理サーバーからデータ全体がどうアクセスされるかでクラスタのアーキテクチャを大別することができ、シェアード・ナッシング・クラスタ構成とシェアード・エブリシング・クラスタ構成があります。

シェアード・ナッシング・クラスタとシェアード・エブリシング・クラスタ
シェアード・ナッシング・クラスタとシェアード・エブリシング・クラスタ

次のページ
シェアード・ナッシング・クラスタ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド連載記事一覧

もっと読む

この記事の著者

日下部 明(日本オラクル株式会社)(クサカベ アキラ)

 日本オラクル株式会社でOracle Databaseを担当するエンジニア。主にOracle Real Application Clustersを中心とする高可用性構成や性能チューニングの問題解決およびコンサルティングに従事。著書に「これは使えるOracle新機能活用術」(翔泳社)。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15217 2021/11/24 18:03

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング