-Sync/Async

Blocking/Non Blockingはスレッドの占有の問題を解決するためにOS機能に待ちうけ時間は負担してもらう仕組みであると、先日まとめました。Non Blockingは限界のあるリソースであるスレッドの消費に優しいので大規模サーバを作るのにいいのですが、そのリスクは実装が複雑になることと、スケーラビリティがまったくいらないのであればBlockingのほうが早いものが作れる可能性が高い(単純なので)ということでしょうか。スレッドリソース消費がまったく問題にならないようなOS環境が実現すると(最近、そのような方向性に行ってるようです)Blockingソケットをマルチスレッドでハンドルするほうがよいかもしれない。この辺、まだ環境の変化余地を残しているようです。
同時にGrizzlyではSync/Asyncの違いも対応しようとしています。処理の待ちうけならず、処理そのものの時間がかかる場合に非同期実行を行うというものです。いつ返ってくるかわからない他サーバとの連携結果を示すなど、そんな際にAsyncの作りを検討する。。。普通のサーバはBlockingソケットでSyncの処理実行をしますが、Non BlockingソケットだったりAsyncだったり、その両方を満たすサーバが作れることをGrizzlyは目指しているようです。