GrailsでのDB Migration Plugin : Liquibaseを使ってる。
Groovy でメール送信
PostgreSQLでのALTER TABLEのパフォーマンス
基本的には、一旦テーブルのINDEXを全部DROPしてからALTER TABLE ADD COLUMNして、終わったらINDEX付け直すのが王道みたい。この辺、内部のストレージの使用方法的にはどんな工夫をしてるのかちょっと気になる。
また、Liquibaseでテーブル列を追加するようなmigrationを行うとき、上記のようにINDEXのDROPと付け直し処理を省力化してくれるのかも検証ポイントか。
Groovy の Process クラスが、 "|" でパイプをつなげられる仕組み:
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の話: