home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2013/02/07/今日の調査メモ(Grails + MongoDB, alter table と PostgreSQL, gzip,bzip2,xz,lzop,lzmaパフォーマンス比較記事)

作成日: 2013-02-07 23:14:26   /   last updated at: 2013-02-07 23:15:21
カテゴリ: Grails Groovy PostgreSQL 

GrailsでのDB Migration Plugin : Liquibaseを使ってる。

Groovy でメール送信

PostgreSQLでのALTER TABLEのパフォーマンス

基本的には、一旦テーブルのINDEXを全部DROPしてからALTER TABLE ADD COLUMNして、終わったらINDEX付け直すのが王道みたい。この辺、内部のストレージの使用方法的にはどんな工夫をしてるのかちょっと気になる。
また、Liquibaseでテーブル列を追加するようなmigrationを行うとき、上記のようにINDEXのDROPと付け直し処理を省力化してくれるのかも検証ポイントか。

Groovy の Process クラスが、 "|" でパイプをつなげられる仕組み:

  • GroovyのJDKのJavaDoc参照。java.lang.Processクラスに "Process or(Process right)" メソッドが追加されている。
    • →これにより、"|"→orメソッドの呼び出しで、パイプがつなげられる仕組みになってるみたい。

unix上での圧縮系コマンドいろいろ:gzip, bzip2, xz, lzop, lzma

今探してるのは、テキスト(それも同じフレーズが隣接して多数散らばってる)と、一部でJPEG画像などのバイナリデータが混在する1GB - 10GB(まれに30GB over)なアーカイブファイルにたいして、とにかく圧縮率が良い物。圧縮自体は夜間バッチ処理などで動作させる予定なので、CPU/メモリは、圧縮時は潤沢に使える。伸長は夜間じゃないかもしれないが、伸長速度は遅くても問題ないユースケース。
そうなってくると、xz か lzma という感じになりそう。ただ、xzのサイトの解説見ると "XZ Utils are the successor to LZMA Utils." とあるので、名前的にlzmaは実質、今ならxzで良いのかもしれない。(実際、gzip/bzip2/lzmaの比較記事は2008年、gzip/bzip2/xz/lzopの比較記事は2011年と、タイムラグがある。)

マルチコアを有効活用するpigz/pbzip2の話:

original url: https://www.glamenv-septzen.net/view/1145