Commitfest 2020-09 - psql関連

はじめに

先週にPostgreSQL 13.0リリースされたってこともあるけど、久々にCommitfestを見てみようと思った。 commitfest.postgresql.org とりあえず、自分にとって興味のあるpsqlについて、まず見てみようかと。

psql関連の項目

とりあえず"psql"でCommitfestページ内を引っ掛けると、以下の8項目があった。

  • psql - add SHOW_ALL_RESULTS option
  • psql - possibility to specify where status row should be displayed
  • allow to set a pager for psql's watch command
  • Confusing list foreign table options in psql - Fixing slash usage text
  • list of extended statistics on psql
  • document that psql's FETCH_COUNT does not work with combined (\;) queries
  • psql: add \si, \sm, \st and \sr functions to show CREATE commands for indexes, matviews, triggers and tables
  • psql: Include access method in listTables output

とりあえず、議論の発端となったメールの概要くらいは見ておこう。

psql - add SHOW_ALL_RESULTS option

これはざっくりいうと、連結されたクエリの最後のクエリだけでなく、途中のクエリの結果も表示する、というものらしい。 現在は、連結したクエリをpsqlで実行すると、最後のクエリの結果のみが表示される。

psql - possibility to specify where status row should be displayed

\h 出力のようにコマンドタグを毎回stdoutにリダイレクトできないか、という提案なんだろうか。 で、この提案機能の使い途って何?という質疑が続く。

このパッチの作成者のPavel Stehuleさんが言うには(ML投稿の雑翻訳) 、

このパッチの主な動機は、クエリを記述および編集するためにpsqlを使用し、pspgまたは他の同様のツール(tail, ...)を使用して結果を2番目のターミナルで参照することです。 この設定の利点は、SQLとクエリの結果を一緒に表示できることです。

ということらしい。pspgってツールは知らなかったので、ちょっと調べてみた。 github.com

pspgというのは、どうやらページャのようだ。psql変数PAGERにpspgというのを指定すると使えるようだ。ヘッダ行を固定したままスクロールとかできるようなので、ちょっと便利そう。

allow to set a pager for psql's watch command

\watchメタコマンド専用のぺージャを設定する、psql環境変数PSQL_WATCH_PAGERの提案っぽい。 提案者は一つ上の項目と同じPavel Stehuleさん。

Confusing list foreign table options in psql - Fixing slash usage text

psqlの外部表に関するメタコマンド

  \dE[S+] [PATTERN]      list foreign tables
  \det[+] [PATTERN]      list foreign tables

の説明が同じで混乱するから改善したいという話かな?詳細は追ってない。

list of extended statistics on psql

拡張統計情報に関するリストを表示するメタコマンドdzの提案かな?

document that psql's FETCH_COUNT does not work with combined (\;) queries

