25 Oct 2021

最近読んだもの 21

記事

  • A viable solution for Python concurrency [LWN.net]
    • python のインタプリタから GIL を除く取り組み
    • そもそも GIL が必要とされる理由の大部分が GC のための参照カウントの更新
    • 参照カウントのインクリメント、デクリメント処理をスレッドセーフにするか、同時に一スレッドしか実行されないようにインタプリタで制御することで実現するか
      • カウンターが汚染されるよりはマシなのと、多くのケースではシングルスレッドで十分なので後者のアプローチがとられた
    • 単純にカウンターをスレッドセーフに実装すると、パフォーマンスが劣化する
    • そこで提案手法では、カウンターをオーナー用と他スレッド用の二つに分ける
      • そのオブジェクトのオーナーはロックなどなしにカウンターを更新できる
      • 他スレッドはスレッドセーフな方法で更新する
    • ほとんどの処理はオーナーによって行われるのでパフォーマンス劣化を緩和できる
  • Building and Testing Resilient Ruby on Rails Applications
    • 肝は最初に最初にでてくる影響範囲のマトリクスかもしれない
      • データストア A が落ちたら、サービス B はダウン、サービス C は性能劣化するがサービス継続、などのあるべき姿をまとめたもの
    • それを実現するためのツールが二つ
      • Toxiproxy は外側から tcp レベルのネットワークの遅延や遮断などを実現し、外部リソースが落ちている状況を再現、自動テストを可能にする
        • semian はサーキットブレイカー
    • どちらも良いツール
  • NGINX 502 Bad Gateway: Gunicorn | Datadog
  • sync: ExampleWaitGroup includes an porn website url · Issue #48886 · golang/go
  • The Sidekiq job flow
  • In-depth explanation of operational metrics at Google Cloud | Google Cloud Blog
    • Google Cloud Monitoring の入門記事
    • 収集するメトリクスは System metrics, Agent metrics, custom metrics, Log based metrics の四つに分類される
  • SRE top interview questions to land an SRE role
    • SRE 職の面接での質問例が列挙されていてへーという感じだった
    • カテゴリとしては programming, incident response, support, architecture, networking, problem solving くらい