Home > Thrift Archive
Thrift Archive
Thrift: TThreadPoolServer
- 2008-10-29 (Wed)
- Thrift

Thrift (ver. 20080411p1)のTThreadPoolServerがバグっている件。
過負荷時に、処理が追い付いていないにも関わらずaccept(2)し続け、ファイルディスクリプタを食いつぶす。
対処するには、まず以下のようにthreadManagerを作る際にタスクキューサイズの上限を設定する。ここでは128。
shared_ptr<ThreadManager> threadManager(ThreadManager::newSimpleThreadManager(20, 128));
次に以下のパッチを当てる。
これで安定稼働する模様。 thanks to id:tkng and id:nvaca
ってか次のstableいつでるんだよー!
- Comments: 0
- Trackbacks: 0
Thriftを利用したログからの復旧機能の実装
- 2008-02-13 (Wed)
- Thrift

さてさて卒論発表終わりましたよ。寝まくり&飲んだくれ&焼肉。暇な人遊んで。
最近、多言語RPC機構が欲しくなる機会が多く、Thriftを使ってみたりしています。
まずは3つ目のサイボウズ開発本部アルバイトの山本さんの記事を読むと、thriftがどういうものなのかが分かると思います。簡単に言いますと、RPCのAPIを独自記法で定義したファイルを用意し、それをthriftコンパイラに入力として与えると、各言語用にRPC用のコードを自動生成してくれるというものです。
クライアント・サーバーコードを各言語で書けるのは当然として、マルチスレッド型・イベント型などサーバーの種類を選べる等々、色々気が利いていて良い感じです。
似たものとしてbinpacというのも有るらしいのですが、これは実装は公開されてないみたいです。Googleの人がfirst authorなので中で使われているのかもしれませんね。
ところで先日コードを読んでいたら、Thriftを使うとログからのサーバー状態復旧機能が簡単に作れる事に気づいたので書いてみます。White Paperにもこの機能について少し言及はしてあるのですが具体的なコードまでは書いてません。
- Comments: 0
- Trackbacks: 0
Home > Thrift Archive
-
- February 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
