タグ あらびき日記
人気順 10 users 50 users 100 users 500 users 1000 usersActiveRecord::LockWaitTimeout, ActiveRecord::Deadlocked, ActiveRecord::ConnectionTimeoutError が起きた時に原因調査に役立つ情報を表示する gem を作った - あらびき日記
それなりの規模のサービスを運用していると、不可解なエラーに遭遇することはよくあるものです。その中でもデータベース関連のエラーは一見難解な問題に見えるかもしれませんが、原因調査に役立つ情報をさえ出力すればたいていの場合は容易に原因を特定できるものです。というわけで、Rails でよく遭遇するエラーの調査... 続きを読む
Amazon SQS のメッセージを処理するアプリケーションを本番で運用するために考えるべき基本的な 5 つのこと - あらびき日記
Amazon SQS は可用性やスケーラビリティの高いメッセジキューサービスであり、AWS の代表的なサービスの 1 つと言えるでしょう。ところが、本番の運用に耐えられるアプリケーションにしようと思うと考えることが意外に多いものです。本エントリーでは簡単なサンプルアプリケーションをベースに、本番で運用するために考... 続きを読む
SRE Lounge #11 で「安定・安価なECS auto scalingを目指して」を発表しました - あらびき日記
SRE Lounge #11 で Repro で行っている ECS の auto scaling について発表しました。ECS autoscaler で工夫している点についてがメインですが、一般的な auto scaling にも使える知見もあるかと思います。 補足 時間の都合上、発表で言及しなかったこともあるので補足です。 ECS_ENABLE_SPOT_INSTANCE_DRAINING について... 続きを読む
Rails アプリケーションの不安定なテストを撲滅したい 〜system spec のデバッグ方法とテストを不安定にさせる要因〜 - あらびき日記
Rails アプリケーションの開発において、自分の変更に関係のないテストのせいで CI がコケるとストレスですよね?真っ先に直したくなりますよね?不安定なテストを直すのは大変な労力が要ると思ってませんか?実は、たいていのケースは簡単に再現確認ができるし、不安定になる要因もだいたい決まっているし、ログやスク... 続きを読む
Amazon Elastic MapReduce (EMR) ではじめる Presto 入門 - あらびき日記
Presto は日本語の入門書がなく、「Presto を運用することになったけど何から勉強すれば良いかわからない><」という人も多いのではないかと思います。そこで、Presto を運用する時にこの辺の内容を知っていれば、よりスムーズにキャッチアップできたかなぁと思うことをまとめてみました。 Hive connector を使いたいの... 続きを読む
ECS タスクの終了時にコンテナの依存関係が考慮されない問題を解決するコマンドを作った - あらびき日記
ECS タスクは、起動時にはコンテナの依存関係を考慮するのに、次のコメントからもよくわかるように終了時は全く考慮しません。 A container can always stop, die, or reach whatever other state it wants regardless of what dependencies it has cf. agent/engine/dependencygraph/graph.go#L179-L180 これの何が問題... 続きを読む
Rails Developers Meetup 2018 で「MySQL/InnoDB の裏側」を発表しました - あらびき日記
Rails Developers Meetup 2018: Day 1 で「MySQL/InnoDB の裏側」と題して SELECT クエリの実行フローや InnoDB のインデックス周りの発表しました。 MySQL with InnoDB のインデックスの基礎知識とありがちな間違い + α の内容です。 MySQL/InnoDBの裏側 from Takeshi Arabiki Nested Lo... 続きを読む
commit をどう分割すべきか 〜コードレビューの観点から〜 - あらびき日記
普段の開発の中で git の commit の単位に気を遣っている人もいると思うんですが、どういう単位で commit すべきかみたいな話をあまり見かけない気がします。自分自身 GitHub の Pull Request(以降 PR)ベースのチーム開発を何年か経験してみて、「こうすると良さそう」というものが見えてきた気がするのでまとめてみました。 なお、小さい単位で PR を出す方針にしている場合... 続きを読む
fluentd の基礎知識 - あらびき日記
最近業務で fluentd を触ることが出てきたんですが、最初のうちはトラブルが起きた時に何が起きているのか、どう対処したら良いのかがさっぱりわからなかったので、「fluentd ってログの収集とかに使われるやつでしょ?」程度の知識しかなかった過去の自分に向けて「とりあえずこれぐらいは知っておけ!」と言いたい内容をまとめてみました。 トラブルが起きた時にどの処理で問題が起きているのか素早くコードを... 続きを読む
論理型の設定値を RDB に保存する場合の選択肢と各々のメリット・デメリット - あらびき日記
ユーザごとに特定の機能に対して ON/OFF の設定値を持たせることはよくあると思います。 RDB にそのような設定情報を持たせる場合の選択肢として大きく次の 5 つが考えるんじゃないかと思います。 設定項目ごとにカラムを割り当てる 設定項目ごとにレコードを割り当てる 設定項目ごとにテーブルを割り当てる(自分は思い付かなかった) 設定項目ごとに 1 つの整数型カラムの 1 bit を割り当てる 1... 続きを読む
私的アンリーダブルコード―他人を発狂させるための 9 のテクニック - あらびき日記
コードはたいてい一度しか書かれませんが、何度も何人も読むことになります。 普段何気なく書いているコードが他人の時間と精神を削っているかもしれません。 そんなわけで、個人的に辛いなと思うことを 9 つ挙げてみました。共感してもらえるものもいくつかあるんじゃないかと思います。 実体にそぐわない変数名 見分けの付かない配列とハッシュの変数名 呼び出し元で true/false を指定するだけの引数 暗黙... 続きを読む
JSX 私的チュートリアル - あらびき手捏ねハンバーグ - latest log
2013-07-27 JSX 私的チュートリアル - あらびき手捏ねハンバーグ (ε・◇・)з o O ( JSXは日本語ドキュメントがほぼないので〜 (ε・◇・)з o O ( 書き溜めといた奴を公開するよー (ε・◇・)з o O ( でも、色々と端折ってるので (ε・◇・)з o O ( 不足してる部分は、あらびき日記 や wiki や JSX公式ドキュメント を合わせてご覧ください〜 uu... 続きを読む