[groonga-dev,02036] Re: grn_io_lockのタイムアウト値がハードコードされている件について

Back to archive index

Kouhei Sutou kou****@clear*****
2014年 1月 7日 (火) 14:30:09 JST


須藤です。

In <CAHB5****@mail*****>
  "[groonga-dev,02034] Re: grn_io_lockのタイムアウト値がハードコードされている件について" on Mon, 6 Jan 2014 12:30:43 +0900,
  "yoku ts." <yoku0****@gmail*****> wrote:

>> よいと思うので、定数で一気に変更できるようにしました。
>> 定数はconfigureなら--with-lock-timeout、CMakeな
>> ら-DGRN_LOCK_TIMEOUTで変更できるようにしてあります。
> 
> やった! ありがとうございます! :)
> これでオレオレパッチの呪縛から逃れられます :)

さらに!

  SET GLOBAL mroonga_lock_timeout = 1000;

とかでMroongaから直接動的に変更できるようにしておきました!

この値に関するドキュメントはまだアップロードされていないんで
すが、こんな感じになります。

  * 正の値: その数だけロックを獲得できるまでリトライする。
    100なら100回リトライする。

    各リトライの間は1ミリ秒sleepする。

  * 0: リトライしない。1回ロック獲得に失敗したらロック失敗。

  * -1: ロックを獲得できるまでずっとリトライする。

なお、負の値を設定した時の

  SET GLOBAL mroonga_lock_timeout

はオーバーフローした値になります。-1なら4294967295になります。

MySQLのソースをみたんですけど、こういう仕様っぽいのでそのま
まにしてあります。うーん、とは思いますけど。。。


-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

Groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




groonga-dev メーリングリストの案内
Back to archive index