[Groonga-commit] pgroonga/pgroonga at 44a7a59 [master] Add pgroonga.lock_timeout variable

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index