MySQLのオンラインDDLでDeadlockエラーになるケース

これは、MySQL Advent Calendar 2022 の7日目の記事です。 昨日は taka_yuki_04 さんでした。 next4us-ti.hatenablog.com MySQL 5.6からオンラインDDLがサポートされ、DDL実行中でもデータの読み書きが可能ですが、DDL実行中にトランザクションの状況によっ…

ISUCON8本選は6位でした

本選で戦ってきました 結果は6位 13,281点 悔しい負け 今年こそは優勝したい!と思っていましたが結果は惨敗でした。マジで悔しいです。 予選の感じで3人がそれぞれの力を出せれば優勝はできそうだなという感触があったし、songmuさん、najeiraさんという超強…

ISUCON8予選突破しました

予選突破 ISUCONというWebアプリケーションのパフォーマンス改善コンテストに参加し、予選突破しました。去年は不参加だったので2年振り2度目。(blog書くのもISUCON6振りで2年振りという... output無さすぎ) いやー実に楽しかった。やっぱりISUCONでしか味わ…

ISUCON本選に出場して9位でした。最高スコアは3位

ISUCON6本選行ってきました 恒例のレゴ 戦ってきましたー 最終スコア チームにるぽの結果は9位でした。 スコアの推移 最高スコアは31,776点で最高スコアだけなら3位でした。 このスコア出たときはいけるぞ!まだ入賞狙える可能性あるぞ!という感じでしたが…

ISUCON6予選突破しました

ISUCON6予選突破 ISUCONというWebアプリケーションのパフォーマンス改善コンテストに参加し、予選突破しました。 やっとですよ。やっと。ISUCON4, ISUCON5と予選敗退していてプライドがズタズタになっていたのでやっと突破できて本当に嬉しいです。 スコアは…

Amethystを使い始めてSpacesを見直してTotalSpaces2を入れた

MacでSpacesはVMWareでWindowsを起動するときくらいしか使ってなかったんですが、Amethystというタイル型ウィンドウマネージャを入れたことでより良いSpaces環境が欲しくなってTotalSpaces2を導入した。 TotalSpaces2totalspaces.binaryage.com TotalSpaces2…

rubyでArray#find, detectを使い分ける

find, detect (Enumerable) - Rubyリファレンスref.xaio.jp detectメソッドは、findの別名です。 今までfindをよく使ってましたが、ActiveRecordを使っているところではActiveRecordのfindと区別するためにdetectを使おうってメンバーが話しててそうだなと思…

jQuery#dataは値をconvertする

次のようなhtmlに$('#tel').data('tel')で取得すると300000000に変換されてしまう。 <span id='tel' data-tel='0300000000'>電話番号</span> jQueryのバージョンによっては下記のようにjQuery#dataは数値っぽかったら数値型に変換した結果を返してくれるみたいです。余計なお世話だ。注意しましょう。 $('…

Hashから値を取り出す時にもコードに意思を埋め込む

何気ないところでもコードに性格でますよね。下記のようにHashからvalueを取得するの一つとっても hash = {name: 'foo'} hash[:name] # foo 下記のようにfetchを使う事でアクセスするキーが必ず存在することをコードで示せます。 動作が違うのはHash#fetchは…

#SQLアンチパターン ファントムファイルに立ち向かう

SQLアンチパターン SQLアンチパターン作者: Bill Karwin,和田卓人(監訳),和田省二(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購入: 9人 クリック: 698回この商品を含むブログ (41件) を見る ファントムファイル(幻…

ブログを更新する

ずっとブログを書いて無かったのですが、最近幼なじみがブログを始めてコツコツとコンスタントに更新しているんですよ。業界も全然違うので内容は全然異なるのですが、なんか刺激を受けて私もまたブログを更新していきたいなーと思ってます。 せっかくなので…

Macでもタイル型ウィンドウマネージャを使う

awesome wmを使いたい人生だった http://awesome.naquadah.org/ 一緒に開発してるメンバーでawesomeってウインドウマネージャを使っていて、便利そうだなーとずっと思ってたんですけど、Macには無いよなーと思って諦めてたらMacでも同様のものがありました M…

Amazon RDS for MySQL リードレプリカを使ったテーブル変更

RDBでデータ件数が多いテーブルに対するカラム追加を行うと時間が数時間かかって困るんですけど、RDSだったらリードレプリカを使えば比較的容易にできるってのを最近知りました。 MySQL5.6からはオンラインDDLとかPercona-Toolkitのonline-schema-changeとか…

ISUCON4 予選に参加した

予選に参加して惨敗した 9/27の一日目に参加して最終スコアはworkload 8で33,000ぐらい。 惨敗してかなり悔しい。根拠もない自信で予選くらいは思いつく実装を全部できればなんとかなるやろと甘く見てた。。 本戦出場の最終的な結果は10/6辺りに発表されるら…

Google App Engine for Goでデプロイしてみる

SDK Download https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Go path設定 export PATH=/path/to/go_appengine:$PATH サンプルアプリケーションをダウンロード https://github.com/GoogleCloudPlatform/appengine-guestbook-…

golangのプログラムをbuildしてwindowsのexeを作る

golnagをセットアップする 今回はgvmを使った。OSはMac OS X。 https://github.com/moovweb/gvm gvmをインストール % bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) go1.3をインストール % gvm i…

hubコマンドで作業中のgit branchでpull request開くの楽になった話

何はともあれまずはhubをインストール brew install hub .zshrcに下記を追加 function current_branch() { ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo ${ref#refs/heads/} } topicブラ…

InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013

はじめに この記事は、MySQL Casual Advent Calendar 2013 7日目の記事です。 〜 Casual に記事を書けばええんやでヽ(´ー`)ノ 〜 私がMySQLで えっ?! っと思った下記エントリーの挙動が何故そうなってしまうのかを書きたいと思います。 InnoDBで行ロック/…

Google Cloud SQLのMySQLはテーブル名の大文字・小文字を区別する

lower_case_table_namesが0 http://gyazo.com/d498c0763518ad915063f031996e1458.png 変更することもできないみたいだ http://gyazo.com/18c463fc5da72b4570c79f67ca74cb54 全然見えないや。。gyazoはっとく

Blogを容易に書けるようにCreate Linkをセットアップ

参照しているブログの内容をこのブログに引用したい時にいちいちmarkdownで書くのは面倒なのでCreate Linkを使います。 インストール Chrome ウェブストア - Create Link 他のサイトから引用する時にしようするフォーマット > %text%%newline%%newline%> [%t…

vagrantのインストール

最近、Chefに興味を持って触っています。Chef便利です。Chefを使うとレシピと言われるファイルを用いてサーバにnginxなどをインストールすることができます。 使いこなせるようになると以下のような嫌な事から解放されます Aのサーバにはemacsがインストール…

MySQLの設定ファイルmy.cnfをいじってslow-queryを検出する

はてなダイアリーからはてなブログに引っ越してきました githubで慣れたmarkdown記法が使える gistのコードが貼り付けられる あたりがはてなブログの利点かな markdownで下記のようなコードシンタックスが付くのは楽ちんでいいですね。 function animationPi…

050plusに登録してみた。お友達紹介キャンペーンコードもあるよ

基本料金が月315円で050の電話番号が取れて、通話料金は下記で電話がかけられる。試しにどんなものか契約してみました。 携帯へ:16.8円/1分 一般電話:2.8円/1分 一部IP電話:無料 今ならお友達紹介キャンペーンってのをやってるらしくて一応ココにも貼ってお…

Google App EngineのHttpHeaderを調べて見た

name:Host data:xxxx.appspot.com name:Cache-Control data:max-age=0 name:Pragma data:no-cache name:Accept data:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 name:Accept-Language data:ja,en-US;q=0.8,en;q=0.6 name:Accept-Char…

PyCon JP 2012(App Engine Conference 2012)でパネルディスカッションのモデレータしてきました

PyCon JP 2012に参加してきました。初めてパネルディスカッションのモデレータをつとめる事になりドキドキしていたのですが、Google App Engineに詳しいスペシャルなパネラーさんのおかげでなんとか終わりました。 当日どれくらいの人が来てくれるのか不安だ…

テスト駆動JavaScriptの第2章をメモ

Node塾 講義その6に行くのでメモった Node塾で下記の読書会をする。テスト駆動JavaScript作者: Christian Johansen,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2011/11/25メディア: 大型本購入: 19人 クリック: 331回この商品を含むブロ…

2011年も今日でおわり

毎年、年末年始にみんなblog書いてるので私も何か書こうかなと思うのだが、特に書くことない。今年は、特別何かの技術に特化して調査したりすることもなく淡々と自分のいま持っている技術でモノを作るというのをしていた気がする。 Google App Engine 2009, …

Chrome Web Storeに公開しているChrome拡張のレビューコメントを取得する方法

こんな感じで取れた。Review Notifyでも作ろうかな。Reviewをメールで配信してくれたりすると嬉しいだけどないよね? function getReviews(extensionId, callback) { var entities = [{'url' : 'http://chrome.google.com/extensions/permalink?id=' + exten…

緊急地震速報をしてくれるChrome拡張を作りました。

3月11日(金)午後2時46分頃にマグニチュード 9.0を記録する「東北地方太平洋沖地震」が発生し今も余震が続いています。仕事に集中できないくらい余震が発生しています。この状況をエンジニアとして何か出来ないかと思いChrome拡張を作りました。 この拡張機能…

Chrome拡張ATND NotifyでGoogleカレンダーに参加予定イベントを追加する機能を入れた話。または、ATNDの予定をiPhoneのカレンダーに入れる方法

ATND Notifyってこれです。 機能追加の話 という事だったので しますた。 という訳でGoogleカレンダーに追加したい人はATND Notifyをインストールしてください。インストールはここから。インストールするとイベントカレンダーにこんなボタンが追加されてま…