タグ

ブックマーク / pgsqldeepdive.blogspot.com (7)

  • コサイン類似度に基づくソート処理の実装方法とその性能比較

    文書の類似度を計算する方法に「コサイン類似度」を用いる方法があります。 これは、出現する単語を出現回数などで数値化して、空間ベクトルに変換した上でベクトル同士の類似度を計算する、という手法です。 コサイン類似度 http://www.cse.kyoto-su.ac.jp/~g0846020/keywords/cosinSimilarity.html 最近、このコサイン類似度を使って、似ているデータを検索するWebアプリを試しに作っていたのですが、ふと、 「このコサイン類似度を使ったソート処理をPostgreSQLでどのように実装するともっとも高速な実装になるのだろうか。また、現実的なパフォーマンスを考えた時にデータ量や次元のサイズはどこまで増やせるのだろうか」 ということが気になりました。 PostgreSQLは、その拡張性の高さがウリの一つですが、そのため「UDFを作る」ということを考え

    コサイン類似度に基づくソート処理の実装方法とその性能比較
  • パラレルスキャンのスケーラビリティ調査とFlame Graphsによるプロファイリング可視化

    先月、弊社にデータベース系の研究をしていた中国人留学生がインターンに来ており、その彼にお願いしてPostgreSQLのパラレルクエリのスケーラビリティの調査と、プロファイリング+可視化のツールとしてFlameGraphを使ってもらいました。 大学のスケジュールの関係上、インターンの期間が急遽、3週間から2週間に短縮されてしまったため、結果をきちんとまとめたり追試をしたりといったところまでは到達できなかったのですが、個人的にもそれなりに面白いアウトプットになったと思いますので、簡単にご紹介したいと思います。 なお、細かい手順の詳細などは、インターンに参加していた学生さんのGithubにまとまっています。参考文献に載せておきますので、興味のある方はそちらも参照してください。(テストと直接関係のない内容も含まれています) ■テストの背景 PostgreSQLの9.6develにパラレルシーケン

    パラレルスキャンのスケーラビリティ調査とFlame Graphsによるプロファイリング可視化
  • PostgreSQL 9.6のパラレルシーケンシャルスキャンを検証する

    今年もこの季節になりました。PostgreSQL Advent Calendar 2015のDay1の記事です。 今回は、現在開発中のPostgreSQL 9.6に実装されたパラレルシーケンシャルスキャンについて、動作確認とフラッシュストレージでの簡単な性能検証をしてみようと思います。 なお、現在開発中の機能ですので、正式リリースされる時には仕様や動作などが変わっている可能性があることをご了承ください。 ■「パラレルシーケンシャルスキャン」とは 「パラレルシーケンシャルスキャン」は、その名の通り、シーケンシャルスキャンを並列処理する機能です。 今まで、PostgreSQLでは1つのCPUを使ってシングルスレッド(というかプロセス)でしか処理をすることができませんでした。 しかし、直近のPostgreSQLのメジャーバージョンの拡張を見ていた方はご存じの通り、PostgreSQLではパラレル

    PostgreSQL 9.6のパラレルシーケンシャルスキャンを検証する
  • Postgres Toolkit 0.2をリリースしました

    日、Postgres ToolkitというPostgreSQLDBA向けツールキットをリリースしました。 http://www.github.com/uptimejp/postgres-toolkit/ https://postgres-toolkit-ja.readthedocs.org/ ■「Postgres Toolkit」とは何か Postgres Toolkitは、PostgreSQLの運用管理を楽にするためのスクリプトやツールのコレクションで、DBA業務の品質や生産性を高めることを目的としたツールキットです。 Postgres Toolkitを使うことで、複雑なSQLを実行したり、自前のスクリプトをメンテする必要性が減少します。コンセプトとしては、「PostgreSQL DBA向けのVictorinox(スイスアーミーナイフ)」のようなイメージです。 もともとは、私がトラブ

    Postgres Toolkit 0.2をリリースしました
  • もうひとつの「PostgreSQL Internals」技術文書が公開されました

    最近、精力的にPostgreSQL関連の検証や技術情報の公開をしている日HPさんから、「PostgreSQL Internals」という技術文書がPDFで公開されました。 日HP ITサービス「HP OPEN SERVICES」 http://h50146.www5.hp.com/services/ci/opensource/ 上記ページの下の方に「PostgreSQLエンジニア向け!ストレージ内部構造および内部動作検証報告」というタイトルのPDFファイルをダウンロードすることができます。 PostgreSQLエンジニア向け!ストレージ内部構造および内部動作検証報告 http://h50146.www5.hp.com/services/ci/opensource/pdfs/PostgreSQL_Internals.pdf 章レベルで目次を抜き出すと以下のような内容になっています。

    もうひとつの「PostgreSQL Internals」技術文書が公開されました
  • Apache JMeterでPostgreSQLの負荷試験をする

    このエントリは、PostgreSQL Advent Calendar 2013のDay3の記事です。 「データベースの負荷試験」を考える時、皆さんはどのような方法で実施することを検討するでしょうか。自前のテストスクリプトでしょうか。あるいは、データベース単体の負荷試験は行わず、Webシステム全体の負荷試験として実施するでしょうか。 PostgreSQLには、pgbenchというベンチマークツールが付属しており、このツールのシナリオを作成することで多少は独自のシナリオでの試験を行うことも可能ですが、状況によってはそれだけでは自由度が不足することがあります。 今回は、Webシステムの負荷テストでよく使われるJMeterを使って、自由なシナリオでPostgreSQL単体の負荷試験を行う方法を紹介します。 (なお、JMeterは非常に多機能な負荷生成ツールですので、今回はJMeterの網羅的な説明

    Apache JMeterでPostgreSQLの負荷試験をする
  • 【9.3新機能チェック】マテリアライズドビューを試してみる

    昨日、PostgreSQLの次期リリースである9.3のソースコードに、マテリアライズドビューのコードが追加されました。 pgsql: Add a materialized view relations. http://www.postgresql.org/message-id/E1UCJDN-00042x-0w@gemulon.postgresql.org PostgreSQLの開発者Wikiによると、マテリアライズドビューはもっとも要望の多かった機能のようです。 Materialized Views - PostgreSQL wiki http://wiki.postgresql.org/wiki/Materialized_Views 今回は、このマテリアライズドビューがどのようなものなのか、そしてどのように使えるのかを見てみます。 ■マテリアライズドビューとは 「マテリアライズドビュー

  • 1