You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Deadlocks are dreadful. They can be a minor annoyance or, depending on your application’s domain, can seriously affect functionality. At Brightbox, many of our systems are highly concurrent and we’ve had our fair share of deadlocks. We’ve learnt a few lessons about preventing them and we’re hoping those lessons will be useful to others. Before we delve into it, I recommend that you read our earlie
MySQL (InnoDB) のトランザクション分離レベルは、デフォルトで REPEATABLE READ です。この設定では、トランザクションの最初のクエリでデータベースのスナップショットを取ってしまうので、他のトランザクションがコミットした変更が見えません。Web アプリケーション開発では結構使いづらい分離レベルです。特に理由がないかぎり READ COMMITTED を採用したいところです。 Rails 3.x 時代までは、 ActiveRecord::Base.connection. execute('SET TRANSACTION ISOLATION LEVEL READ COMMITTED') ActiveRecord::Base.transaction do # ... end のように書かなければなりませんでしたが、Rails 4 でトランザクションごとに分離レベルを指定で
Rails3はSQLite3とPrototypeがデフォルトになっていますが、業務などで実際に扱う際はMySQLとjQueryを利用することが多いと思います。そこで個人的なアプリ作成手順が固まってきたので、一旦まとめてみます。調査/検証目的のアプリの想定で、テストの生成もしないようにしてます。 環境 Mac OS X Snow Leopard Ruby 1.9.2p0 (MacPorts) Rails 3.0.5 MySQL 5.5.8 (DMG Archive) アプリ作成 rails new sample -JT -d mysql -JオプションでPrototype生成スキップ -TオプションでTest::Unit生成スキップ -dオプションでデータベースMySQL指定 Gemfile、config/database.ymlがMySQL仕様になる gemはmysql2が利用される Ge
RailsのPDFも読まずに「How to make a todo list program with Rails」の チュートリアルをやってみてるんだけど、 No such file or directory - /tmp/mysql.sock ときたもんだ。 この解決方法は樂水開発日記さんの「MySQLのソケットの位置はどうやって指定する?」 に書いてあるんだけど、あとでぱっと見てわかりやすいようにメモメモ。 [yz@localhost Todo]$ mysqladmin -p version Enter password: mysqladmin Ver 8.40 Distrib 4.0.23a, for pc-linux-gnu on i686 Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB Th
似たようなプラグインもいくつかあったけど、どれもしっくり来なかったから自分で作った。 その名も「Mysql Cluster Adapter」。 eth0jp's activerecord-mysql_cluster_adapter at master - GitHub http://github.com/eth0jp/activerecord-mysql_cluster_adapter MySQL Cluster Adapterの機能 複数Writableに対応 ただReadOnly機能がないだけだけど。 ※マルチマスターレプリケーション対応ではない。 クラスタリング・自動復旧 リクエストが来た時にランダムで使うノードを選択する。 もし選択したノードが死んでいたら再接続を試みて、接続出来なかったら次のノードを選択する。 全てのノードが死んでたら500エラー。 トランザクション トランザクシ
MySQL + Railsで大規模サイト構築実験もいよいよ大詰めです。 前回までは、 DB : Active-Active LB : Active-Passive 構成を想定して構築してきました。 また、レプリケーションの遅れによる更新の衝突を避けるための解をいくつか紹介しました。 だがActive-Active構成にするコストが大きい!! 「そもそもActive-Active構成で組む必要があるのかどうか?」といった疑問が沸いてきました。 調査を進めたところ、DBのActive-Active構成にするコストに対して、メリットが少ないことが判明。 [Active-Active構成を組むメリット] 瞬間的なコネクション増への対応が可能。 コネクションの負荷分散のみ可能。(I/Oの負荷分散はできない) [Active-Active構成を組むデメリット] 更新系クエリの負荷分散は不可。 レプリケ
このエントリでは Ruby on Rails と MySQL を使って日本語の全文検索を行う方法を記述する。Ruby on Rails のバージョンは 2.0.2、MySQL のバージョンは 5.0.67、Tritonn のバージョンは 1.0.12、Hyper Estraier のバージョンは 1.4.10 を使用した。サンプルの文章データとして、あらゆる日本人にとって極めて身近な著作権切れ文章である『ドグラ・マグラ』と『黒死館殺人事件』を利用した。処理のために整形したデータは本エントリに添付しておく。またデータベースへアクセスするコードではマイグレーションを除きできるだけベンチマークを取るようにし、その結果は本エントリの最後に記載する。 ページネーション Rails でページネーションを実現する will_paginate という plugin は ActiveRecord に標準でつ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く