SlideShare uma empresa Scribd logo
1 de 68
Baixar para ler offline
BigDataを迎え撃つ!
PostgreSQL並列分散ミドルウェア「Stado」の
            紹介と検証報告


          アップタイム・テクノロジーズ

                           永安 悟史

                          2012/7/25

      Copyright 2012 Uptime Technologies, LLC. All rights reserved.
自己紹介
•   永安 悟史 (ながやす さとし)

•   略歴
    – 1997年よりインターネットベンチャーにてネットサービス開発・運用に従事。
    – 2004年より(株)NTTデータにて、並列分散データベースの研究開発、技術支援・保守
      サポート業務を経て、データセンタの新規サービス開発、運用チームの立ち上げ、
      サービス運用などに従事。
    – 2009年、アップタイム・テクノロジーズを創業。

•   専門分野
    – データベースシステム、並列分散システム、クラスタシステム
    – オープンソース・インフラ技術
    – ITサービスマネジメント(ITIL)、ITインフラ運用管理(運用設計~運用)

•   アップタイム・テクノロジーズ@本業
    – オープンソース導入サポートサービス
    – データベース・コンサルティング
    – ITサービスマネジメント・コンサルティング


               Copyright 2012 Uptime Technologies, LLC. All rights reserved.
アップタイム・テクノロジーズについて
•   オープンソース導入サポートサービスの提供
     –   各種OSS(ミドルウェア、ツールなど)についての調査・情報提供
     –   設計(基盤~アプリ)、開発の支援
     –   機能検証・性能見積もり支援(機能検証、性能検証)、試験設計支援
     –   OSSコミュニティエスカレーション、等


•   セミナ、トレーニングの提供
     – 「PostgreSQLパフォーマンスチューニング入門」(7/27)
     – 「LifeKeeper for Linuxで構築・運用する高可用PostgreSQLシステム」


•   コンテンツのオンライン販売
     – PostgreSQLアーキテクチャ入門(自習用教材)
     – OSDL DBT-3によるPostgreSQLの性能評価~SATA HDD&SATA SSD編 (技術検
       証レポート)

    詳細は http://www.uptime.jp をご覧ください。



                    Copyright 2012 Uptime Technologies, LLC. All rights reserved.
アジェンダ
1. Stado概要

2. Stado導入方法

3. Stado検証結果
                                             “stado” はポーランド語で「群れ」を意味しています




             Copyright 2012 Uptime Technologies, LLC. All rights reserved.
1. Stado概要




Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado




      https://launchpad.net/stado
Copyright 2012 Uptime Technologies, LLC. All rights reserved.
“Stado”とは何か?
• PostgreSQLで利用できるMPPミドルウェア
  – MPP: Massive Parallel Processing、超並列処理


• GridSQLの後継であり、長い技術の蓄積
  – ExtenDB(2003)、GridSQL@EnterpriseDB(2007)


• 「シェアードナッシング」方式の分散データアーキテクチャ
  – コモディティサーバのパフォーマンスをレバレッジさせる。
  – アプリケーションに対して単一のデータベースに見せる。


• 基本事項…
  – オープンソース
  – BI/DWHデータベース(Greenplum、NetezzaやTeradataのような)

               Copyright 2012 Uptime Technologies, LLC. All rights reserved.
“Stado”とは何か? (2)
• パラレルクエリを実行するための設計
 – 伝統的なスタースキーマを対象とする


• 読み取りだけではなく、UPDATEやDELETEも実行可

• パラレルローディングのためのデータローダ
 – バルクローディング


• PostgreSQL互換のコネクタを使って標準的な接続が可能
 – JDBC, ODBC, ADO.NET, libpq(psql)




               Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stadoは何 “ではない” か?
• SlonyやBucardoのようなレプリケーションではない

• PostgreSQL 9.1の同期レプリケーションのような高可用の
  ためのソリューションでもない

• Postgres-XCのようなスケーラブルなトランザクションソ
  リューションでもない

• “Elastic” で “Eventually consistent” なNoSQLデータベース
  でもない




              Copyright 2012 Uptime Technologies, LLC. All rights reserved.
アーキテクチャ
•   祖結合なシェアードナッシング                                  Applications
    アーキテクチャ

•   Stadoプロセス
    – 中央のコーディネータ                                  Coordinator
    – データノートのエージェント


•   データレポジトリ
    – メタデータデータベース                                 Data Nodes
    – Stado(ユーザ)データベース




                                                  ETL



                Copyright 2012 Uptime Technologies, LLC. All rights reserved.
構成
• 単一の物理サーバに対して、複数の論理ノードを設定可能
 – マルチコアプロセッサの性能を活用する


• テーブルは、レプリケーションか、パーティショニング
 – パーティションテーブルは大規模なファクトテーブル
 – 単一のファクトテーブルと複数のディメンションテーブル




         Copyright 2012 Uptime Technologies, LLC. All rights reserved.
パーティショニング
• StadoのパーティショニングとPostgreSQLのCE(Constraint
  Exclusion)パーティショニングを同時に利用可能
   – (CEの)サブテーブルを使うことによって、大規模なクエリはより小さ
     なデータをスキャンする
   – 各サブテーブルがノードをまたいで分割されているので、並列にス
     キャンされる


• パーティションの種類
   – Stadoはハッシュパーティションを提供
   – CEはレンジパーティションを提供


• “Making things smaller, making things faster.”
   – テーブルやインデックスを小さく保つことで高速化する


                Copyright 2012 Uptime Technologies, LLC. All rights reserved.
スタースキーマ
 • ひとつのファクトテーブル(トランザクション情報)と、複数の
   ディメンション(マスター)テーブルで構成されるスキーマ
               customer                                                                part
                                 orders
                c_custkey                                                               p_partkey
                                   o_orderkey
                c_name                                                                  p_name
                c_address          o_custkey                                            p_mfgr
                c_nationkey        o_orderstatus           lineitem                     p_brand
                c_phone            o_totalprice                                         p_type
                                                            l_orderkey                                  partsupp
                c_acctbal          o_orderdate                                          p_size
                                   o_orderpriority          l_linenumber                p_container      ps_partkey
                c_mktsegment
                c_comment          o_clerk                  l_partkey                   p_retailprice    ps_suppkey
                                   o_shippriority           l_suppkey                   p_comment        ps_availqty
nation                             o_comment                l_quantity                                   ps_supplycost
                                                            l_extendedprice                              ps_comment
 n_nationkey                                                                           supplier
                                                            l_discount
 n_name                                                     l_tax                       s_suppkey
 n_regionkey                                                l_returnflag
 n_comment                                                  l_linestatus                s_name
                                                            l_shipdate                  s_address
                                                            l_commitdate                s_nationkey
region
                                                            l_receiptdate               s_phone
 r_regionkey                                                l_shipinstruct              s_acctbal
                                                            l_shipmode                  s_comment
 r_name
 r_comment                                                  l_comment


                               Copyright 2012 Uptime Technologies, LLC. All rights reserved.
テーブルの作成
• テーブルはレプリケーションかパーティショニングされる
 – DDLで何も指定しないと、主キーで分割されるパーティションテーブ
   ルになる




         Copyright 2012 Uptime Technologies, LLC. All rights reserved.
クエリオプティマイザ
• コストベースのオプティマイザ
 – もっともコストが高いのがRow Shipping


