分12はじめに今回は,ImpalaにおけるI/Oの高速化技法について説明します。前回説明したように,Impalaの実行エンジンは可能な限りメモリ上で処理をすることでアドホッククエリのレイテンシを下げ,スループットを向上させる,という設計方針で開発されています。データはストレージ(二次記憶装置)に格納されているため,当然,ストレージへのI/Oを回避することはできません。Impalaは実行時に十分なメモリを確保するべく,データをメモリ上に保持(キャッシュ)しないため,クエリを実行するたびにデータをストレージから読み出すことを前提として設計されています(※1⁠)⁠。今回は,このようなユースケースを考慮しつつ,高速・高効率なアドホッククエリを実行するためのI/O処理方式とデータレイアウトについて解説します。※1)HDFSキャッシュの機能を使うことで,メモリ上によく使うデータなどを配置することは可能です。Readsは,HDFS経由のI/Oを高効率化する機能です。HBase(以後HBase)などでも使用されています。Readsを用いる場合においては,DataNodeをバイパスし,HDFSクライアントのプロセスが直接HDFSブロックを読み出します(※2⁠)⁠。この機能により,Impalaにおいて繰り返し実行されるI/O処理のフットプリントを削減することができるため,パフォーマンスの向上が見込めます。当該機能は,以前はOS上のファイルパスを受け渡すことにより実現されていましたが,セキュリティの観点から,現在はファイルディスクリプタを受け渡すことにより実現されています。Readsを実行することになります。metadataコマンドを実行することで更新できます。Managerについて説明します。Managerの特徴は大きく下記の2つです。I/O処理の先読みディスクごとの専用のスレッドを用いたI/O処理I/O処理の先読みクエリ処理においては,通常,当該処理に必要なレコードが必要になったときに初めてそのレコードの取得要求をディスクドライブなどに発行し,レコードの取得完了を待って,当該レコードを用いてCPU処理を行うという同期的な動作を繰り返して処理を進めていきます。このような方法では,CPUはI/Oの取得完了を待つ必要があり,また,二次記憶装置においてもCPUの入出力命令を待つ必要があるため,必ずしも効率的にCPUや二次記憶装置の性能を引き出すことができない場合があります。Managerにおいては,I/Oの先読みを行うことにより,当該問題の解決を図ります。先読みにおいては,クエリ処理に必要なデータの入出力発行命令を当該データが実際に必要となる前に発行しておきます。事前に読み出したデータはメモリ上のバッファに格納され,CPUは当該バッファ上にあるデータを用いて処理を行います。Managerはバッファにデータを格納した後,該当データを使用するCPUの処理を待たずに並行して実行されているほかのクエリなどの次のI/Oの処理を開始することが可能です。ManagerとCPUの関係ディスクごとの専用のスレッドを用いたI/O処理Impalaにおいては,ディスクドライブごとに専用のI/Oスレッドを用いて,I/O処理を行います。Managerは各ドライブごとのI/Oを精緻にスケジューリングしています。I/O著者プロフィール矢野智聡(やのともあき)日本オラクル株式会社を経て,2014年よりCloudera株式会社所属。Impala,HiveなどのSQLに関連するエコシステムを中心としてHadoopクラスタのサポートに従事。山田浩之(やまだひろゆき)日本アイ・ビー・エム株式会社を経て,ヤフー株式会社にて分散型全文検索エンジンの研究開発に従事。おいて高性能分散型検索エンジンの開発によりスーパークリエータに認定。高性能並列データ処理系の研究開発に従事。著書に『検索エンジン自作入門』。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。