2013-04-01から1ヶ月間の記事一覧

Mercurial-2.6-rcの並列になったupdateをmozilla-centralで試す

rhodecodeのリポジトリよりずっと巨大なmozilla-centralでMercurial-2.6-rcの並列になったupdateを試してみた。 mozilla-centralの大きさはこんな感じ。13万リビジョン、7万8千ファイルある。 % hg tip リビジョン: 129561:aa620f3fc2f7 タグ: tip ユーザ: M…

Mercurial-2.6-rcの並列になったupdateを試す

多数のパフォーマンスチューニングを含むMercurial-2.6のリリース候補版がリリースされた。今回のリリースからhg updateの処理が並列化されるようになったので試してみた。 インストール バージョンを指定してインストール。 % pip install -U mercurial==2.…

DataMapperでOptimisticLock(楽観ロック)を利用する

dm-core-1.2.0の話です。 DataMapperでOptimisticLock(楽観ロック)を実現するプラグインはいくつか検索でヒットするのですが、古すぎて利用できなかったり、UPDATE文のWHERE句に条件が入るのではなく、プログラム側で判断しているためアトミック性がなかった…

DataMapperのdm-migrationsのマイグレーションファイルの通し番号は重複していても問題ない

dm-migrations-1.2.0の話です。 dm-railsで次のようにdm-migrationsのマイグレーションファイルを生成すると、001から始まる通し番号のマイグレーションファイルが作成されます。 $ bundle exec rails generate migration create_users invoke data_mapper c…

DataMapperで比較的高速にidだけ取得する

dm-core-1.2.0の話です。 現在の検索条件でidだけ取得したい、、10000件くらい。って要望、よくあると思う。:fieldsで指定しても、モデルのインスタンスを作るため、sqlを直接実行した時にはかなわなかったりする。 なので、DataMapper::Collectionに次のよ…

DataMapperとMySQLの組み合わせでDDLにコメントを含める

dm-core-1.2.0の話です。 DDLにコメントを含めたい!という要望があったので。 モンキーパッチ # dm-core-1.2.0/lib/dm-core/property.rb # commentを定義可能にする module DataMapper class Property accept_options :comment attr_reader :comment end en…

DataMapperでinに空の配列が渡された時になんとか空のコレクションを返す

dm-core-1.2.0の話です。 DataMapperはinの条件に配列を渡すと次のように良い感じで検索してくれる。 class User include DataMapper::Resource property :id, Serial property :name, String end User.all(id: [1, 2, 3]) # SELECT "id", "name" # FROM "us…

DataMapperのクエリチェインが使えない(場合の)話

dm-core-1.2.0の話です。 DataMapperのクエリチェイン(正式名称しらない。。)は特定の条件下(DataMapper::Collection#union(|, +))で利用できない理由と、回避策を調べた。 長いです。 class User include DataMapper::Resource property :id, Serial proper…

DataMapperでinner joinする

dm-core-1.2.0の話です。 DataMapperでjoinする話が全然検索に引っかからないので。メモ的に class User include DataMapper::Resource property :id, Serial property :name, String has 1, :profile, 'UserProfile' end class UserProfile include DataMap…