• レプリケーションテーブルとのJOIN(結合)を探す
 – レプリケーションテーブルとのJOINはノード内で処理可能
 – パーティションキーを使ったJOINを探す
 – 複数のテーブル(ordersとlineitemなど)を単一のパーティションキー
   (orderkey)を使って分割すると、同じキーのレコードが同一パーティ
   ションにあることが担保される
 – 異なるキーで複数のテーブルをパーティションすると、JOIN時にRow
   Shippingが発生する(サイズによっては非常に時間がかかる)




           Copyright 2012 Uptime Technologies, LLC. All rights reserved.
2段階の集約処理
• SUM
  – SUM(stat1)
  – SUM2(SUM(stat1))


• AVG
  – SUM(stat1)/COUNT(stat1)
  – SUM2(SUM(stat1))/SUM2(COUNT(stat1))




               Copyright 2012 Uptime Technologies, LLC. All rights reserved.
SQL上の制約
• 独自のパーサおよびオプティマイザを使用しているため
 –   ウィンドウ関数が使えない
 –   ストアドプロシージャが使えない
 –   全文検索が使えない
 –   Geo-Spatialサポートが使えない




             Copyright 2012 Uptime Technologies, LLC. All rights reserved.
トランザクションパフォーマンス
• 行のINSERT、UPDATE、DELETEは、単体のPostgreSQL
  と比較すると遅い
  – データがネットワーク上を余分に行き来する必要があるため
  – パーティションテーブルの行は、適切なノードに割り振るためにハッ
    シュ化される必要がある
  – レプリケーションテーブルの行はすべてのノードでコミットされる必要
    がある


• パフォーマンスを上げるためには “gs-loader” を使ってバル
  クロードする




           Copyright 2012 Uptime Technologies, LLC. All rights reserved.
高可用性
• ハートビートやフェイルオーバーの制御はコーディネータに
  は無い
 – 各PostgreSQLノードの高可用性は、それぞれ個別に設定される必
   要がある
 – この目的にストリーミングレプリケーションを利用可能


• Stadoデータベース全体の一貫性のあるバックアップの取得
  は難しい
 – トランザクションが実行されていないことを担保する必要がある
 – 各ノードを個別にバックアップする必要がある




         Copyright 2012 Uptime Technologies, LLC. All rights reserved.
ノードの追加
• ダウンタイムが必要
 – データは手動で新しいノードにリロードされる必要がある


• 設計によっては、データの再配置を排してより迅速にできる
 – 最初に多数のパーティションに分割しておく
 – 最初に複数のインスタンスを物理サーバで動作させておき、必要に
   応じて新しいハードウェアに移動させる




         Copyright 2012 Uptime Technologies, LLC. All rights reserved.
2. Stado導入手順




Copyright 2012 Uptime Technologies, LLC. All rights reserved.
前提条件
• Stadoは以下の環境で動作します
 – PostgreSQL 9.1以降
 – JDK 6以降


• リリース版ではなくリポジトリの最新版を使うことを推奨
 – 現在、頻繁にバグfix等が行われているため




             Copyright 2012 Uptime Technologies, LLC. All rights reserved.
ドキュメント類
• Stadoに同梱されているドキュメント類
 –   Stado Administration Guide (対訳済み)
 –   Stado Import and Export Utilities (一部対訳済み)
 –   Stado Planning Guide
 –   Stado SQL Reference



上記の対訳版ドキュメントは以下のURLで公開しています。
http://www.uptime.jp/go/stado




                Copyright 2012 Uptime Technologies, LLC. All rights reserved.
導入手順
•   ステップ1
    –   OSアカウントの作成、セットアップ
    –   ネットワーク関連のセットアップ
    –   OSのチューニング
    –   JDK、PostgreSQLのインストールとコンフィグ設定

•   ステップ2
    –   Stadoのインストールとコンフィグ設定
    –   各PostgreSQLノード管理ユーザ(stado)の作成
    –   Stado管理/接続ユーザの作成(admin)とメタデータベース作成
    –   コーディネータの起動
    –   エージェントの起動

•   ステップ3
    – ユーザデータベースの作成
    – テーブルの作成
    – データのロード
                 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
導入手順 – STEP2
•   Stadoのインストールとコンフィグ設定
    – コーディネータ設定:stado.config
    – エージェント設定:stado_agent.config


•   各PostgreSQLノード管理ユーザ(stado)の作成
    – createuserコマンド


•   Stado管理/接続ユーザの作成(admin)とメタデータベース作成
    – gs-createmdbコマンド


•   コーディネータの起動
    – gs-serverコマンド


•   エージェントの起動
    – gs-agentコマンド

                 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
stado.config
•   全ノードおよびコーディネータの設定を行う設定ファイル




            Copyright 2012 Uptime Technologies, LLC. All rights reserved.
stado_agent.config
•   コーディネータへの接続とロギングの設定を行う設定ファイル




            Copyright 2012 Uptime Technologies, LLC. All rights reserved.
XDBSYSメタデータベース
•   ノードやスキーマ、ユーザ情報等を保持するメタデータベース




            Copyright 2012 Uptime Technologies, LLC. All rights reserved.
導入手順 – STEP3
• ユーザデータベースの作成
 – gs-createdbコマンド


• テーブルの作成
 – psqlコマンド、またはgs-cmdlineコマンド


• データのロード
 – psql、アプリケーション、またはgs-loaderコマンド




             Copyright 2012 Uptime Technologies, LLC. All rights reserved.
ユーザデータベース
•   gs-createdbコマンドで作成し、gs-cmdlineコマンドで状態を参照
    – 通常のクエリ実行はpsqlコマンドから実行可能




               Copyright 2012 Uptime Technologies, LLC. All rights reserved.
ユーザデータベース (2)
•   物理的なデータベースは “__(DB名)__N(パーティション番号)” という
    データベース名で作成される




              Copyright 2012 Uptime Technologies, LLC. All rights reserved.
ユーザテーブル
•   gs-cmdlineコマンドでパーティション情報を確認
    – パーティションカラムがあるテーブルはパーティションテーブル




              Copyright 2012 Uptime Technologies, LLC. All rights reserved.
データローディング
•   gs-loaderコマンドを使って、フラットファイル(CSV、タブ区切りなど)から
    パラレルロードする




              Copyright 2012 Uptime Technologies, LLC. All rights reserved.
実行プランの取得
•   EXPLAINコマンドで取得可能
    – 出力は通常のPostgreSQLのものと異なる。




              Copyright 2012 Uptime Technologies, LLC. All rights reserved.
管理コマンド
•   gs-agent.sh            エージェント起動コマンド
•   gs-cmdline.sh          Stado管理用コマンドラインツール
•   gs-createdb.sh         ユーザデータベースを作成
•   gs-createmddb.sh       メタデータベースを作成
•   gs-dbstart.sh          ユーザデータベースをオンラインに変更
•   gs-dbstop.sh           ユーザデータベースをオフラインに変更
•   gs-dropdb.sh           ユーザデータベースを削除
•   gs-execdb.sh
•   gs-impex.sh
•   gs-loader.sh           ユーザデータベースにデータをロード
•   gs-server.sh           コーディネータを起動
•   gs-shutdown.sh         コーディネータを停止

    (“gs-” と付いているのはGridSQL時代の名残りの模様)

                   Copyright 2012 Uptime Technologies, LLC. All rights reserved.
3. Stado検証結果




Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado Cluster #1
• Amazon EC2 Small Instances(m1.small)
   –   APAC/Tokyo Region
   –   1.7 GB Memory
   –   1 ECU(1 ECU × 1 Virtual Core)
   –   160 GB Instance Storage
   –   32-bit platform
   –   I/O Performance: Moderate


