MySQL で複合インデックスを作成する際には必ず Explain の key_len を確認すべきという話

「Rails Developers Meetup 2018 で「MySQL/InnoDB の裏側」を発表しました」でちゃんと触れられてないので今更ながら key_len について補足します。発表で触れた内容については言及しないので、storage engine や B+ tree といった用語がよくわからない方は発表内容を参照してください。
なお、MySQL のバージョンは 5.7.38 です。

Stateful Kafka Streams アプリケーションで consumer が増減すると意図しない偏りが発生する理由 〜 StreamsPartitionAssignor はいかにタスクを割り当てるのか 〜

Stateful Kafka Streams アプリケーション、つまり state store を使った Kafka Streams アプリケーションでは consumer が増減するとタスクの割当が極端に偏ることがあります。その理由について、WordCount の例を使って解説し、運用上の注意点についてまとめます。
なお、Kafka Streams のバージョンは 2.7.2 です。

Cassandra C/C++ Driver を使うと Cassandra で Connection reset by peer という INFO ログが出る

Cassandra C/C++ driver を使うと次のようなログが出るので調査したという話です。

ECS の dependsOn で HEALTHY に依存させて HEALTHY にならなければ無限に待ち続けることがある

ECS の dependsOn では condition に HEALTHY を指定することができ、依存するコンテナのヘルスチェックが通るまで待つことができます。ところが、本来 essential なコンテナのヘルスチェックが通らないとタスク全体が終了するはずが、これを指定することで HEALTHY にならない限り、無限に PENDING な状態で待ち続けることがあるようです。後述の再現コードでは無限に待ち続けましたが、別のケース(ECS agent のバージョン等色々異なる)ではちょうど 10 分程度で stopped reason が launch timeout になったので、何らかの条件ではある程度の時間が経過すると timeout になるかもしれません。

詳説 Amazon S3 ストレージ料金

Amazon S3 は AWS のサービスの中でも代表的なサービスの 1 つで、AWS を使っている人のほとんどが触れたことのあるサービスじゃないかと思いますが、料金体系の詳細を知っている人は意外に少ないんじゃないんでしょうか。
年末年始に個人アカウントにあるデータの整理をする際に料金体系の説明を隅から隅まで読んで完璧に理解したつもりの上でストレージクラスを S3 Standard - Infrequent Access から S3 Glacier Deep Archive に変更したにも関わらず想定外のコストがかかったので、自分が理解したことをメモとして残します。リージョンは Asia Pasific (Tokyo) を前提としますが、他のリージョンでも同様の考え方を適用できるはずです。

カランメソッドの全ステージを修了した

先日、カランメソッドの全ステージを修了しました。約 2 年という長い道のりになりましたが、最後までやり切ることができて一安心です。良い機会なのでカランメソッドについて振り返ってみます。

タスクの年度初め大掃除をしたい

普段こういう話はブログに書かないんですが、もしかしたら参考になるような意見ももらえるかもしれないと思って公開してみます。今自分が所属しているチームを想定して書いていますが、当てはまる組織も多いのではないかと思います。

rdkafka-ruby で Local: Broker transport failure (transport) が起きる場合の対処方法

rdkafka-ruby を使っていると “Local: Broker transport failure (transport)” というエラーに遭遇することがあります。様々な条件で発生するかもしれませんが、自分が遭遇したのは次の条件を全て満たす時です。

fluentd forwarder を daemon service として登録することで fluentd logging driver 起因の fluentd の負荷を分散させる

Docker の logging driver として fluentd logging driver を使うと、DNS や NLB で複数の fluentd プロセスに負荷を分散させようとしても特定のプロセスに負荷が集中することがあります。それを回避するのに FireLens が使えるという話を次の記事に書きました。

ECS の煩わしいオペレーションをよしなにやってくれるツールを作った

ECS のオペレーションは色々と面倒なものが多いです。例えば、ECS クラスタを EC2 インスタンスで管理している場合、インスタンスの AMI を更新しようと思うと、新しいインスタンスを起動して、古いインスタンスをドレイニングして、古いインスタンスを落とすというオペレーションが発生します。また、ECS サービスの設定のうち、新規作成時にしか設定できない項目を変更しようと思うと、別名のサービスを新しく作成する必要があります。ちょっと設定を変えたいだけなのに名前を変えないといけないのは辛いですよね。

広告