Kouhei Sutou
null+****@clear*****
Mon Aug 24 22:29:43 JST 2015
Kouhei Sutou 2015-08-24 22:29:43 +0900 (Mon, 24 Aug 2015) New Revision: 44a7a595387740fb869b871fdafcb4b842b7f531 https://github.com/pgroonga/pgroonga/commit/44a7a595387740fb869b871fdafcb4b842b7f531 Message: Add pgroonga.lock_timeout variable [groonga-dev,03419] Requested by Naoki Takami. Thanks!!! Added files: expected/variable/lock-timeout/valid.out sql/variable/lock-timeout/valid.sql Modified files: pgroonga.c Added: expected/variable/lock-timeout/valid.out (+27 -0) 100644 =================================================================== --- /dev/null +++ expected/variable/lock-timeout/valid.out 2015-08-24 22:29:43 +0900 (7588370) @@ -0,0 +1,27 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + ?column? +---------- + 0 +(1 row) + +SHOW pgroonga.lock_timeout; + pgroonga.lock_timeout +----------------------- + 10000000 +(1 row) + +SET pgroonga.lock_timeout = 1000; +SHOW pgroonga.lock_timeout; + pgroonga.lock_timeout +----------------------- + 1000 +(1 row) + +SET pgroonga.lock_timeout = default; +SHOW pgroonga.lock_timeout; + pgroonga.lock_timeout +----------------------- + 10000000 +(1 row) + Modified: pgroonga.c (+25 -0) =================================================================== --- pgroonga.c 2015-08-22 00:10:51 +0900 (a77dedb) +++ pgroonga.c 2015-08-24 22:29:43 +0900 (72bfe9a) @@ -79,6 +79,8 @@ static struct config_enum_entry PGrnLogLevelEntries[] = { {NULL, GRN_LOG_NONE, false} }; +static int PGrnLockTimeout; + typedef struct PGrnOptions { int32 vl_len_; @@ -290,6 +292,12 @@ PGrnLogLevelAssign(int new_value, void *extra) } static void +PGrnLockTimeoutAssign(int new_value, void *extra) +{ + grn_set_lock_timeout(new_value); +} + +static void PGrnInitializeVariables(void) { DefineCustomEnumVariable("pgroonga.log_type", @@ -334,6 +342,23 @@ PGrnInitializeVariables(void) PGrnLogLevelAssign, NULL); + DefineCustomIntVariable("pgroonga.lock_timeout", + "Try pgroonga.lock_timeout times " + "at 1 msec intervals to " + "get write lock in PGroonga.", + "The default is 10000000. " + "It means that PGroonga tries to get write lock " + "between about 2.7 hours.", + &PGrnLockTimeout, + grn_get_lock_timeout(), + 0, + INT_MAX, + PGC_USERSET, + 0, + NULL, + PGrnLockTimeoutAssign, + NULL); + EmitWarningsOnPlaceholders("pgroonga"); } Added: sql/variable/lock-timeout/valid.sql (+8 -0) 100644 =================================================================== --- /dev/null +++ sql/variable/lock-timeout/valid.sql 2015-08-24 22:29:43 +0900 (fb9217d) @@ -0,0 +1,8 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + +SHOW pgroonga.lock_timeout; +SET pgroonga.lock_timeout = 1000; +SHOW pgroonga.lock_timeout; +SET pgroonga.lock_timeout = default; +SHOW pgroonga.lock_timeout; -------------- next part -------------- HTML����������������������������...Download