• Additional EBS Storages for PostgreSQL database
  cluster
• Up to 8 instances



                  Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado Cluster #1

 stado01

              stado02    stado03           stado04            stado05           stado06       stado07    stado08



Coordinator


  Agent        Agent      Agent              Agent             Agent              Agent        Agent      Agent

 Postgres     Postgres   Postgres         Postgres           Postgres           Postgres      Postgres   Postgres


  testdb1

       testdb2

                    testdb4

                                                      testdb8

                              Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado Cluster #1




Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado Cluster #2
• NEC Express5800/GT110b
  – Intel Xeon X3440 2.53GHz (Quad Core / 8 threads)
  – Unbeffered ECC 16GB RAM
  – HGST Deskstar 1TB 7200rpm (SATA 3Gbps) * 4




                Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado Cluster #2
• Multiple spindles to take advantage of multi-core
  processor even within a single server.
   – Multiple tablespaces are assigned to each dedicated disk.

                            Coordinator

                                 Agent


             Postgres

                            tblspc1            tblspc2            tblspc3
              testdb1

                   testdb2

                                      testdb4




                  Copyright 2012 Uptime Technologies, LLC. All rights reserved.
DBT-3 Schema
• Scale factor “10”
       – >25GB, including its indexes.

Table Name    Purpose               # of Records                                        Size Partition Key
customer      顧客マスタ                          1,500,000                     289,046,528 c_custkey
lineitem      注文明細                         59,986,052                   8,727,838,720 l_orderkey
nation        国名マスタ                                     25                              8,192      -
orders        注文                           15,000,000                   2,074,853,376 o_orderkey
part          部品マスタ                          2,000,000                     332,816,384 p_partkey
partsupp      部品詳細マスタ                        8,000,000                  1,400,143,872 ps_partkey
region        地域マスタ                                       5                             8,192      -
supplier      販売業者マスタ                           100,000                      17,858,560            -




                        Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado Test #1
• Data Loading / データロード

• Creating indexes / インデックス作成

• Aggregation (count, sum) / 集約(count, sum)

• Aggregation + GROUP BY (daily basis, country basis) /
  集約+GROUP BY (日別売上、国別売上)

• JOIN (local) / 結合(ノード内)

