Presto における Service Discovery の動作原理

Presto を運用していると “No worker nodes available” というエラーに遭遇することがあります。これは coordinator が planning をする際に active な worker nodes が存在しないと起きるエラーなんですが、worker nodes に問題ではなく service discovery が上手く機能していなくて起きることがあります。

SRE Lounge #11 で「安定・安価なECS auto scalingを目指して」を発表しました

SRE Lounge #11 で Repro で行っている ECS の auto scaling について発表しました。ECS autoscaler で工夫している点についてがメインですが、一般的な auto scaling にも使える知見もあるかと思います。

Rails アプリケーションの不安定なテストを撲滅したい 〜system spec のデバッグ方法とテストを不安定にさせる要因〜

Rails アプリケーションの開発において、自分の変更に関係のないテストのせいで CI がコケるとストレスですよね?真っ先に直したくなりますよね?不安定なテストを直すのは大変な労力が要ると思ってませんか?実は、たいていのケースは簡単に再現確認ができるし、不安定になる要因もだいたい決まっているし、ログやスクリーンショットを見れば原因も簡単に特定できるんです!

Ruby の test-unit のプロファイルを取る

RSpec だと --format json で実行すると各 example の実行時間が取得できるんですが、test-unit だとそのようなことができなさそうなのでプロファイルを取れるようにしてみました。

Cassandra でレプリケーションストラテジーを変更するとデータが消失する

Cassandra でレプリケーションストラテジーを変更するとデータが消失する現象に遭遇したんですが、どうしてそんなことが起きるのかやどうしたら直せるのかがさっぱりわからなかったので、ソースコードを読んだり手を動かしたりして調べてみました。
以下、Cassandra 3.11.4 の話です。
partitioner としてデフォルトの Murmur3Partitioner を使用し、endpoint snitch として GossipingPropertyFileSnitch を使用することとします。

Repro Tech Meetup で「Repro における Presto の安定化・パフォーマンス改善の歩み」を発表しました

Repro Tech: 実践・並列分散処理基盤の自社枠として、自分が Repro に入社してから Presto 関連で行った改善について発表しました。

外部キーから参照されているテーブルに対して pt-online-schema-change を使う

pt-online-schema-change では外部キーから参照されているテーブルに対して使用する場合に --alter-foreign-keys-method を指定する必要があります。
--alter-foreign-keys-method には rebuild_constraints を指定することが推奨されているんですが、子テーブルの ALTER に時間がかからなければという但し書きがあります。

Systems Manager の Maintenance Windows によるメンテナンスタスクの定期実行と Datadog の Downtimes API によるアラートの抑止

ECS の Enhanced Container Dependency Management でタスク終了時のコンテナの依存関係を考慮する

先日次のような記事を書きました。
ECS タスクの終了時にコンテナの依存関係が考慮されない問題を解決するコマンドを作った

Launch Templates と Auto Scaling Groups で Spot Fleet Requests みたいなことをする

半年ぐらい前に、launch template と auto scaling group を組み合わせることで、オンデマンドインスタンスとスポットインスタンスを混ぜたり、インスタンスタイプを混ぜたりすることができるようになりました。
cf. Scale Amazon EC2 Instances across On-Demand, Spot and RIs in a Single Auto Scaling Group

広告