連結されたクエリ(DECLARE ... <first select>; <second select>)の挙動(2番目がSELECTでない場合、1番目のSELECTの内容がカーソル定義として適用されるけど、それに関する文書の説明の改善提案なのかな。詳細は追ってない。

psql: add \si, \sm, \st and \sr functions to show CREATE commands for indexes, matviews, triggers and tables

psqlに新しいメタコマンドを追加して、インデックス、マテリアライズド・ビュー、トリガ、テーブルのCREATE文を表示させようという提案かな。 今でも、ビューについては、

pgbench=# \d+ accounts_v
                              View "public.accounts_v"
  Column  |     Type      | Collation | Nullable | Default | Storage  | Description
----------+---------------+-----------+----------+---------+----------+-------------
 aid      | integer       |           |          |         | plain    |
 bid      | integer       |           |          |         | plain    |
 abalance | integer       |           |          |         | plain    |
 filler   | character(84) |           |          |         | extended |
View definition:
 SELECT pgbench_accounts.aid,
    pgbench_accounts.bid,
    pgbench_accounts.abalance,
    pgbench_accounts.filler
   FROM pgbench_accounts;

みたいな定義を表示するので、それと同じようなことがやりたいのかな?

psql: Include access method in listTables output

これは、テーブル一覧を表示する\dメタコマンドの詳細モード(\d+)を引数なしで実行したときに、各テーブルのアクセスメソッドを表示するもの。これは既にcommitされているので、最新のソースを入手すると挙動が確認できる。

$ ~/pgsql/master/bin/psql -p 10014 pgbench
psql (14devel)
Type "help" for help.

pgbench=# \d
              List of relations
 Schema |       Name       | Type  |  Owner
--------+------------------+-------+----------
 public | pgbench_accounts | table | postgres
 public | pgbench_branches | table | postgres
 public | pgbench_history  | table | postgres
 public | pgbench_tellers  | table | postgres
(4 rows)

pgbench=# \d+
                                         List of relations
 Schema |       Name       | Type  |  Owner   | Persistence | Access Method |  Size   | Description
--------+------------------+-------+----------+-------------+---------------+---------+-------------
 public | pgbench_accounts | table | postgres | permanent   | heap          | 13 MB   |
 public | pgbench_branches | table | postgres | permanent   | heap          | 40 kB   |
 public | pgbench_history  | table | postgres | permanent   | heap          | 0 bytes |
 public | pgbench_tellers  | table | postgres | permanent   | heap          | 40 kB   |
(4 rows)

現状は、コア機能にはheapアクセスメソッドしかないけど、zheapやZedstoreのような別のアクセスメソッドが組み込めるようになったら、こういう機能があると便利なのは確か。

今後はQiitaに移行します

これまで数年間、はてなを使っていましたが、今日からQiitaへ移行しようと思います。
幾つか理由はあるのですが、主な理由は

  • pre表示が今ひとつ見づらい
  • 画像貼り付けがちょい面倒
  • Qiitaのほうがリアクションよさげ

かなあ。

気が向いたら、ここに書いたエントリの一部をQiitaにも移行しようと思います
数年間ですが、お世話になりました。

MongoDB最新動向

ということで、Database Lounge Tokyo #1 に落選したのですが、幸か不幸か同日・ほぼ同ロケーションの恵比寿でMongoDB最新動向が開催されていたので、そっちを聞きに行くことにしましたよ。
MongoDBは2年くらい前にPostgreSQL JSONB型との比較ということで、MongoDB 2.4/2.6くらいを使ったんだけど、それ以降、あまり追っていなかったから、最新動向を聞いてみることにした。



MongoDB World 2016 キーノート報告

講師は鈴木いっぺいさん

CEOからのふわっとした話
  • MongoDB World、3000人くらい来場する。
  • 今年のキーワード "Giant Ideas" 大きなアイディア
    • スピード重視。いろんなデータを集めて早く分析し、AI/Deep Learningにかけたい。
  • MongoDBコンセプト
    • データベース設計、運用の工数を以下に少なくするか。
  • 事例紹介
    • Mapit ナイジェリアの会社の事例。
    • Nanopore 4,5分でDNA解析
  • MongoDB使われているよーという話。
    • MongoDBのユーザ数は増加。既に2000万DLされている。
    • 開発者数も増えている。アクティブ。
    • NoSQL内ではMongoDBが過半数のシェア
CTOからの話
  • MongoDBコンセプト
    • 人間の考え方に近い⇒ドキュメント型
    • RDBコンセプト(CRUD)も取り込み
MongoDB 3.2の話
  • WiredTigerを取り込んだMongoDB 3.2の話。
    • Replica Set Election 1.7秒で投票完了。
    • ドキュメントバリデーションの追加
    • JOIN相当の$lookup, pipeline, 複数ストレージエンジンの採用。インメモリストレージなど。
MongoDB 3.4の話
  • 今年の後半にリリース?
  • Initial Sync、同期のパラレル化、途中再開を可能に。
  • Collation Per Operation
  • BI-Connector, Tableau等可視化ツールとの間の性能向上。
  • Compassスキーマ可視化
  • Read-Only View:データのマスキングもできる?
  • なんとグラフ検索ができるようになる! $Lookup の拡張(recursive lookup)
    • あれかなー、PostgreSQLでいうところのCTEっぽいやつ?非循環グラフとか限定されるのかしらん。
  • #facet 1つのクエリ内で複数のクエリを含められる?うーん、MongoDBそのものというより可視化の話なのか・・・?
  • Zones Sharding
    • 複数データを利用者近くに集中させるケース
    • 新しいデータと古いデータを分けるケース。
Compassの話
  • スキーマ分析という言葉から誤解していたけど、文書構造の分析ではなくて、データの値を分析するものか。
    • CompassではExplainの可視化もするので、開発ツールとしても有効。
    • Explainを元に性能改善する例
    • データ分析のデモ:1899年生まれのデータがある。間違いでは?⇒データ削除や編集のデモ。
    • Compass v1.3beta DL可能。
Atlasの話
  • Atlas というMongoDBクラウドができた。最もシンプルで信頼性と拡張性の高いサービス。
  • 実はMongoDBクラウド化の試みは2011年からやっていた。
  • MongoDBユーザの7割は実はAWS上で使っている。
  • Atlasのデモの説明。
    • ストレージ量、性能、暗号化の設定が可能。動的変更可能。レプリカ/シャーディングの設定。
ユーザ紹介
  • IBM
    • PowerSystem
    • IBM LinuxONE: Linux実装したサーバ。この上でMongoDBを動かしている。
      • MongoDBを含むOSSの実装
    • Cognitive Solutions (Watson事業)
    • MongoDBとのパートナーシップ
      • MongoDBと共同開発したトレーディングデモ
      • Dockerコンテナ化したMongoDB?
  • Comcast
    • 2700万ユーザ、1400万箇所のWifiスポット
    • CDN peek 30Tbit
    • オリンピック放映権を取得。10億ドルの投資。
    • コンテンツ配信の場合、ピーク時対応が重要な問題。1秒に10万リクエスト。
    • LAST KNOWN GOODモデルの話。MongoDBはそれが非常にやりやすい。
    • Reuse Quivalency Principleの話。うーん、良くわからん。ACIDの話がここで出てくる。
      • 1日に数回のアップデートが可能。2000万個のデバイスも三週間に一回アップデート。
  • CaptalOne (クレジット会社,米国第4位)
    • 金融ではなくIT会社であるという自負。
    • お金をより賢く使うソリューション提供
    • 銀行に対する期待が変わっている。いつでもどこでもバンキング。
    • 大量のデータ。深い・多角的な分析
    • MongoDBを基盤としたHYGIEAという分析ダッシュボードを開発した。



MongoDBは迷走気味?

本題に入る前に、まさかの MongoDB World 2016 キーノート報告 をDisるとかw

  • MongoDBの2つの用途がある。これをごっちゃにできない。
  • 米国と日本で使い方違う説。
  • 日本ではアジャイル開発・半構造データ
  • そもそもMongoDBは分析用途ではない!
    • Mongoは小さいCRUDを大量に処理するのに向いているのでは?
なぜ分析に向かないか。

列指向でない
SQLか書けない
機械学習計算ができない
Spark/Hadoop界隈と断絶している

  • MongoDBグラフは遅いんじゃね?
  • イケてる部分
    • スピード開発、Compass、MonfoDB Atlas 地図情報、



本題:MongoDB 最新情報

API
  • ドキュメントバリデーション
    • バリデータの規則もJSONで定義。
    • でもバリデートエラーメッセージがイケてない(同じメッセージ)。
    • exists, type, in, regexp
  • 部分的インデックス
    • ある値の条件によってインデックスに追加。
新しいCRUD
  • 3.0で4種類だったのが、3.2で大幅に増加した。
  • 明確に更新するドキュメント数がAPIでわかるようになった。
$lookup
  • Left outer join相当ができる。
  • 他のコレクションにクエリを投げつけているだけ。
  • ACIDないし、RDBの感覚で使うと痛い目見るかも。
アグリゲーションの性能改善
  • プライマリシャードに負荷集中というのを解消したらしい。
  • PoistgreSQLで言えばインデックスオンリースキャンっぽい動作の追加?
全文検索対応
高可用化の改善
  • レプリカセット構成の変更
Read Concern
  • 過半数にデータが更新されるのを待って読む機能・・・なんとなくわかったが難しい。
  • MongoDBのRollbackはRDBとは違う!
    • 切り離されたプライマリがセカンダリとして再接続するときに、旧プライマリにしかないデータをパージする処理(で、合ってるのかな?)
ストレージ(WiredTiger)
  • Version 2 MMAPベース
  • Version 3.0
    • MMAP v1(デフォルト)
    • WireTiger
  • Version 3.2
    • MMAP v1
    • WiredTiger(デフォルト)
  • MMAP v1とは
    • ディスクにあるファイルをそのままメモリに乗せるというか、OSに任せている。
    • 更新は in place ⇒ 書き込みロックが必要。
    • V2.x系はデータベース全体、V3.0 ではコレクション全体のロック。
    • ディスク再配置時が問題。処理が重い。
  • WiredTiger
    • MVCC採用
      • 書き込み中に読み込みが待たされない。
    • ドキュメントレベルロックを実現
    • きちんとMongoDBでストレージを管理。
    • チェックポイント時(ファイルへの書き戻しタイミング)にVACUUM相当の処理を行う。
    • ジャーナル有効化でWAL相当の永続化を行う。
    • インデックスとデータファイル間の同期のためにトランザクション処理。複数コレクション対応ではない。
他のストレージ
  • インメモリ
  • 暗号化対応のWiredTiger
    • 有償版のみ。
その他
  • 運用改善
  • fsyncでロック
  • 32bitが非推奨
QA.
  • MMAP v1 から WiredTigerへの切り替え⇒レプリカセット+ローリングを有効に使う。
  • V3.0⇒V3.2の性能改善効果って?
    • 書き込み性能構造、マルチコアに対応
  • セキュリティ関連は?
    • 暗号化くらい?
  • バリデーションの記述はどの程度できる?
    • レンジやリストは可能。MongoQueryと同じ書き方と同じものができる。
最後に
  • はじめてのMongoDB の紹介。
    • アプリ開発者向けの本だよー。DBA向きではないっぽい。
    • じゃんけん大会で2冊デリバリ。残念ながらGetできず。

DB Online Day 2016 データベースの「自由な選択」

ということで、どういうわけか今週も大崎に来てしまいました。
先週(OSSコンソーシアム総会)は大崎駅直結のゲートシティでしたが、今日は駅からちょっと歩いた場所にある大崎ブライトコアへ。

きちんとまとめになってないので、ちょい長いですが以下、時間があれば見てくださいませ。


DBMSの市場の現状と今後」〜このままOracleを使い続けるのか〜

  • 講師はiTRの生熊さん。
  • iTRは調査&コンサル会社。調査会社の立場からみた市場動向がテーマっぽい。
IT予算の傾向
  • IT予算比率は3%に満たない程度で横ばい。
  • ITの新規投資比率は低下傾向
  • IT戦略=売上増への直接的な貢献。コスト削減ではない。
ITの動向の重要度と伸び率
ビッグデータって本当?
  • 2014年のデータ流通量=14.5 EB.
    • 9年間で9倍以上に。
  • 今後は非構造化データが増えるのか?
    • センサ・画像データのような非構造化データが増えているのは事実。
    • しかし顧客データや経理データのような構造化データも増加はしている。
企業ITの現状
  • 増えないIT予算、増やせない新規投資、増加するシステムとデータ
  • 要するにIT部門はつらぽよ。
データ管理基盤の変遷
  • (OODB・・・XMLDB・・・これはRDBMSに吸収、ということね)
  • 今はNoSQL, Hadoop/Spark, RDBMS
    • NoSQLはある意味先祖返り。
利用しているDBMSの種類と要望
  • 商用RDBMSOSS RDBMSの比率は2:1くらい。
  • Hadoop/Spark/NoSQL/XMLDB/OODB/階層・NW型は同じくらい。OSS RDBMSの1/3くらい。
    • (グラフデータベースがない・・・グラフデータベースはNW型に含まれているのかしらん?)
  • ユーザは製品価格とサポート価格には結構不満を持っている。これ重点な。
  • でもリプレースを考えているのは16%程度。意外と少ない。
  • 今後の方針
DBMSに対する投資
  • 基本的には横ばい。しかし、半数近くは投資増加を考えている。
    • 企業規模が大きければ投資を増加しようと考える傾向がある。
  • 用途の主な3本柱。顧客管理、販売支援/営業支援、データ分析
デジタルイノベーションがもたらすもの。
  • データ/情報はますます重要に。
  • IoT(収集)→BigData(蓄積)→BI/AI/機械学習(分析)→ここから取り出した情報を活用する。
  • デジタルビジネス:データ・つながり・体験を価値として提供する。
DBMS管理からデータ管理へ
  • 会社にはデータオフィサーが置かれるだろう。
  • IT部門はDBMS管理だけでなくデータそのものの管理へ。
  • クラウド化によりシステム管理自体が楽に。


ためらっていませんか?PostgreSQLの適用 −押さえておきたいポイントと適用事例

OSS DBMSの活用状況
PostgreSQLですすめるビジネス・イノベーション
  • 「データのオープン化」が肝である。
  • レガシーデータを新システムにETL等で変換しなければならない。
    • レガシーデータを直接PostgreSQLデータ化。
    • ETLの代わりにPostgreSQL化する。
      • (DBLINKなの・・・FDWじゃないの・・・?)
  • 富士通PostgreSQL
適用事例1
適用事例2
  • マイグレーションを起点とした適用領域の拡大
    • 信頼性の確保
    • 最終的に集約したい。運用コストの最適化。
      • 運用負荷の軽減。仮想化も併用。
    • 意思決定の迅速化
  • Step1 信頼性向上
    • データベースの二重化(Streaming Replicationの利用)
      • コストも高くならない。
    • 透過的暗号化の適用
    • SRによるディザスタリカバリ(暗号化したまま、がポイント)
  • Step2 データ集約
    • サーバ集約
  • Step3 分析
    • 待機系を利用したデータ分析
    • インメモリカラムナ
    • 並列SQL処理
  • 移行の取り組み
    • 移行コストの見積もり
    • DBMS互換機能の相談
    • 移行ツールや移行ガイド
    • 顧客へのPostgreSQL教育。これが一番重要と言っていた。
  • Symfoware Server(富士通PostgreSQL)のポイント
    • NCHAR対応
    • WAL二重化
    • 透過的暗号化
    • 並列SQL処理
    • インメモリカラムナ
適用時のポイント
  • 移行の進め方
  • サポート期間(PostgreSQLの頻繁なバージョンアップ対応含む)
    • 販売終了後5年+延長サポートあり
    • PostgreSQL自体のEOLは5年
  • OSS製品組み合わせの担保
    • Symfoware Serverは周辺ツールもセットで担保している。


企業で使えるPostgresとは?EDB Postgresはなぜ企業で導入されるのか?

  • 前半の講師はEDB社の高鶴さん
    • (もしかして、今年の4月に問い合わせに対応してくれた人かな・・・)
    • まだEDBはシェアはそれほど高くはないが、今年になって引き合いが多くなってきた。
    • 某商用DBMSのライセンス形態変更の影響か?と。
EnterpriseDBの紹介。
  • PostgreSQL、関連製品(EDB Postgres)の販売、サポート。
    • 運用ツール、連携ツールも開発、XAコネクタも予定。
  • PostgreSQL開発コミュニティへの参加も多数。
    • Amit, Bruce, Robert...
  • 製品ロードマップの公開
  • 24h365dサポート
  • Fixパッチの提供
  • Private Cloud, Public Cloudにも対応
    • OpenStack準拠のPrivate Cloud構築
  • EDB Postgres はPostgreSQLメジャーバージョンリリースから数ヶ月で対応。
PGDGとの関連
  • 性能改善等はコミュニティへ還元
  • Oracle互換などはEDB独自で
EDB Postgresの売り
    • パスワードポリシー、ユーザ管理機能強化
    • 監査機能強化, etc
      • スケーラビリティ向上、リソースマネージャ
      • 高速パーティション化、Oracle互換構文
      • クエリヒント
      • SQLプロファイラ、INDEXアドバイザ
      • DRITA(statspack相当)
    • Oracle互換性
    • Oracle RMAN相当のバックアップ・リカバリツール
    • データローダ(EDB Loader)はSJIS, EUC, UTF8対応している。


  • 後半はアシストでの事例紹介
  • 講師は徳原さん。
採用傾向
  • EDB Postgres導入は成長傾向にはある。
  • Oracle DB EEかからの移行が主力。
  • 稼働環境は半分は仮想環境。
    • ポイントは割当CPUコアライセンス。ソケット数ではない。
    • 利用CPUコア数は半分が4コア。8コア〜36コアもそれなりに利用。
移行事例時の選定ポイント
  • 宅配事業向けの在庫管理システム
    • 仮想化が契機。仮想化環境でのOracle EEのライセンスコストがネック。
  • 電子基盤企業向けEDIシステム
    • ここも仮想基盤上でのコストが問題だった。
    • SQL互換率98%。移行が非常に楽だった。
  • ISPアカウント管理
    • Oracle EEからの移行
    • ハードウェア刷新の併用で検索が10倍高速
  • 生産/販売/物流(後述)
  • IoT エネルギーマネージメントシステム
    • 新規システムでの採用
    • 日時:1280万件のセンサ情報収集
  • 店舗サポート・システム
    • Oracle EE RACからの移行
    • RACに相当する可用性を提供(Down time 50秒)
  • ANA ITコスト構造改革
OracleDBからの移行
  • 1400本のストアド・プロシージャ→97%互換
  • 新バージョンになればOracle互換機能は増えていく。
EDB Postgres採用にむけて
  • EDB Migration Toolkit
    • 移行成否、移行エラーを確認可能。
  • 移行体験サービス(有償)もある。
  • 移行アセスメント
    • 移行の難易度判定、コスト効果のレポート提示。


製品の組み込みDB も PostgreSQL で!製品での PostgreSQL/PowerGres 採用事例のご紹介

  • 講師はSRA OSSの佐藤さん
    • あれ、以前と雰囲気が違う気が・・・
SRA OSSの紹介&自己紹介
  • SRA OSSの本社は米国・サンタクララにあるよ。
  • 佐藤さんは石井さん配下のサポート部隊の長。
PostgreSQLへの取り組み
組み込みDB(パッケージ製品用組み込みDB)
  • パッケージ製品用DBMSの悩み
    • 価格的に製品を売っているのかDBMSを売っているのか分からない問題。
    • 冗長化・暗号化などのDBMSオプションが高い問題
    • OSS化はノウハウがない、サポート体制が不安問題。
  • 更にOracleライセンス体系変更(Oracle SE2一本化)問題が。
組み込みDBの要件
  • インストールが楽
    • DBのインストールを意識させないのがベスト
    • PostgreSQLは△:インストーラメッセージが英語しかない
    • PowerGresは○:日本語対応
  • メンテナンスが楽
    • PostgreSQLは△:オンライン・バックアップ
    • PowerGresは○:オンラインバックアップGUI設定
  • サポート体制
    • 古いバージョンのサポート
    • PostgreSQLはX:自己責任、EOL5年
    • PowerGresは◎:延長サポート
  • 低コスト
PowerGresの紹介
  • 概要
    • 基本はPostgreSQLと同じ。
    • PowerGres Plus(富士通開発:SRA OSS販売)は独自機能追加もある。
    • 販売実績:10000本以上。
    • PlusはWAL二重化, TDE
    • HAはAct-Stb構成のクラスタウェア同梱
    • 24h365d サポート、7年サポート+延長サポート
    • PostgreSQL自体のサポートもやってる。
  • GUI管理ツール, Webブラウザベース
  • Plusの機能紹介。WAL二重化とTDE。
    • TDEのオーバヘッドが低いのが売り。
導入事例
  • HSOL「りいぶる」
    • PowerGres on Windows
    • 価格がポイント。自治体単位での導入がある。
  • カシオヒューマンシステムズ「ADPS」
    • PowerGres Plus
    • 個人情報管理のためのデータ暗号化が必要だった。商用RDBMS暗号化オプションが非常に高い。


スペシャル対談「石井達夫さんに訊く、PostgreSQLのこれまでとこれから −次期バージョン、PostgreSQL10.0はどこへ向かう?」

  • 今日のメインイベント。俺のタイピングが火を噴くぜ!
  • トーカーはSRA OSSの石井さんと、DBOnlineチーフキュレーターの谷川さん
  • DB Online立ち上げから5年ですか。
  • OSS DBMSの記事は結構人気のある長く読まれる記事。
  • 今回は公開インタビュー形式。
石井さんの自己紹介
  • もともとは組み込み系エンジニア。アセンブラとかもやってた。
PostgreSQLとの出会い
  • "PostgreSQL"の前から関わっていた。バークレー大学の"Postgres"プロジェクトの頃から。
  • ハワイ大学リポジトリの実装に関わっていた。RDBMS上にOO/グラフ的なものを作っていた。('92,93頃)
  • 帰国後、"Postgres95"に関するMLを立ち上げた。最初は数名くらいの有志から。
  • SRAの仕事として使いようになったきっかけは?
    • 1999年にPostgreSQLの仕事をするようになった。この年にコミッタ就任&JPUG設立。
    • JPUGは当時は50人くらい。企業でも僅かに使い始めた。(6.5のころ)
  • 当時の苦労談
  • PostgreSQLが広まるきっかけ
    • このころに本を書くようになった。これも普及に一役買ったかも。
OraclePostgreSQLの競合資料探したが日本にも米国にもなかった話
  • 実は日本はそのころからPostgreSQL先行国だった疑惑。
7.xの頃の苦労
  • このあたりで日本語対応を行った。
  • 他の言語をどうするのかは悩んだ。ネット経由でアジア圏の人に協力してもらった。
PostgreSQLイケるな?と思ったのはいつごろ?
  • 6.x のころはWALなかったし。性能は数tpsとかw
  • 2003年くらい(PostgreSQL 7.4くらい?)から使えそうな感触。
  • 7.4は結構安定したバージョン。ビジネスとして使うには良かった。
  • PostgreSQLが世に広まったのは、8.xのころという印象。
  • 日本はLinux普及が遅かった。だからWindows対応で広まったのでは。
  • (個人で気には8.3の自動バキュームなんだよなー)
レプリケーションの話
  • 当初はコア機能に入らなかった。pgpool-IIのレプリケーション機能の開発動機にもなった。
  • 9.0のレプリケーションが入ってから、PostgreSQLフォークが増えた。
    • 一回フォークしたら、コアに吸収されないと成長しないという問題。
9.xでの性能向上の話。
  • HW/Linuxの向上も関わっている。
  • PC Unix(FreeBSD等)が広まったのも一因かも。
商用DBMSからの移行
  • 移行というより、新規にPostgreSQL導入という流れだった。
9.xの進化について
  • 若い開発者がどんどん入ってきたのは大きい。
  • 若者は失敗を恐れない。馬力もある。
PGEconsの話
  • ベンダーが寄り集まってもアウトプット出るの?という谷川さんの疑惑。そこを覆したのは凄い。
  • 会社同士の競合もあったかもしれないが、検証を共同で実施できた。
  • PGEconsのマンネリ化問題w
    • 次のステップは開発者コミュニティへのフィードバック → CR部会
    • 日本のビジネスユースを掬い上げてコミュニティへ。更にPGEconsとして若い開発者を送りたい。
    • 日本の開発者のプレゼンスを高めたい。
PostgreSQLの今の立ち位置
  • 日本でPostgreSQLが良く使われているのか?特異なのか?
  • 最近はそんなことはない。日本以外の国でも使われている。最近は、むしろ日本もっと頑張れ的な。
世界のPostgreSQLイベント
  • 世界中でPostgreSQLイベントは開催されている。北米、ヨーロッパ、ロシア、インド、シンガポール
  • ロシアのカンファレンスの話。ロシアの象は登山服着用w
    • ロシアの大臣がカンファレンスでスピーチする。会場も大規模。派手。600人くらい参加。
  • カナダ(オタワ)
    • 最初の開催から10年。
    • 9.6のパラレルクエリの話など。
    • 9.1→9.5までの性能向上の過程。こうやってみると、順調に性能が改善されている。
      • 性能は開発者の関心の高い箇所。
      • パラレルクエリもその一部
  • 日本からはNTT関連メンバが多く参加している。
    • でも、まだ世界の開発者増加に比べると、日本の開発者増加は少ないという印象。
9.6は?10.0は?
  • 一応、9月か10月の予定。
  • 9.6は9.6のまま。10.0にはならない。次は10.0だろう。
  • じゃあ、10.0はどうなりそう?
    • そろそろ節目にきている。並列処理、クラスタリングがテーマではないか?
    • 過去にフォークしたクラスタリングプロジェクトは成功しているとはいえない。
  • 10.0=大きな変更というのは、並列処理というコアな部分の改善なので。
コミュニティ運営の課題
  • 古株の開発者と若手の開発者の意見の相違は、今のところうまくいってるように見える。
  • パッチを作る人は増えた。レビューア数が絶対的に足りない。対策中。
  • JSONなどコンサバでない機能の取り込みもPostgreSQLに入っている。これは世間の流れなのか、一部メンバが頑張っているのか。
    • JSON等はロシア開発者が頑張っている。データ型とかは受け入れられやすい。
    • (このへんは元々の拡張性の高さもあるよなー)
  • どんどんバグ出しをしてほしい。
  • PGEcons/CR部会でもそういう新機能への参画をするのか?
    • まずはTODOの整理から。
石井さんが気に入っているPostgreSQL
  • 元々、データの扱いに興味がある。大量のデータの管理などに興味がある。
  • PostgreSQLソースコードアーキテクチャが綺麗。
  • 変数名、コメントなど些細な部分にもコメントが来てくれるのは嬉しい。
  • 趣味として楽しめるPostgreSQL(笑)
PostgreSQLコミュニティに参画してほしい人
PGConf.ASIA!
  • 12/2, 3 @秋葉原
    • ASIA最大のイベントになるように。
    • 今後、アジア内で会場を持ち回りにしたい。
  • JPUG, PGEconsメンバの有志で活動中。
  • プログラムは募集中!
  • アジアの中でも中国は結構PostgreSQLは盛り上がりつつある。


その他

  • 大崎駅周辺、探してみると意外と中華系ラーメン店多いのね。
    • 今日食べたのはモヤシソバ(720円)@一番

OSSカンファレンス総会に行ってみた

今日は年休だったんだけど、OSSカンファレンスの総会があるということで大崎まで足を運んでみた。

総会そのものは興味ないのでパスしたが、後半のオープンソースコンテスト発表会には興味があったので、聞いてみることに。

  • 今回はPostgreSQL/DBMS関係の発表はないけど、こういうのって、普段の仕事でもなかなか聞けないからねー。
  • あとは、どういう人種(年代や会社、職種等)がこのコンソーシアムに参加しているのかを見てみたかった、というのもある。
  • (実は大崎で私的な用事があったので、そのついでにOSSカンファレンスにも出てみたというのが真相に近い)

まあ、いろいろ分からないところも多かったが、こういう話も聞いておくのもたまにはいいかな。

なお、だからと言ってOSSコンソーシアムに入会するかと言われると・・・微妙ですなあ。
会社として参加するには、説得するのが難しそうだし、個人参加という感じの団体でもなさそうなので。


プログラミングコンテストに勝つためのOSS

  • 発表者は左野寛之さん。会津大の学生さん
  • Google Summer of Code 2016に参加。RoR改善に取り組んでいる。
  • OSS開発奨励金:プロジェクトが完遂したら$5500!
プログラミングコンテストの話
Aizu Online Judge(AOJ)
プログラミングコンテストのためのライブラリ
  • ソースファイル分割不可、標準ライブラリのみ。
Social Snippet
  • プロコンの問題を効率的に。
  • Github経由でスニペットを配布。
    • Githubの検索とくらべて何が有意なのか?
    • ライブラリのバージョン管理(git連携)
    • スニペット間の依存関係解決
    • Vim/Aceに対応。
今後にむけて
  • オンラインジャッジを利用した自動的な評価。
プログラミングコンテストOSS


OSS ERP JPiereの紹介

  • 講師は株式会社オープンソース・イーアールピー・ソリューションズ 萩原秀明さん
  • 学生の頃に会計を専攻していた。
  • オープンソースERPに出会って、依頼ERP一筋でやってきた。
  • JPiere=iDempiereのプラグイン
    • 日本の商習慣に合わせたもの。
ERP(Enterprise Resource Planing)
  • 企業の業務データの一元管理ができるのがメリット。しかし高額である。
  • そこでOSSERPの出番となる。
    • 業務アプリケーションの開発基盤という側面もある。
    • Compiereという前身がある。15年くらいの歴史がある。
    • クラウド環境でも利用可能。最近の客は主にクラウド上で利用。
  • ERPとして必要な機能は一通り揃っている。
  • Best of Open Source Softwareも受賞。
  • JPiereはプラグイン集。
  • Linux/PostgreSQL/MySQLなどのミドルのソースをカスタマイズして提供する人はそれほど多くはない。
  • アプリケーションレイヤでは、ソース改造・カスタマイズして提供というケースは多い。
    • が、その場合メンテナンス(アップグレード時)に追随するのが大変。
    • プラグイン化によりその問題を解決
    • JPiereaはGitbucketでコードを管理している。
JPiereのデモ
  • 受注のデモ。
  • 画面設定はパラメータ設定で可能。
JPiereの宣伝。
  • 高い人件費、高額なシステム
  • 導入工数を減らして素早く低コストで
    • iDempiereの標準機能+Jpiereの組み合わせで必要機能へのギャップ。
  • JPiere
    • 例:低減税率への対応
    • 売上の処理
    • 日本語レポートの生成。
    • 日本の商習慣だけでなく、UI改善や便利に使うためのツールも提供。
    • パラメータ設定の最適化
コミュニティ
  • 技術と収益をiDempiereのコミュニティにも還元することを考えている。
  • 2週間くらい合宿みたいなこともやった。
    • 日本とアジア圏で商習慣ってどのくらい違うのかなー。
  • フリーライダーにはなりたくない。
    • 寄付やバグレポートは毎月やっていく。


OpenFlowパッチパネルのご紹介

  • 講演者は仲間 修也 氏
  • 沖縄オープンラボラトリ所属
オープンラボラトリの紹介
  • NTTCom/NEC/株式会社イイカの3社で設立。うるま市で活動。
  • 次世代ICTの実用化、普及のための研究開発
OpenFlowパッチパネル(OF-Patch)とは
  • OpenFlowスイッチにてパッチパネルを実現したもの。
  • パッチパネルって?
    • 裏面にサーバ、ルータ、スイッチを、表面の抜き差しでNW構成を変更するもの。
  • OpenFlowの説明
    • フローを入力することで制御する。
  • OF-PatchとGUIの制御画面を今回開発している。
OF-Patchの必要性
  • 従来のパッチパネルでは、物理的な配線を手動で切り替える必要があった。
  • それをソフトウェアで制御することで、現地での作業等なしにしたい。
  • 沖縄オープンラボに実際に組み込んでみた。
OSSとしての公開。
of-patchの実装
  • Leaf-Spine構成
    • 複数のOpenFlowスイッチを組み合わせてポート数を確保。
    • Spine:中間層
    • Leaf:末端層。最大48台。2000近くのポートが使えるようになる。
  • 経路選択
    • 経路に偏りが起きないように制御している。
of-Patchのデモ
  • 円周の外側が接続機器などになる。
  • デモもSpine/Leafの構成。
  • 画面上で線を繋いでフローを追加/線を切ってフローの削除などを実施。
今後の取組
  • 複数データセンタ対応
    • 沖縄オープンラボラトリが那覇近くに移転した。
    • このため拠点をまたいだ対応が必要がでてきた。
  • OAM機能
  • SINET検証


オープンソースな個人番号カードドライバ

個人番号カード(マイナンバーカード)の解析
  • 署名用証明書
    • 身分証明(e-Taxなど)
    • 電子申請
  • 利用者認証用証明書
    • WebサイトログインのためのX509証明書。
    • 公開鍵/秘密鍵のペア
データモデル
  • 総務省が消せと言ってくるかもしれない」
  • ツリー状の構成。Unixファイルシステムに類似。
  • 緑は普通のファイル
  • 黄色はハード的に読み取り不可?になっている。チップを開けると自爆する機構が入っているかも。
APDUコマンド仕様の話。
  • 4バイトのコマンドと後続するペイロードで構成。4つのケースがある。
  • カードによって独自の命令があったりする。マイナンバーにもそういうものがある。
  • APDU通信の例
  • まさかのマイナンバーの公開w ASCIIで入っているのな。
  • 名前・住所はUTF8、生年月日はASCII。性別は0x31。
    • 女性が0x30なのか0x32なのかは不明w
ここから本題?
  • プロトコル解析→OpenSCカードドライバの開発・・・公的個人認証の普及。
  • パスワード不要の社会をつくりたい。
    • 幼児や老人には無理なことを押し付けてないか、という話。
  • マイナンバーがきっかけでPKI普及につながればいいのでは。
OpenSCスタック
  • PCSC/PKCSの上に乗るのがOpenSC
  • OpenSCの上にOpenSSLやVPN、メーラ、ブラウザ、無線LAN等のアプリケーションが使える。
PKCS#11 APIs
  • インタフェースだけ規定。
  • 全部で100個以上あるらしい。主要なものは実装されつつある。
PKCS#15
マイナンバーカードでSSHの話
総務相に言いたいこと
  • 仕様を隠さないで
    • ハックする人がいるから無駄ですよ
    • 普及させたいなら公開しろと
目指していること
  • エストニア・ベルギーのような電子先進国
  • 日本のここがダメ
    • 仕様非公開、クローズドソース、Java Applet(笑)、Linuxが確定申告できない
    • 日本のJPKIのページは濱野さんが作っている
      • 日本の総務省はこれを快く思わないだろう(笑)
総務省への低減
  • マイナンバーへの不信をなんとかしろ、秘密鍵生成の仕組みを公開すべき
    • 日本政府の陰謀論(笑)
    • そういう情報を公開していないのがいけない。
  • 失効情報の検証
  • 名寄せ問題
    • 名寄せ業者を潰さねばならない→信頼できるID Providerをつくらないといけない。

OpenLDAP高速化の話

  • ここから本題かw
  • イギリスで発表したスライドの説明
WiredTiger
  • BekeryDBを作った人がまたWiredTigerという新しいDBを作った。
    • 最近のマルチCPUに対応。
  • WiredTigerを使ったOpenLDAPバックエンドを開発した。


以降はわりとどうでもいい話。

役員体制の報告

  • わりとどうでもいい。


コンテスト結果発表

  • 優秀賞(2名:賞金10万円)
    • 佐野さん(IPA発表があるので、もう帰ったらしい)
    • 萩原さん
  • 最優秀賞(1名)
    • 濱野さん

ハッカーズチャンプルー2016 カンファレンスに行ってきたよ

ということで、JPUGの予算を使って沖縄そばを食べに・・・じゃなくて、沖縄支部長の@zumaさんのご招待でハッカーズチャンプルー2016 カンファレンスに行きましたw

一応、きちんと発表もしましたよ。
PostgreSQL 9.6がやってくる!

PostgreSQLを使ったことがなさそうな人も多いのかな?
それでこのスライド内容で大丈夫かな?
と不安に思うところはありましたが、まずまずの感触。

「ポスグレはいいぞ」と「psqlオセロ」の反応が良かったので、自分的には良し(違
まあ、PostgreSQLを最近使っていなかった人や、今まで使っていなかった人にも、PostgreSQLをちょっと見なおしてもらえる機会になれば幸いです。

ハッカーズチャンプルー、とにかく若い人(学生含む)が多く、熱い発表が多かったですね。
PostgreSQLにも、こういう若い人をなんとか呼び込んでみたいものです。

あ、もちろん沖縄そば/ラーメンもきちんと食べましたw