• JOIN (cross-node) / 結合(ノード間)
               Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Summary – Cluster #1

                                                                   Stado Performance Comparison
                                                                         (Stado Cluster #1)

                           3.50


                           3.00
(compared to standalone)




                           2.50
    Execution Time




                                                                                                                                     Standalone
                           2.00                                                                                                      1-node
                                                                                                                                     2-nodes
                           1.50                                                                                                      4-nodes
                                                                                                                                     8-nodes

                           1.00


                           0.50


                           0.00
                                  Loading   Building          Query 1          Query 2          Query 3          Query 4   Query 5
                                  Tables    Indexes
                                                                           Workload Type

                                                       Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Summary – Cluster #2

                                                                   Stado Performance Comparison
                                                                         (Stado Cluster #2)

                           1.20


                           1.00
(compared to standalone)




                           0.80
    Execution Time




                                                                                                                                    Standalone
                                                                                                                                    1-disk
                           0.60
                                                                                                                                    2-disks
                                                                                                                                    4-disks
                           0.40


                           0.20


                           0.00
                                  Loading   Building          Query 1          Query 2          Query 3         Query 4   Query 5
                                  Tables    Indexes
                                                                           Workload Type

                                                       Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Loading Tables
• Loading tables did not take advantage of the cluster.
                            – Loading 8 tables using gs-loader (for Stado) or psql (for
                              Standalone)
                            – Parallel loading seems like highly CPU intensive task.
                                  Stado Performance Comparison                                                            Stado Performance Comparison
                                        (Stado Cluster #1)                                                                      (Stado Cluster #2)

                           3.50                                                                                    1.20

                           3.00                                                                                    1.00
(compared to standalone)




                                                                                        (compared to standalone)
                           2.50
                                                                       Standalone                                  0.80




                                                                                            Execution Time
    Execution Time




                                                                                                                                                         Standalone
                           2.00                                        1-node
                                                                                                                                                         1-disk
                                                                       2-nodes                                     0.60
                                                                                                                                                         2-disks
                           1.50                                        4-nodes
                                                                                                                                                         4-disks
                                                                       8-nodes                                     0.40
                           1.00

                                                                                                                   0.20
                           0.50

                           0.00                                                                                    0.00
                                        Loading Tables                                                                          Loading Tables
                                        Workload Type                                                                           Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Building Indexes
• Building indexes could benefit by adding servers and/or
  spindles.
                            – Elapsed time shows linear scalability as adding nodes.

                                  Stado Performance Comparison                                                             Stado Performance Comparison
                                        (Stado Cluster #1)                                                                       (Stado Cluster #2)

                           1.20                                                                                     1.20


                           1.00                                                                                     1.00
(compared to standalone)




                                                                                         (compared to standalone)
                           0.80                                         Standalone                                  0.80
    Execution Time




                                                                                             Execution Time
                                                                                                                                                          Standalone
                                                                        1-node
                                                                                                                                                          1-disk
                           0.60                                         2-nodes                                     0.60
                                                                                                                                                          2-disks
                                                                        4-nodes
                                                                                                                                                          4-disks
                           0.40                                         8-nodes                                     0.40


                           0.20                                                                                     0.20


                           0.00                                                                                     0.00
                                       Building Indexes                                                                         Building Indexes
                                        Workload Type                                                                            Workload Type


                                                      Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Aggregation (Query 1, 2)
• Simple scan and aggregation can take advantage of the
  cluster.
                            – Executing SUM() and COUNT() on “orders” table.

                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.20                                                                                   1.20


                           1.00                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           0.80                                        Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           0.60                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                                                                                                                                                        4-disks
                           0.40                                        8-nodes                                    0.40


                           0.20                                                                                   0.20


                           0.00                                                                                   0.00
                                           Query 1                                                                                Query 1
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Aggregation + GROUP BY (Query 3)
• “Aggregation + GROUP BY” as well.



                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.20                                                                                   1.20


                           1.00                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           0.80                                        Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           0.60                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                                                                                                                                                        4-disks
                           0.40                                        8-nodes                                    0.40


                           0.20                                                                                   0.20


                           0.00                                                                                   0.00
                                           Query 3                                                                                Query 3
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
JOIN (local) (Query 4)
• “Local Join” between partitioned tables with using a
  partition key could scale.
                            – “orders” and “lineitem” are joined with “orderkey”.
                            – More CPU power needed.
                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           2.50                                                                                   1.20


                                                                                                                  1.00
                           2.00
(compared to standalone)




                                                                                       (compared to standalone)
                                                                       Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                           1.50                                                                                                                         Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                                                                       2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                           1.00                                                                                                                         4-disks
                                                                       8-nodes                                    0.40

                           0.50
                                                                                                                  0.20


                           0.00                                                                                   0.00
                                           Query 4                                                                                Query 4
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
JOIN (cross-node) (Query 5)
• “Cross-node Join” may not be able to scale.
                            – Particularly, large “Cross-node Join” must be critical for SQL
                              performance.


                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           2.50                                                                                   1.20


                                                                                                                  1.00
                           2.00
(compared to standalone)




                                                                                       (compared to standalone)
                                                                       Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                           1.50                                                                                                                         Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                                                                       2-nodes                                    0.60
                                                                                                                                                        2-disks
                           1.00                                        4-nodes
                                                                                                                                                        4-disks
                                                                       8-nodes                                    0.40

                           0.50
                                                                                                                  0.20


                           0.00                                                                                   0.00
                                           Query 5                                                                                Query 5
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Behind the scene: “cross-node” join
•   Collect all rows (Row Shipping) from the entire
    cluster into temp table.                                                                      Node #1
•   Process a JOIN which can be done within the
    node.                                                                                       customer (1)
•   Process a JOIN against the temp table.                                           JOIN (1)     orders (1)

                                                                                                 lineitem (1)
•   Row Shipping is very expensive!
                                                                               JOIN (2)             temp

                                                                             Row Shipping

                                               Node #2                    Node #3                Node #4

                                            customer (2)               customer (3)             customer (4)

                                              orders (2)                  orders (3)             orders (4)

                                             lineitem (2)                lineitem (3)           lineitem (4)

                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Resource usage: “cross-node” join




                 http://www2.uptimeforce.com/pgstatview2/20b267567a8f134b970070cc1a212a05/
     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Stado Test #2
• DBT-3 Queries
  – Q1 - Aggregations on a single partitioned table.
  – Q2 - Joining two partitioned tables with a partition key, and also
    joining dimension tables.
  – Q4 - Joining two partitioned tables with a partition key, and
    aggregation.
  – Q6 - Aggregations on a single partitioned table, and aggregation.
  – Q11 - Joining a partitioned table and dimension tables, and
    aggregation.
  – Q12 - Joining two partitioned table, and aggregation.
  – Q16 - Joining two partitioned tables with a partition key, also
    joining dimension tables, and aggregation.




                  Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Summary – Cluster #1
                                                       Stado Performance Comparison
                                                             (Stado Cluster #1)

                            2

                           1.8

                           1.6

                           1.4
(compared to standalone)
    Execution Time




                           1.2                                                                                    Standalone
                                                                                                                  1-node
                            1                                                                                     2-nodes
                                                                                                                  4-nodes
                           0.8                                                                                    8-nodes

                           0.6

                           0.4

                           0.2

                            0
                                 Q1   Q2            Q4               Q6              Q11              Q12   Q16
                                                               Workload Type

                                           Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Summary – Cluster #2
                                                        Stado Performance Comparison
                                                              (Stado Cluster #2)

                           1.40


                           1.20


                           1.00
(compared to standalone)
    Execution Time




                           0.80                                                                                    Standalone
                                                                                                                   1-disk
                                                                                                                   2-disks
                           0.60                                                                                    4-disks


                           0.40


                           0.20


                           0.00
                                  Q1   Q2             Q4              Q6              Q11              Q12   Q16
                                                                Workload Type


                                            Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Q1
• Simple aggregation with conditional scan on a
  partitioned table, “lineitem”.


                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.20                                                                                   1.20


                           1.00                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           0.80                                        Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           0.60                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                                                                                                                                                        4-disks
                           0.40                                        8-nodes                                    0.40


                           0.20                                                                                   0.20


                           0.00                                                                                   0.00
                                             Q1                                                                                     Q1
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Q2
• Joining partitioned talbes, “partsupp” and “partsupp”,
  with a partition key, and dimension tables.
                            – But, the 1-node and 8-node AWS clusters shown some strange
                              behaviors.
                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           3.00                                                                                   1.20


                           2.50                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           2.00                                        Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           1.50                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                                                                                                                                                        4-disks
                           1.00                                        8-nodes                                    0.40


                           0.50                                                                                   0.20


                           0.00                                                                                   0.00
                                             Q2                                                                                     Q2
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Q4
• Joining two partitioned tables, “orders” and “lineitem”,
  with a partition key “orderkey”.
                            – Q4 failed to complete on the AWS cluster.
                            – Q4 was much faster even with 1-disk on the single server.
                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.00                                                                                   1.20
                           0.90
                                                                                                                  1.00
                           0.80
(compared to standalone)




                                                                                       (compared to standalone)
                           0.70
                                                                       Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                           0.60                                                                                                                         Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           0.50                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                           0.40                                        4-nodes
                                                                                                                                                        4-disks
                                                                       8-nodes                                    0.40
                           0.30
                           0.20
                                                                                                                  0.20
                           0.10
                           0.00                                                                                   0.00
                                             Q4                                                                                     Q4
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Q6
• Simple conditional scan on a partitioned table,“lineitem”.



                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.20                                                                                   1.20


                           1.00                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           0.80                                        Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           0.60                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                                                                                                                                                        4-disks
                           0.40                                        8-nodes                                    0.40


                           0.20                                                                                   0.20


                           0.00                                                                                   0.00
                                             Q6                                                                                     Q6
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Q11
• Joining a partitioned table and dimension tables,
  “partsupp”, “supplier” and “nation”, with aggregation and
  sort.

                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.20                                                                                   1.20


                           1.00                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           0.80                                        Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           0.60                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                                                                                                                                                        4-disks
                           0.40                                        8-nodes                                    0.40


                           0.20                                                                                   0.20


                           0.00                                                                                   0.00
                                             Q11                                                                                    Q11
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Q12
• Joining two partitioned tables, “orders” and “lineitem”,
  with aggregation and sort.


                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.20                                                                                   1.20


                           1.00                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           0.80                                        Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                                                                       1-node
                                                                                                                                                        1-disk
                           0.60                                        2-nodes                                    0.60
                                                                                                                                                        2-disks
                                                                       4-nodes
                                                                                                                                                        4-disks
                           0.40                                        8-nodes                                    0.40


                           0.20                                                                                   0.20


                           0.00                                                                                   0.00
                                             Q12                                                                                    Q12
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Q16
• Joining another two partitioned tables, “part” and
  “partsupp”, with aggregation and sort.


                                  Stado Performance Comparison                                                           Stado Performance Comparison
                                        (Stado Cluster #1)                                                                     (Stado Cluster #2)

                           1.40                                                                                   1.20

                           1.20                                                                                   1.00
(compared to standalone)




                                                                                       (compared to standalone)
                           1.00
                                                                       Standalone                                 0.80
    Execution Time




                                                                                           Execution Time
                                                                                                                                                        Standalone
                           0.80                                        1-node
                                                                                                                                                        1-disk
                                                                       2-nodes                                    0.60
                                                                                                                                                        2-disks
                           0.60                                        4-nodes
                                                                                                                                                        4-disks
                                                                       8-nodes                                    0.40
                           0.40

                           0.20                                                                                   0.20


                           0.00                                                                                   0.00
                                             Q16                                                                                    Q16
                                        Workload Type                                                                          Workload Type


                                                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
その他
•   SQLの互換性はほぼ問題なし
    – DBT-3のクエリ22本はほとんどそのままの形で実行可能
    – 一部、明示的な型キャストや優先度の指定が必要(parse errorなどが発生)

•   statement_timeout相当の処理がStadoには無いので注意
    – SET statement_timeout コマンドを送れない
    – Row Shipping中(COPYコマンド中)にはpostgresql.confの
      statement_timeoutも効かなかった(調査中)

•   EXPLAINは、Row Shippingの発生および量を明確には教えてくれない
    ので、頭の中で理解しておく
    – “Even though, EXPLAIN is still your friend.”

•   今後の課題
    – ログ出力の強化、改善
    – 管理コマンドの強化(パーティションの再配置等)
    – ドキュメントの強化

                     Copyright 2012 Uptime Technologies, LLC. All rights reserved.
まとめ
• Stadoはクエリのパフォーマンスを大きくに向上させます
 – リーズナブルな手段、リーズナブルな方法で


• Stadoはノードの追加に応じてスケールします
 – サーバだけではなく、複数ディスク+マルチコアCPUもアリ


• Stadoはオープンソースなので、制限が問題になるようであ
  れば、レポートやパッチを送りましょう
 – 開発メンバーはとてもフランクで、bug fixも迅速です


• Stadoを使ってみたいと思った方、ぜひ情報交換しましょう!



          Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Special Thanks




      Mason Sharp

   Jim Mlodgenski

Andrei Martsinchyk



Copyright 2012 Uptime Technologies, LLC. All rights reserved.
Questions?


        Satoshi Nagayasu
        snaga@uptime.jp



Copyright 2012 Uptime Technologies, LLC. All rights reserved.
【お問い合わせ先】
アップタイム・テクノロジーズ合同会社
永安 悟史
E-mail: snaga@uptime.jp
Web: http://www.uptime.jp/

                  Copyright 2012 Uptime Technologies, LLC. All rights reserved.

Mais conteúdo relacionado

Mais procurados

まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)Uptime Technologies LLC (JP)
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会Shigeru Hanada
 
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介Insight Technology, Inc.
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaShigeru Hanada
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)kasaharatt
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会Shigeru Hanada
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールMasahiko Sawada
 
PostgreSQL運用管理入門
PostgreSQL運用管理入門PostgreSQL運用管理入門
PostgreSQL運用管理入門Yoshiyuki Asaba
 
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるPL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるUptime Technologies LLC (JP)
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料Chika SATO
 
OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~Shigeru Hanada
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Toshi Harada
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota WatabeInsight Technology, Inc.
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)Chika SATO
 

Mais procurados (20)

まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
 
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
 
PostgreSQL運用管理入門
PostgreSQL運用管理入門PostgreSQL運用管理入門
PostgreSQL運用管理入門
 
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるPL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみる
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料
 
OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
 
Postgres Toolkitのご紹介
Postgres Toolkitのご紹介Postgres Toolkitのご紹介
Postgres Toolkitのご紹介
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)
 

Destaque

PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介Masao Fujii
 
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...Insight Technology, Inc.
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/ProxyPeter Eisentraut
 
pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法Uptime Technologies LLC (JP)
 
Uptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビューUptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビューUptime Technologies LLC (JP)
 
Windows7でもchefしたい!
Windows7でもchefしたい!Windows7でもchefしたい!
Windows7でもchefしたい!Tamie YAMAMOTO
 
dashDB & R によるデータ分析 - In database Analytics 基礎編 -
dashDB & R によるデータ分析 - In database Analytics 基礎編 -dashDB & R によるデータ分析 - In database Analytics 基礎編 -
dashDB & R によるデータ分析 - In database Analytics 基礎編 -IBM Analytics Japan
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方Kosuke Kida
 
【2017年1月時点】モバイル音声を活用した BI Ask デモ
【2017年1月時点】モバイル音声を活用した BI Ask デモ【2017年1月時点】モバイル音声を活用した BI Ask デモ
【2017年1月時点】モバイル音声を活用した BI Ask デモオラクルエンジニア通信
 
OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料Chika SATO
 
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari KatsumataInsight Technology, Inc.
 
Cloud on the_beach_aws入門_公開
Cloud on the_beach_aws入門_公開Cloud on the_beach_aws入門_公開
Cloud on the_beach_aws入門_公開Hideki Ojima
 
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)Chika SATO
 
ディープボルツマンマシン入門
ディープボルツマンマシン入門ディープボルツマンマシン入門
ディープボルツマンマシン入門Saya Katafuchi
 
SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。yoyamasaki
 

Destaque (17)

PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
Postgres Toolkit
Postgres ToolkitPostgres Toolkit
Postgres Toolkit
 
Hadoop1
Hadoop1Hadoop1
Hadoop1
 
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
C14 Greenplum Database Technology - Large Scale-out and Next generation Analy...
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
 
pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法
 
Uptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビューUptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビュー
 
Windows7でもchefしたい!
Windows7でもchefしたい!Windows7でもchefしたい!
Windows7でもchefしたい!
 
dashDB & R によるデータ分析 - In database Analytics 基礎編 -
dashDB & R によるデータ分析 - In database Analytics 基礎編 -dashDB & R によるデータ分析 - In database Analytics 基礎編 -
dashDB & R によるデータ分析 - In database Analytics 基礎編 -
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方
 
【2017年1月時点】モバイル音声を活用した BI Ask デモ
【2017年1月時点】モバイル音声を活用した BI Ask デモ【2017年1月時点】モバイル音声を活用した BI Ask デモ
【2017年1月時点】モバイル音声を活用した BI Ask デモ
 
OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料
 
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
 
Cloud on the_beach_aws入門_公開
Cloud on the_beach_aws入門_公開Cloud on the_beach_aws入門_公開
Cloud on the_beach_aws入門_公開
 
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
 
ディープボルツマンマシン入門
ディープボルツマンマシン入門ディープボルツマンマシン入門
ディープボルツマンマシン入門
 
SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。
 

Semelhante a BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告

[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎Insight Technology, Inc.
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoTreasure Data, Inc.
 
20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会Takahiro Iwase
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネスMie Mori
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報dstn
 
GMOメディア RHEV-S-事例紹介
GMOメディア RHEV-S-事例紹介GMOメディア RHEV-S-事例紹介
GMOメディア RHEV-S-事例紹介Dai Utsui
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdTaisuke Yamada
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展Recruit Technologies
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best PracticeHadoop / Spark Conference Japan
 
Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Yukinori Suda
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめMikiya Okuno
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with SymfonyAtsuhiro Kubo
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for SmalltalkSho Yoshida
 
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...Insight Technology, Inc.
 

Semelhante a BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告 (20)

[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
 
GMOメディア RHEV-S-事例紹介
GMOメディア RHEV-S-事例紹介GMOメディア RHEV-S-事例紹介
GMOメディア RHEV-S-事例紹介
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
 
Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with Symfony
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
Hadoopカンファレンス2013
Hadoopカンファレンス2013Hadoopカンファレンス2013
Hadoopカンファレンス2013
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
 
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
 

Último

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告

  • 1. BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の 紹介と検証報告 アップタイム・テクノロジーズ 永安 悟史 2012/7/25 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 2. 自己紹介 • 永安 悟史 (ながやす さとし) • 略歴 – 1997年よりインターネットベンチャーにてネットサービス開発・運用に従事。 – 2004年より(株)NTTデータにて、並列分散データベースの研究開発、技術支援・保守 サポート業務を経て、データセンタの新規サービス開発、運用チームの立ち上げ、 サービス運用などに従事。 – 2009年、アップタイム・テクノロジーズを創業。 • 専門分野 – データベースシステム、並列分散システム、クラスタシステム – オープンソース・インフラ技術 – ITサービスマネジメント(ITIL)、ITインフラ運用管理(運用設計~運用) • アップタイム・テクノロジーズ@本業 – オープンソース導入サポートサービス – データベース・コンサルティング – ITサービスマネジメント・コンサルティング Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 3. アップタイム・テクノロジーズについて • オープンソース導入サポートサービスの提供 – 各種OSS(ミドルウェア、ツールなど)についての調査・情報提供 – 設計(基盤~アプリ)、開発の支援 – 機能検証・性能見積もり支援(機能検証、性能検証)、試験設計支援 – OSSコミュニティエスカレーション、等 • セミナ、トレーニングの提供 – 「PostgreSQLパフォーマンスチューニング入門」(7/27) – 「LifeKeeper for Linuxで構築・運用する高可用PostgreSQLシステム」 • コンテンツのオンライン販売 – PostgreSQLアーキテクチャ入門(自習用教材) – OSDL DBT-3によるPostgreSQLの性能評価~SATA HDD&SATA SSD編 (技術検 証レポート) 詳細は http://www.uptime.jp をご覧ください。 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 4. アジェンダ 1. Stado概要 2. Stado導入方法 3. Stado検証結果 “stado” はポーランド語で「群れ」を意味しています Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 5. 1. Stado概要 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 6. Stado https://launchpad.net/stado Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 7. “Stado”とは何か? • PostgreSQLで利用できるMPPミドルウェア – MPP: Massive Parallel Processing、超並列処理 • GridSQLの後継であり、長い技術の蓄積 – ExtenDB(2003)、GridSQL@EnterpriseDB(2007) • 「シェアードナッシング」方式の分散データアーキテクチャ – コモディティサーバのパフォーマンスをレバレッジさせる。 – アプリケーションに対して単一のデータベースに見せる。 • 基本事項… – オープンソース – BI/DWHデータベース(Greenplum、NetezzaやTeradataのような) Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 8. “Stado”とは何か? (2) • パラレルクエリを実行するための設計 – 伝統的なスタースキーマを対象とする • 読み取りだけではなく、UPDATEやDELETEも実行可 • パラレルローディングのためのデータローダ – バルクローディング • PostgreSQL互換のコネクタを使って標準的な接続が可能 – JDBC, ODBC, ADO.NET, libpq(psql) Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 9. Stadoは何 “ではない” か? • SlonyやBucardoのようなレプリケーションではない • PostgreSQL 9.1の同期レプリケーションのような高可用の ためのソリューションでもない • Postgres-XCのようなスケーラブルなトランザクションソ リューションでもない • “Elastic” で “Eventually consistent” なNoSQLデータベース でもない Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 10. アーキテクチャ • 祖結合なシェアードナッシング Applications アーキテクチャ • Stadoプロセス – 中央のコーディネータ Coordinator – データノートのエージェント • データレポジトリ – メタデータデータベース Data Nodes – Stado(ユーザ)データベース ETL Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 11. 構成 • 単一の物理サーバに対して、複数の論理ノードを設定可能 – マルチコアプロセッサの性能を活用する • テーブルは、レプリケーションか、パーティショニング – パーティションテーブルは大規模なファクトテーブル – 単一のファクトテーブルと複数のディメンションテーブル Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 12. パーティショニング • StadoのパーティショニングとPostgreSQLのCE(Constraint Exclusion)パーティショニングを同時に利用可能 – (CEの)サブテーブルを使うことによって、大規模なクエリはより小さ なデータをスキャンする – 各サブテーブルがノードをまたいで分割されているので、並列にス キャンされる • パーティションの種類 – Stadoはハッシュパーティションを提供 – CEはレンジパーティションを提供 • “Making things smaller, making things faster.” – テーブルやインデックスを小さく保つことで高速化する Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 13. スタースキーマ • ひとつのファクトテーブル(トランザクション情報)と、複数の ディメンション(マスター)テーブルで構成されるスキーマ customer part orders c_custkey p_partkey o_orderkey c_name p_name c_address o_custkey p_mfgr c_nationkey o_orderstatus lineitem p_brand c_phone o_totalprice p_type l_orderkey partsupp c_acctbal o_orderdate p_size o_orderpriority l_linenumber p_container ps_partkey c_mktsegment c_comment o_clerk l_partkey p_retailprice ps_suppkey o_shippriority l_suppkey p_comment ps_availqty nation o_comment l_quantity ps_supplycost l_extendedprice ps_comment n_nationkey supplier l_discount n_name l_tax s_suppkey n_regionkey l_returnflag n_comment l_linestatus s_name l_shipdate s_address l_commitdate s_nationkey region l_receiptdate s_phone r_regionkey l_shipinstruct s_acctbal l_shipmode s_comment r_name r_comment l_comment Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 14. テーブルの作成 • テーブルはレプリケーションかパーティショニングされる – DDLで何も指定しないと、主キーで分割されるパーティションテーブ ルになる Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 15. クエリオプティマイザ • コストベースのオプティマイザ – もっともコストが高いのがRow Shipping • レプリケーションテーブルとのJOIN(結合)を探す – レプリケーションテーブルとのJOINはノード内で処理可能 – パーティションキーを使ったJOINを探す – 複数のテーブル(ordersとlineitemなど)を単一のパーティションキー (orderkey)を使って分割すると、同じキーのレコードが同一パーティ ションにあることが担保される – 異なるキーで複数のテーブルをパーティションすると、JOIN時にRow Shippingが発生する(サイズによっては非常に時間がかかる) Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 16. 2段階の集約処理 • SUM – SUM(stat1) – SUM2(SUM(stat1)) • AVG – SUM(stat1)/COUNT(stat1) – SUM2(SUM(stat1))/SUM2(COUNT(stat1)) Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 17. SQL上の制約 • 独自のパーサおよびオプティマイザを使用しているため – ウィンドウ関数が使えない – ストアドプロシージャが使えない – 全文検索が使えない – Geo-Spatialサポートが使えない Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 18. トランザクションパフォーマンス • 行のINSERT、UPDATE、DELETEは、単体のPostgreSQL と比較すると遅い – データがネットワーク上を余分に行き来する必要があるため – パーティションテーブルの行は、適切なノードに割り振るためにハッ シュ化される必要がある – レプリケーションテーブルの行はすべてのノードでコミットされる必要 がある • パフォーマンスを上げるためには “gs-loader” を使ってバル クロードする Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 19. 高可用性 • ハートビートやフェイルオーバーの制御はコーディネータに は無い – 各PostgreSQLノードの高可用性は、それぞれ個別に設定される必 要がある – この目的にストリーミングレプリケーションを利用可能 • Stadoデータベース全体の一貫性のあるバックアップの取得 は難しい – トランザクションが実行されていないことを担保する必要がある – 各ノードを個別にバックアップする必要がある Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 20. ノードの追加 • ダウンタイムが必要 – データは手動で新しいノードにリロードされる必要がある • 設計によっては、データの再配置を排してより迅速にできる – 最初に多数のパーティションに分割しておく – 最初に複数のインスタンスを物理サーバで動作させておき、必要に 応じて新しいハードウェアに移動させる Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 21. 2. Stado導入手順 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 22. 前提条件 • Stadoは以下の環境で動作します – PostgreSQL 9.1以降 – JDK 6以降 • リリース版ではなくリポジトリの最新版を使うことを推奨 – 現在、頻繁にバグfix等が行われているため Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 23. ドキュメント類 • Stadoに同梱されているドキュメント類 – Stado Administration Guide (対訳済み) – Stado Import and Export Utilities (一部対訳済み) – Stado Planning Guide – Stado SQL Reference 上記の対訳版ドキュメントは以下のURLで公開しています。 http://www.uptime.jp/go/stado Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 24. 導入手順 • ステップ1 – OSアカウントの作成、セットアップ – ネットワーク関連のセットアップ – OSのチューニング – JDK、PostgreSQLのインストールとコンフィグ設定 • ステップ2 – Stadoのインストールとコンフィグ設定 – 各PostgreSQLノード管理ユーザ(stado)の作成 – Stado管理/接続ユーザの作成(admin)とメタデータベース作成 – コーディネータの起動 – エージェントの起動 • ステップ3 – ユーザデータベースの作成 – テーブルの作成 – データのロード Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 25. 導入手順 – STEP2 • Stadoのインストールとコンフィグ設定 – コーディネータ設定:stado.config – エージェント設定:stado_agent.config • 各PostgreSQLノード管理ユーザ(stado)の作成 – createuserコマンド • Stado管理/接続ユーザの作成(admin)とメタデータベース作成 – gs-createmdbコマンド • コーディネータの起動 – gs-serverコマンド • エージェントの起動 – gs-agentコマンド Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 26. stado.config • 全ノードおよびコーディネータの設定を行う設定ファイル Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 27. stado_agent.config • コーディネータへの接続とロギングの設定を行う設定ファイル Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 28. XDBSYSメタデータベース • ノードやスキーマ、ユーザ情報等を保持するメタデータベース Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 29. 導入手順 – STEP3 • ユーザデータベースの作成 – gs-createdbコマンド • テーブルの作成 – psqlコマンド、またはgs-cmdlineコマンド • データのロード – psql、アプリケーション、またはgs-loaderコマンド Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 30. ユーザデータベース • gs-createdbコマンドで作成し、gs-cmdlineコマンドで状態を参照 – 通常のクエリ実行はpsqlコマンドから実行可能 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 31. ユーザデータベース (2) • 物理的なデータベースは “__(DB名)__N(パーティション番号)” という データベース名で作成される Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 32. ユーザテーブル • gs-cmdlineコマンドでパーティション情報を確認 – パーティションカラムがあるテーブルはパーティションテーブル Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 33. データローディング • gs-loaderコマンドを使って、フラットファイル(CSV、タブ区切りなど)から パラレルロードする Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 34. 実行プランの取得 • EXPLAINコマンドで取得可能 – 出力は通常のPostgreSQLのものと異なる。 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 35. 管理コマンド • gs-agent.sh エージェント起動コマンド • gs-cmdline.sh Stado管理用コマンドラインツール • gs-createdb.sh ユーザデータベースを作成 • gs-createmddb.sh メタデータベースを作成 • gs-dbstart.sh ユーザデータベースをオンラインに変更 • gs-dbstop.sh ユーザデータベースをオフラインに変更 • gs-dropdb.sh ユーザデータベースを削除 • gs-execdb.sh • gs-impex.sh • gs-loader.sh ユーザデータベースにデータをロード • gs-server.sh コーディネータを起動 • gs-shutdown.sh コーディネータを停止 (“gs-” と付いているのはGridSQL時代の名残りの模様) Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 36. 3. Stado検証結果 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 37. Stado Cluster #1 • Amazon EC2 Small Instances(m1.small) – APAC/Tokyo Region – 1.7 GB Memory – 1 ECU(1 ECU × 1 Virtual Core) – 160 GB Instance Storage – 32-bit platform – I/O Performance: Moderate • Additional EBS Storages for PostgreSQL database cluster • Up to 8 instances Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 38. Stado Cluster #1 stado01 stado02 stado03 stado04 stado05 stado06 stado07 stado08 Coordinator Agent Agent Agent Agent Agent Agent Agent Agent Postgres Postgres Postgres Postgres Postgres Postgres Postgres Postgres testdb1 testdb2 testdb4 testdb8 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 39. Stado Cluster #1 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 40. Stado Cluster #2 • NEC Express5800/GT110b – Intel Xeon X3440 2.53GHz (Quad Core / 8 threads) – Unbeffered ECC 16GB RAM – HGST Deskstar 1TB 7200rpm (SATA 3Gbps) * 4 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 41. Stado Cluster #2 • Multiple spindles to take advantage of multi-core processor even within a single server. – Multiple tablespaces are assigned to each dedicated disk. Coordinator Agent Postgres tblspc1 tblspc2 tblspc3 testdb1 testdb2 testdb4 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 42. DBT-3 Schema • Scale factor “10” – >25GB, including its indexes. Table Name Purpose # of Records Size Partition Key customer 顧客マスタ 1,500,000 289,046,528 c_custkey lineitem 注文明細 59,986,052 8,727,838,720 l_orderkey nation 国名マスタ 25 8,192 - orders 注文 15,000,000 2,074,853,376 o_orderkey part 部品マスタ 2,000,000 332,816,384 p_partkey partsupp 部品詳細マスタ 8,000,000 1,400,143,872 ps_partkey region 地域マスタ 5 8,192 - supplier 販売業者マスタ 100,000 17,858,560 - Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 43. Stado Test #1 • Data Loading / データロード • Creating indexes / インデックス作成 • Aggregation (count, sum) / 集約(count, sum) • Aggregation + GROUP BY (daily basis, country basis) / 集約+GROUP BY (日別売上、国別売上) • JOIN (local) / 結合(ノード内) • JOIN (cross-node) / 結合(ノード間) Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 44. Summary – Cluster #1 Stado Performance Comparison (Stado Cluster #1) 3.50 3.00 (compared to standalone) 2.50 Execution Time Standalone 2.00 1-node 2-nodes 1.50 4-nodes 8-nodes 1.00 0.50 0.00 Loading Building Query 1 Query 2 Query 3 Query 4 Query 5 Tables Indexes Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 45. Summary – Cluster #2 Stado Performance Comparison (Stado Cluster #2) 1.20 1.00 (compared to standalone) 0.80 Execution Time Standalone 1-disk 0.60 2-disks 4-disks 0.40 0.20 0.00 Loading Building Query 1 Query 2 Query 3 Query 4 Query 5 Tables Indexes Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 46. Loading Tables • Loading tables did not take advantage of the cluster. – Loading 8 tables using gs-loader (for Stado) or psql (for Standalone) – Parallel loading seems like highly CPU intensive task. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 3.50 1.20 3.00 1.00 (compared to standalone) (compared to standalone) 2.50 Standalone 0.80 Execution Time Execution Time Standalone 2.00 1-node 1-disk 2-nodes 0.60 2-disks 1.50 4-nodes 4-disks 8-nodes 0.40 1.00 0.20 0.50 0.00 0.00 Loading Tables Loading Tables Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 47. Building Indexes • Building indexes could benefit by adding servers and/or spindles. – Elapsed time shows linear scalability as adding nodes. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.20 1.20 1.00 1.00 (compared to standalone) (compared to standalone) 0.80 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 0.60 2-nodes 0.60 2-disks 4-nodes 4-disks 0.40 8-nodes 0.40 0.20 0.20 0.00 0.00 Building Indexes Building Indexes Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 48. Aggregation (Query 1, 2) • Simple scan and aggregation can take advantage of the cluster. – Executing SUM() and COUNT() on “orders” table. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.20 1.20 1.00 1.00 (compared to standalone) (compared to standalone) 0.80 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 0.60 2-nodes 0.60 2-disks 4-nodes 4-disks 0.40 8-nodes 0.40 0.20 0.20 0.00 0.00 Query 1 Query 1 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 49. Aggregation + GROUP BY (Query 3) • “Aggregation + GROUP BY” as well. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.20 1.20 1.00 1.00 (compared to standalone) (compared to standalone) 0.80 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 0.60 2-nodes 0.60 2-disks 4-nodes 4-disks 0.40 8-nodes 0.40 0.20 0.20 0.00 0.00 Query 3 Query 3 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 50. JOIN (local) (Query 4) • “Local Join” between partitioned tables with using a partition key could scale. – “orders” and “lineitem” are joined with “orderkey”. – More CPU power needed. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 2.50 1.20 1.00 2.00 (compared to standalone) (compared to standalone) Standalone 0.80 Execution Time Execution Time 1.50 Standalone 1-node 1-disk 2-nodes 0.60 2-disks 4-nodes 1.00 4-disks 8-nodes 0.40 0.50 0.20 0.00 0.00 Query 4 Query 4 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 51. JOIN (cross-node) (Query 5) • “Cross-node Join” may not be able to scale. – Particularly, large “Cross-node Join” must be critical for SQL performance. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 2.50 1.20 1.00 2.00 (compared to standalone) (compared to standalone) Standalone 0.80 Execution Time Execution Time 1.50 Standalone 1-node 1-disk 2-nodes 0.60 2-disks 1.00 4-nodes 4-disks 8-nodes 0.40 0.50 0.20 0.00 0.00 Query 5 Query 5 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 52. Behind the scene: “cross-node” join • Collect all rows (Row Shipping) from the entire cluster into temp table. Node #1 • Process a JOIN which can be done within the node. customer (1) • Process a JOIN against the temp table. JOIN (1) orders (1) lineitem (1) • Row Shipping is very expensive! JOIN (2) temp Row Shipping Node #2 Node #3 Node #4 customer (2) customer (3) customer (4) orders (2) orders (3) orders (4) lineitem (2) lineitem (3) lineitem (4) Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 53. Resource usage: “cross-node” join http://www2.uptimeforce.com/pgstatview2/20b267567a8f134b970070cc1a212a05/ Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 54. Stado Test #2 • DBT-3 Queries – Q1 - Aggregations on a single partitioned table. – Q2 - Joining two partitioned tables with a partition key, and also joining dimension tables. – Q4 - Joining two partitioned tables with a partition key, and aggregation. – Q6 - Aggregations on a single partitioned table, and aggregation. – Q11 - Joining a partitioned table and dimension tables, and aggregation. – Q12 - Joining two partitioned table, and aggregation. – Q16 - Joining two partitioned tables with a partition key, also joining dimension tables, and aggregation. Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 55. Summary – Cluster #1 Stado Performance Comparison (Stado Cluster #1) 2 1.8 1.6 1.4 (compared to standalone) Execution Time 1.2 Standalone 1-node 1 2-nodes 4-nodes 0.8 8-nodes 0.6 0.4 0.2 0 Q1 Q2 Q4 Q6 Q11 Q12 Q16 Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 56. Summary – Cluster #2 Stado Performance Comparison (Stado Cluster #2) 1.40 1.20 1.00 (compared to standalone) Execution Time 0.80 Standalone 1-disk 2-disks 0.60 4-disks 0.40 0.20 0.00 Q1 Q2 Q4 Q6 Q11 Q12 Q16 Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 57. Q1 • Simple aggregation with conditional scan on a partitioned table, “lineitem”. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.20 1.20 1.00 1.00 (compared to standalone) (compared to standalone) 0.80 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 0.60 2-nodes 0.60 2-disks 4-nodes 4-disks 0.40 8-nodes 0.40 0.20 0.20 0.00 0.00 Q1 Q1 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 58. Q2 • Joining partitioned talbes, “partsupp” and “partsupp”, with a partition key, and dimension tables. – But, the 1-node and 8-node AWS clusters shown some strange behaviors. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 3.00 1.20 2.50 1.00 (compared to standalone) (compared to standalone) 2.00 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 1.50 2-nodes 0.60 2-disks 4-nodes 4-disks 1.00 8-nodes 0.40 0.50 0.20 0.00 0.00 Q2 Q2 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 59. Q4 • Joining two partitioned tables, “orders” and “lineitem”, with a partition key “orderkey”. – Q4 failed to complete on the AWS cluster. – Q4 was much faster even with 1-disk on the single server. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.00 1.20 0.90 1.00 0.80 (compared to standalone) (compared to standalone) 0.70 Standalone 0.80 Execution Time Execution Time 0.60 Standalone 1-node 1-disk 0.50 2-nodes 0.60 2-disks 0.40 4-nodes 4-disks 8-nodes 0.40 0.30 0.20 0.20 0.10 0.00 0.00 Q4 Q4 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 60. Q6 • Simple conditional scan on a partitioned table,“lineitem”. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.20 1.20 1.00 1.00 (compared to standalone) (compared to standalone) 0.80 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 0.60 2-nodes 0.60 2-disks 4-nodes 4-disks 0.40 8-nodes 0.40 0.20 0.20 0.00 0.00 Q6 Q6 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 61. Q11 • Joining a partitioned table and dimension tables, “partsupp”, “supplier” and “nation”, with aggregation and sort. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.20 1.20 1.00 1.00 (compared to standalone) (compared to standalone) 0.80 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 0.60 2-nodes 0.60 2-disks 4-nodes 4-disks 0.40 8-nodes 0.40 0.20 0.20 0.00 0.00 Q11 Q11 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 62. Q12 • Joining two partitioned tables, “orders” and “lineitem”, with aggregation and sort. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.20 1.20 1.00 1.00 (compared to standalone) (compared to standalone) 0.80 Standalone 0.80 Execution Time Execution Time Standalone 1-node 1-disk 0.60 2-nodes 0.60 2-disks 4-nodes 4-disks 0.40 8-nodes 0.40 0.20 0.20 0.00 0.00 Q12 Q12 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 63. Q16 • Joining another two partitioned tables, “part” and “partsupp”, with aggregation and sort. Stado Performance Comparison Stado Performance Comparison (Stado Cluster #1) (Stado Cluster #2) 1.40 1.20 1.20 1.00 (compared to standalone) (compared to standalone) 1.00 Standalone 0.80 Execution Time Execution Time Standalone 0.80 1-node 1-disk 2-nodes 0.60 2-disks 0.60 4-nodes 4-disks 8-nodes 0.40 0.40 0.20 0.20 0.00 0.00 Q16 Q16 Workload Type Workload Type Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 64. その他 • SQLの互換性はほぼ問題なし – DBT-3のクエリ22本はほとんどそのままの形で実行可能 – 一部、明示的な型キャストや優先度の指定が必要(parse errorなどが発生) • statement_timeout相当の処理がStadoには無いので注意 – SET statement_timeout コマンドを送れない – Row Shipping中(COPYコマンド中)にはpostgresql.confの statement_timeoutも効かなかった(調査中) • EXPLAINは、Row Shippingの発生および量を明確には教えてくれない ので、頭の中で理解しておく – “Even though, EXPLAIN is still your friend.” • 今後の課題 – ログ出力の強化、改善 – 管理コマンドの強化(パーティションの再配置等) – ドキュメントの強化 Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 65. まとめ • Stadoはクエリのパフォーマンスを大きくに向上させます – リーズナブルな手段、リーズナブルな方法で • Stadoはノードの追加に応じてスケールします – サーバだけではなく、複数ディスク+マルチコアCPUもアリ • Stadoはオープンソースなので、制限が問題になるようであ れば、レポートやパッチを送りましょう – 開発メンバーはとてもフランクで、bug fixも迅速です • Stadoを使ってみたいと思った方、ぜひ情報交換しましょう! Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 66. Special Thanks Mason Sharp Jim Mlodgenski Andrei Martsinchyk Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 67. Questions? Satoshi Nagayasu snaga@uptime.jp Copyright 2012 Uptime Technologies, LLC. All rights reserved.
  • 68. 【お問い合わせ先】 アップタイム・テクノロジーズ合同会社 永安 悟史 E-mail: snaga@uptime.jp Web: http://www.uptime.jp/ Copyright 2012 Uptime Technologies, LLC. All rights reserved.