Technote-2019-06-09
ここ何年かは Twitter の DM やメッセンジャー、Slack や LINE が連絡ツールの役割を十二分に果たしてくれているおかげで、なかなか消化できないメールマガジンが溜まり続けてしまっている。そこで、スキマ時間が出来た時に読む程度では消化出来ないので、週一程度の頻度で気になった記事をピックアップして備忘録的にまとめておこうと思う。
ケーススタディ
- Stream & Go: News Feeds for Over 300 Million End Users
https://hackernoon.com/stream-go-news-feeds-for-over-300-million-end-users-b227614cf32f
ニュースフィードとチャット API を提供するサービス Stream のテクノロジースタックの紹介。LightFM がちょっと気になる。
パフォーマンス最適化
Employing QUIC Protocol to Optimize Uber’s App Performance
https://eng.uber.com/employing-quic-protocol/
頻繁に途切れるようなワイヤレスネットワークの上に構築されるサービスだと、HTTP/2 は上手く機能しないので RUDP のようなプロトコルが向いてるってのはなんか納得。Optimizing web servers for high throughput and low latency
https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/
Dropbox はユーザーに負担させる事なく利益の最大化をするためにオンプレに移行するような会社だから、こうゆう徹底した最適化もすごく重要担っているだろうな。Nginx Admin’s Handbook
https://github.com/trimstray/nginx-admins-handbook
Nginx 触るならコレ読んでおいて!と言えるくらいの充実っぷり!ありがたや。Learn where some of the network sysctl variables fit into the Linux/Kernel network flow
https://github.com/leandromoreira/linux-network-performance-parameters
最近のカーネルはデフォルトで良くチューニングされたパラメータに設定されているから、きちんと理解せずに設定を変えると逆にパフォーマンスが落ちるからよとの事。
分散システム
- An Overview of Distributed Systems and the Consensus Problem
https://probablyexactlywrong.com/distsys
分散システムの作り方を聞かれたらとりあえずコレをオススメしようと思うくらい概要が良くまとまっている。
リファレンス
- The Art of Command Line
https://github.com/jlevy/the-art-of-command-line
日常的に使わないコマンドはすぐに忘れてしまうのですごく助かる。
アルゴリズムとデータ構造
- Elastic Binary Trees - ebtree
http://wtarreau.blogspot.com/2011/12/elastic-binary-trees-ebtree.html
コルーチンの実行制御の管理を最小ヒープで実装していたので比較してみたい。