This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Tarantool -- an efficient key/value data store".
The branch memcached-expire-stat has been created
at 44f8a11daa7b544173960d69bdc44a2fa3aa19a7 (commit)
commit 44f8a11daa7b544173960d69bdc44a2fa3aa19a7
Author: Yuriy Vostrikov <[email protected]>
Date: Fri Dec 3 15:18:28 2010 +0300
[box] Enable accidently disabled expire in memcached mode.
diff --git a/mod/silverbox/box.c b/mod/silverbox/box.c
index 2496b60..458ec4f 100644
--- a/mod/silverbox/box.c
+++ b/mod/silverbox/box.c
@@ -1639,13 +1639,11 @@ memcached_bound_to_primary(void *data __unused__)
{
box_bound_to_primary(NULL);
- if (0 && !cfg.remote_hot_standby) {
- struct fiber *expire =
- fiber_create("memecached_expire", -1, -1,
memcached_expire, NULL);
- if (expire == NULL)
- panic("can't stared expire fiber");
- fiber_call(expire);
- }
+ struct fiber *expire =
+ fiber_create("memecached_expire", -1, -1, memcached_expire,
NULL);
+ if (expire == NULL)
+ panic("can't start the expire fiber");
+ fiber_call(expire);
}
static void
@@ -1749,6 +1747,9 @@ mod_init(void)
if (cfg.memcached != 0) {
if (cfg.secondary_port != 0)
panic("in memcached mode secondary_port must be 0");
+ if (cfg.remote_hot_standby)
+ panic("remote replication is not supported in memcached
mode.");
+
memcached_init();
}
commit 79821f14efd1dbf51c7382c0f18a6e8f664bc6c6
Author: Yuriy Vostrikov <[email protected]>
Date: Fri Dec 3 15:13:49 2010 +0300
[box] Repair memcached statistic.
* Enable statistic collection.
* Add counter of expire rate.
diff --git a/mod/silverbox/box.c b/mod/silverbox/box.c
index 66d6d44..2496b60 100644
--- a/mod/silverbox/box.c
+++ b/mod/silverbox/box.c
@@ -1749,6 +1749,7 @@ mod_init(void)
if (cfg.memcached != 0) {
if (cfg.secondary_port != 0)
panic("in memcached mode secondary_port must be 0");
+ memcached_init();
}
title("loading");
diff --git a/mod/silverbox/box.h b/mod/silverbox/box.h
index 505ed88..888af4c 100644
--- a/mod/silverbox/box.h
+++ b/mod/silverbox/box.h
@@ -189,5 +189,6 @@ void *next_field(void *f);
void append_field(struct tbuf *b, void *f);
void *tuple_field(struct box_tuple *tuple, size_t i);
+void memcached_init(void);
void memcached_expire(void *data __unused__);
#endif
diff --git a/mod/silverbox/memcached.c b/mod/silverbox/memcached.c
index f8a5ca1..a818f88 100644
--- a/mod/silverbox/memcached.c
+++ b/mod/silverbox/memcached.c
@@ -46,7 +46,8 @@
#define STAT(_) \
_(MEMC_GET, 1) \
_(MEMC_GET_MISS, 2) \
- _(MEMC_GET_HIT, 3)
+ _(MEMC_GET_HIT, 3) \
+ _(MEMC_EXPIRED_KEYS, 4)
ENUM(memcached_stat, STAT);
STRS(memcached_stat, STAT);
@@ -64,7 +65,7 @@ struct meta {
} __packed__;
-#line 68 "mod/silverbox/memcached.c"
+#line 69 "mod/silverbox/memcached.c"
static const int memcached_start = 1;
static const int memcached_first_final = 197;
static const int memcached_error = 0;
@@ -72,7 +73,7 @@ static const int memcached_error = 0;
static const int memcached_en_main = 1;
-#line 67 "mod/silverbox/memcached.rl"
+#line 68 "mod/silverbox/memcached.rl"
@@ -261,12 +262,12 @@ memcached_dispatch(struct box_txn *txn)
})
-#line 265 "mod/silverbox/memcached.c"
+#line 266 "mod/silverbox/memcached.c"
{
cs = memcached_start;
}
-#line 270 "mod/silverbox/memcached.c"
+#line 271 "mod/silverbox/memcached.c"
{
if ( p == pe )
goto _test_eof;
@@ -324,7 +325,7 @@ case 5:
goto st0;
goto tr15;
tr15:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -341,7 +342,7 @@ st6:
if ( ++p == pe )
goto _test_eof6;
case 6:
-#line 345 "mod/silverbox/memcached.c"
+#line 346 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st7;
goto st0;
@@ -355,49 +356,49 @@ case 7:
goto tr17;
goto st0;
tr17:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st8;
st8:
if ( ++p == pe )
goto _test_eof8;
case 8:
-#line 366 "mod/silverbox/memcached.c"
+#line 367 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr18;
if ( 48 <= (*p) && (*p) <= 57 )
goto st8;
goto st0;
tr18:
-#line 499 "mod/silverbox/memcached.rl"
+#line 500 "mod/silverbox/memcached.rl"
{flags = natoq(fstart, p);}
goto st9;
st9:
if ( ++p == pe )
goto _test_eof9;
case 9:
-#line 380 "mod/silverbox/memcached.c"
+#line 381 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st9;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr21;
goto st0;
tr21:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st10;
st10:
if ( ++p == pe )
goto _test_eof10;
case 10:
-#line 394 "mod/silverbox/memcached.c"
+#line 395 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr22;
if ( 48 <= (*p) && (*p) <= 57 )
goto st10;
goto st0;
tr22:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
@@ -408,21 +409,21 @@ st11:
if ( ++p == pe )
goto _test_eof11;
case 11:
-#line 412 "mod/silverbox/memcached.c"
+#line 413 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st11;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr25;
goto st0;
tr25:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st12;
st12:
if ( ++p == pe )
goto _test_eof12;
case 12:
-#line 426 "mod/silverbox/memcached.c"
+#line 427 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr26;
case 13: goto tr27;
@@ -432,11 +433,11 @@ case 12:
goto st12;
goto st0;
tr26:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -457,13 +458,13 @@ tr26:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 260 "mod/silverbox/memcached.rl"
+#line 261 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -474,9 +475,9 @@ tr26:
}
goto st197;
tr30:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -497,13 +498,13 @@ tr30:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 260 "mod/silverbox/memcached.rl"
+#line 261 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -514,11 +515,11 @@ tr30:
}
goto st197;
tr39:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -539,13 +540,13 @@ tr39:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 260 "mod/silverbox/memcached.rl"
+#line 261 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -556,11 +557,11 @@ tr39:
}
goto st197;
tr58:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -581,13 +582,13 @@ tr58:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 289 "mod/silverbox/memcached.rl"
+#line 290 "mod/silverbox/memcached.rl"
{
struct tbuf *b;
void *value;
@@ -616,9 +617,9 @@ tr58:
}
goto st197;
tr62:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -639,13 +640,13 @@ tr62:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 289 "mod/silverbox/memcached.rl"
+#line 290 "mod/silverbox/memcached.rl"
{
struct tbuf *b;
void *value;
@@ -674,11 +675,11 @@ tr62:
}
goto st197;
tr71:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -699,13 +700,13 @@ tr71:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 289 "mod/silverbox/memcached.rl"
+#line 290 "mod/silverbox/memcached.rl"
{
struct tbuf *b;
void *value;
@@ -734,11 +735,11 @@ tr71:
}
goto st197;
tr91:
-#line 501 "mod/silverbox/memcached.rl"
+#line 502 "mod/silverbox/memcached.rl"
{cas = natoq(fstart, p);}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -759,13 +760,13 @@ tr91:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 278 "mod/silverbox/memcached.rl"
+#line 279 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -778,9 +779,9 @@ tr91:
}
goto st197;
tr95:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -801,13 +802,13 @@ tr95:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 278 "mod/silverbox/memcached.rl"
+#line 279 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -820,11 +821,11 @@ tr95:
}
goto st197;
tr105:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -845,13 +846,13 @@ tr105:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 278 "mod/silverbox/memcached.rl"
+#line 279 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -864,17 +865,17 @@ tr105:
}
goto st197;
tr118:
-#line 502 "mod/silverbox/memcached.rl"
+#line 503 "mod/silverbox/memcached.rl"
{incr = natoq(fstart, p);}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 316 "mod/silverbox/memcached.rl"
+#line 317 "mod/silverbox/memcached.rl"
{
struct meta *m;
struct tbuf *b;
@@ -927,15 +928,15 @@ tr118:
}
goto st197;
tr122:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 316 "mod/silverbox/memcached.rl"
+#line 317 "mod/silverbox/memcached.rl"
{
struct meta *m;
struct tbuf *b;
@@ -988,17 +989,17 @@ tr122:
}
goto st197;
tr132:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 316 "mod/silverbox/memcached.rl"
+#line 317 "mod/silverbox/memcached.rl"
{
struct meta *m;
struct tbuf *b;
@@ -1051,15 +1052,15 @@ tr132:
}
goto st197;
tr141:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 367 "mod/silverbox/memcached.rl"
+#line 368 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -1074,21 +1075,21 @@ tr141:
}
goto st197;
tr146:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
exptime = exptime + ev_now();
}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 367 "mod/silverbox/memcached.rl"
+#line 368 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -1103,17 +1104,17 @@ tr146:
}
goto st197;
tr157:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 367 "mod/silverbox/memcached.rl"
+#line 368 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -1128,15 +1129,15 @@ tr157:
}
goto st197;
tr169:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 457 "mod/silverbox/memcached.rl"
+#line 458 "mod/silverbox/memcached.rl"
{
if (flush_delay > 0) {
struct fiber *f = fiber_create("flush_all", -1,
-1, flush_all, (void *)flush_delay);
@@ -1148,17 +1149,17 @@ tr169:
}
goto st197;
tr174:
-#line 503 "mod/silverbox/memcached.rl"
+#line 504 "mod/silverbox/memcached.rl"
{flush_delay = natoq(fstart, p);}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 457 "mod/silverbox/memcached.rl"
+#line 458 "mod/silverbox/memcached.rl"
{
if (flush_delay > 0) {
struct fiber *f = fiber_create("flush_all", -1,
-1, flush_all, (void *)flush_delay);
@@ -1170,17 +1171,17 @@ tr174:
}
goto st197;
tr185:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 457 "mod/silverbox/memcached.rl"
+#line 458 "mod/silverbox/memcached.rl"
{
if (flush_delay > 0) {
struct fiber *f = fiber_create("flush_all", -1,
-1, flush_all, (void *)flush_delay);
@@ -1192,15 +1193,15 @@ tr185:
}
goto st197;
tr195:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 380 "mod/silverbox/memcached.rl"
+#line 381 "mod/silverbox/memcached.rl"
{
txn->op = SELECT;
fiber_register_cleanup((void *)txn_cleanup, txn);
@@ -1279,25 +1280,25 @@ tr195:
}
goto st197;
tr213:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 471 "mod/silverbox/memcached.rl"
+#line 472 "mod/silverbox/memcached.rl"
{
return 0;
}
goto st197;
tr233:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1318,13 +1319,13 @@ tr233:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 269 "mod/silverbox/memcached.rl"
+#line 270 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -1335,9 +1336,9 @@ tr233:
}
goto st197;
tr237:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1358,13 +1359,13 @@ tr237:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 269 "mod/silverbox/memcached.rl"
+#line 270 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -1375,11 +1376,11 @@ tr237:
}
goto st197;
tr246:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1400,13 +1401,13 @@ tr246:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 269 "mod/silverbox/memcached.rl"
+#line 270 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
struct box_tuple *tuple = find(key);
@@ -1417,11 +1418,11 @@ tr246:
}
goto st197;
tr263:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1442,22 +1443,22 @@ tr263:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 255 "mod/silverbox/memcached.rl"
+#line 256 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
STORE;
}
goto st197;
tr267:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1478,24 +1479,24 @@ tr267:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 255 "mod/silverbox/memcached.rl"
+#line 256 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
STORE;
}
goto st197;
tr276:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 505 "mod/silverbox/memcached.rl"
+#line 506 "mod/silverbox/memcached.rl"
{
size_t parsed = p - (u8 *)fiber->rbuf->data;
while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1516,28 +1517,28 @@ tr276:
goto exit;
}
}
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 255 "mod/silverbox/memcached.rl"
+#line 256 "mod/silverbox/memcached.rl"
{
key = read_field(keys);
STORE;
}
goto st197;
tr281:
-#line 532 "mod/silverbox/memcached.rl"
+#line 533 "mod/silverbox/memcached.rl"
{ p++; }
-#line 526 "mod/silverbox/memcached.rl"
+#line 527 "mod/silverbox/memcached.rl"
{
done = true;
stats.bytes_read += p - (u8 *)fiber->rbuf->data;
tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
}
-#line 467 "mod/silverbox/memcached.rl"
+#line 468 "mod/silverbox/memcached.rl"
{
print_stats();
}
@@ -1546,33 +1547,33 @@ st197:
if ( ++p == pe )
goto _test_eof197;
case 197:
-#line 1550 "mod/silverbox/memcached.c"
+#line 1551 "mod/silverbox/memcached.c"
goto st0;
tr27:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st13;
tr40:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st13;
st13:
if ( ++p == pe )
goto _test_eof13;
case 13:
-#line 1564 "mod/silverbox/memcached.c"
+#line 1565 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr30;
goto st0;
tr28:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st14;
st14:
if ( ++p == pe )
goto _test_eof14;
case 14:
-#line 1576 "mod/silverbox/memcached.c"
+#line 1577 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 32: goto st14;
case 110: goto st15;
@@ -1665,18 +1666,18 @@ case 26:
goto tr45;
goto st0;
tr45:
-#line 540 "mod/silverbox/memcached.rl"
+#line 541 "mod/silverbox/memcached.rl"
{append = true; }
goto st27;
tr209:
-#line 541 "mod/silverbox/memcached.rl"
+#line 542 "mod/silverbox/memcached.rl"
{append = false;}
goto st27;
st27:
if ( ++p == pe )
goto _test_eof27;
case 27:
-#line 1680 "mod/silverbox/memcached.c"
+#line 1681 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 13: goto st0;
case 32: goto st27;
@@ -1685,7 +1686,7 @@ case 27:
goto st0;
goto tr46;
tr46:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -1702,7 +1703,7 @@ st28:
if ( ++p == pe )
goto _test_eof28;
case 28:
-#line 1706 "mod/silverbox/memcached.c"
+#line 1707 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st29;
goto st0;
@@ -1716,49 +1717,49 @@ case 29:
goto tr49;
goto st0;
tr49:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st30;
st30:
if ( ++p == pe )
goto _test_eof30;
case 30:
-#line 1727 "mod/silverbox/memcached.c"
+#line 1728 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr50;
if ( 48 <= (*p) && (*p) <= 57 )
goto st30;
goto st0;
tr50:
-#line 499 "mod/silverbox/memcached.rl"
+#line 500 "mod/silverbox/memcached.rl"
{flags = natoq(fstart, p);}
goto st31;
st31:
if ( ++p == pe )
goto _test_eof31;
case 31:
-#line 1741 "mod/silverbox/memcached.c"
+#line 1742 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st31;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr53;
goto st0;
tr53:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st32;
st32:
if ( ++p == pe )
goto _test_eof32;
case 32:
-#line 1755 "mod/silverbox/memcached.c"
+#line 1756 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr54;
if ( 48 <= (*p) && (*p) <= 57 )
goto st32;
goto st0;
tr54:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
@@ -1769,21 +1770,21 @@ st33:
if ( ++p == pe )
goto _test_eof33;
case 33:
-#line 1773 "mod/silverbox/memcached.c"
+#line 1774 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st33;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr57;
goto st0;
tr57:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st34;
st34:
if ( ++p == pe )
goto _test_eof34;
case 34:
-#line 1787 "mod/silverbox/memcached.c"
+#line 1788 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr58;
case 13: goto tr59;
@@ -1793,30 +1794,30 @@ case 34:
goto st34;
goto st0;
tr59:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st35;
tr72:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st35;
st35:
if ( ++p == pe )
goto _test_eof35;
case 35:
-#line 1808 "mod/silverbox/memcached.c"
+#line 1809 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr62;
goto st0;
tr60:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st36;
st36:
if ( ++p == pe )
goto _test_eof36;
case 36:
-#line 1820 "mod/silverbox/memcached.c"
+#line 1821 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 32: goto st36;
case 110: goto st37;
@@ -1906,7 +1907,7 @@ case 47:
goto st0;
goto tr76;
tr76:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -1923,7 +1924,7 @@ st48:
if ( ++p == pe )
goto _test_eof48;
case 48:
-#line 1927 "mod/silverbox/memcached.c"
+#line 1928 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st49;
goto st0;
@@ -1937,49 +1938,49 @@ case 49:
goto tr78;
goto st0;
tr78:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st50;
st50:
if ( ++p == pe )
goto _test_eof50;
case 50:
-#line 1948 "mod/silverbox/memcached.c"
+#line 1949 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr79;
if ( 48 <= (*p) && (*p) <= 57 )
goto st50;
goto st0;
tr79:
-#line 499 "mod/silverbox/memcached.rl"
+#line 500 "mod/silverbox/memcached.rl"
{flags = natoq(fstart, p);}
goto st51;
st51:
if ( ++p == pe )
goto _test_eof51;
case 51:
-#line 1962 "mod/silverbox/memcached.c"
+#line 1963 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st51;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr82;
goto st0;
tr82:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st52;
st52:
if ( ++p == pe )
goto _test_eof52;
case 52:
-#line 1976 "mod/silverbox/memcached.c"
+#line 1977 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr83;
if ( 48 <= (*p) && (*p) <= 57 )
goto st52;
goto st0;
tr83:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
@@ -1990,49 +1991,49 @@ st53:
if ( ++p == pe )
goto _test_eof53;
case 53:
-#line 1994 "mod/silverbox/memcached.c"
+#line 1995 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st53;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr86;
goto st0;
tr86:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st54;
st54:
if ( ++p == pe )
goto _test_eof54;
case 54:
-#line 2008 "mod/silverbox/memcached.c"
+#line 2009 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr87;
if ( 48 <= (*p) && (*p) <= 57 )
goto st54;
goto st0;
tr87:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st55;
st55:
if ( ++p == pe )
goto _test_eof55;
case 55:
-#line 2022 "mod/silverbox/memcached.c"
+#line 2023 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st55;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr90;
goto st0;
tr90:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st56;
st56:
if ( ++p == pe )
goto _test_eof56;
case 56:
-#line 2036 "mod/silverbox/memcached.c"
+#line 2037 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr91;
case 13: goto tr92;
@@ -2042,30 +2043,30 @@ case 56:
goto st56;
goto st0;
tr106:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st57;
tr92:
-#line 501 "mod/silverbox/memcached.rl"
+#line 502 "mod/silverbox/memcached.rl"
{cas = natoq(fstart, p);}
goto st57;
st57:
if ( ++p == pe )
goto _test_eof57;
case 57:
-#line 2057 "mod/silverbox/memcached.c"
+#line 2058 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr95;
goto st0;
tr93:
-#line 501 "mod/silverbox/memcached.rl"
+#line 502 "mod/silverbox/memcached.rl"
{cas = natoq(fstart, p);}
goto st58;
st58:
if ( ++p == pe )
goto _test_eof58;
case 58:
-#line 2069 "mod/silverbox/memcached.c"
+#line 2070 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr95;
case 13: goto st57;
@@ -2126,14 +2127,14 @@ case 65:
}
goto st0;
tr107:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st66;
st66:
if ( ++p == pe )
goto _test_eof66;
case 66:
-#line 2137 "mod/silverbox/memcached.c"
+#line 2138 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr95;
case 13: goto st57;
@@ -2171,18 +2172,18 @@ case 70:
goto tr113;
goto st0;
tr113:
-#line 549 "mod/silverbox/memcached.rl"
+#line 550 "mod/silverbox/memcached.rl"
{incr_sign = -1;}
goto st71;
tr202:
-#line 548 "mod/silverbox/memcached.rl"
+#line 549 "mod/silverbox/memcached.rl"
{incr_sign = 1; }
goto st71;
st71:
if ( ++p == pe )
goto _test_eof71;
case 71:
-#line 2186 "mod/silverbox/memcached.c"
+#line 2187 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 13: goto st0;
case 32: goto st71;
@@ -2191,7 +2192,7 @@ case 71:
goto st0;
goto tr114;
tr114:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -2208,7 +2209,7 @@ st72:
if ( ++p == pe )
goto _test_eof72;
case 72:
-#line 2212 "mod/silverbox/memcached.c"
+#line 2213 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st73;
goto st0;
@@ -2222,14 +2223,14 @@ case 73:
goto tr117;
goto st0;
tr117:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st74;
st74:
if ( ++p == pe )
goto _test_eof74;
case 74:
-#line 2233 "mod/silverbox/memcached.c"
+#line 2234 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr118;
case 13: goto tr119;
@@ -2239,30 +2240,30 @@ case 74:
goto st74;
goto st0;
tr133:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st75;
tr119:
-#line 502 "mod/silverbox/memcached.rl"
+#line 503 "mod/silverbox/memcached.rl"
{incr = natoq(fstart, p);}
goto st75;
st75:
if ( ++p == pe )
goto _test_eof75;
case 75:
-#line 2254 "mod/silverbox/memcached.c"
+#line 2255 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr122;
goto st0;
tr120:
-#line 502 "mod/silverbox/memcached.rl"
+#line 503 "mod/silverbox/memcached.rl"
{incr = natoq(fstart, p);}
goto st76;
st76:
if ( ++p == pe )
goto _test_eof76;
case 76:
-#line 2266 "mod/silverbox/memcached.c"
+#line 2267 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr122;
case 13: goto st75;
@@ -2323,14 +2324,14 @@ case 83:
}
goto st0;
tr134:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st84;
st84:
if ( ++p == pe )
goto _test_eof84;
case 84:
-#line 2334 "mod/silverbox/memcached.c"
+#line 2335 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr122;
case 13: goto st75;
@@ -2377,7 +2378,7 @@ case 89:
goto st0;
goto tr140;
tr140:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -2394,7 +2395,7 @@ st90:
if ( ++p == pe )
goto _test_eof90;
case 90:
-#line 2398 "mod/silverbox/memcached.c"
+#line 2399 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr141;
case 13: goto st91;
@@ -2402,7 +2403,7 @@ case 90:
}
goto st0;
tr147:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
@@ -2410,14 +2411,14 @@ tr147:
}
goto st91;
tr158:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st91;
st91:
if ( ++p == pe )
goto _test_eof91;
case 91:
-#line 2421 "mod/silverbox/memcached.c"
+#line 2422 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr141;
goto st0;
@@ -2435,14 +2436,14 @@ case 92:
goto tr144;
goto st0;
tr144:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st93;
st93:
if ( ++p == pe )
goto _test_eof93;
case 93:
-#line 2446 "mod/silverbox/memcached.c"
+#line 2447 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr146;
case 13: goto tr147;
@@ -2452,7 +2453,7 @@ case 93:
goto st93;
goto st0;
tr148:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
@@ -2463,7 +2464,7 @@ st94:
if ( ++p == pe )
goto _test_eof94;
case 94:
-#line 2467 "mod/silverbox/memcached.c"
+#line 2468 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr141;
case 13: goto st91;
@@ -2524,14 +2525,14 @@ case 101:
}
goto st0;
tr159:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st102;
st102:
if ( ++p == pe )
goto _test_eof102;
case 102:
-#line 2535 "mod/silverbox/memcached.c"
+#line 2536 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr141;
case 13: goto st91;
@@ -2605,18 +2606,18 @@ case 111:
}
goto st0;
tr186:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st112;
tr175:
-#line 503 "mod/silverbox/memcached.rl"
+#line 504 "mod/silverbox/memcached.rl"
{flush_delay = natoq(fstart, p);}
goto st112;
st112:
if ( ++p == pe )
goto _test_eof112;
case 112:
-#line 2620 "mod/silverbox/memcached.c"
+#line 2621 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr169;
goto st0;
@@ -2634,14 +2635,14 @@ case 113:
goto tr172;
goto st0;
tr172:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st114;
st114:
if ( ++p == pe )
goto _test_eof114;
case 114:
-#line 2645 "mod/silverbox/memcached.c"
+#line 2646 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr174;
case 13: goto tr175;
@@ -2651,14 +2652,14 @@ case 114:
goto st114;
goto st0;
tr176:
-#line 503 "mod/silverbox/memcached.rl"
+#line 504 "mod/silverbox/memcached.rl"
{flush_delay = natoq(fstart, p);}
goto st115;
st115:
if ( ++p == pe )
goto _test_eof115;
case 115:
-#line 2662 "mod/silverbox/memcached.c"
+#line 2663 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr169;
case 13: goto st112;
@@ -2719,14 +2720,14 @@ case 122:
}
goto st0;
tr187:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st123;
st123:
if ( ++p == pe )
goto _test_eof123;
case 123:
-#line 2730 "mod/silverbox/memcached.c"
+#line 2731 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr169;
case 13: goto st112;
@@ -2757,18 +2758,18 @@ case 126:
}
goto st0;
tr191:
-#line 545 "mod/silverbox/memcached.rl"
+#line 546 "mod/silverbox/memcached.rl"
{show_cas = false;}
goto st127;
tr198:
-#line 546 "mod/silverbox/memcached.rl"
+#line 547 "mod/silverbox/memcached.rl"
{show_cas = true;}
goto st127;
st127:
if ( ++p == pe )
goto _test_eof127;
case 127:
-#line 2772 "mod/silverbox/memcached.c"
+#line 2773 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 13: goto st0;
case 32: goto st127;
@@ -2777,7 +2778,7 @@ case 127:
goto st0;
goto tr193;
tr193:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -2794,7 +2795,7 @@ st128:
if ( ++p == pe )
goto _test_eof128;
case 128:
-#line 2798 "mod/silverbox/memcached.c"
+#line 2799 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr195;
case 13: goto st129;
@@ -3001,7 +3002,7 @@ case 155:
goto st0;
goto tr222;
tr222:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -3018,7 +3019,7 @@ st156:
if ( ++p == pe )
goto _test_eof156;
case 156:
-#line 3022 "mod/silverbox/memcached.c"
+#line 3023 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st157;
goto st0;
@@ -3032,49 +3033,49 @@ case 157:
goto tr224;
goto st0;
tr224:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st158;
st158:
if ( ++p == pe )
goto _test_eof158;
case 158:
-#line 3043 "mod/silverbox/memcached.c"
+#line 3044 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr225;
if ( 48 <= (*p) && (*p) <= 57 )
goto st158;
goto st0;
tr225:
-#line 499 "mod/silverbox/memcached.rl"
+#line 500 "mod/silverbox/memcached.rl"
{flags = natoq(fstart, p);}
goto st159;
st159:
if ( ++p == pe )
goto _test_eof159;
case 159:
-#line 3057 "mod/silverbox/memcached.c"
+#line 3058 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st159;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr228;
goto st0;
tr228:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st160;
st160:
if ( ++p == pe )
goto _test_eof160;
case 160:
-#line 3071 "mod/silverbox/memcached.c"
+#line 3072 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr229;
if ( 48 <= (*p) && (*p) <= 57 )
goto st160;
goto st0;
tr229:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
@@ -3085,21 +3086,21 @@ st161:
if ( ++p == pe )
goto _test_eof161;
case 161:
-#line 3089 "mod/silverbox/memcached.c"
+#line 3090 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st161;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr232;
goto st0;
tr232:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st162;
st162:
if ( ++p == pe )
goto _test_eof162;
case 162:
-#line 3103 "mod/silverbox/memcached.c"
+#line 3104 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr233;
case 13: goto tr234;
@@ -3109,30 +3110,30 @@ case 162:
goto st162;
goto st0;
tr234:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st163;
tr247:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st163;
st163:
if ( ++p == pe )
goto _test_eof163;
case 163:
-#line 3124 "mod/silverbox/memcached.c"
+#line 3125 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr237;
goto st0;
tr235:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st164;
st164:
if ( ++p == pe )
goto _test_eof164;
case 164:
-#line 3136 "mod/silverbox/memcached.c"
+#line 3137 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 32: goto st164;
case 110: goto st165;
@@ -3224,7 +3225,7 @@ case 175:
goto st0;
goto tr252;
tr252:
-#line 476 "mod/silverbox/memcached.rl"
+#line 477 "mod/silverbox/memcached.rl"
{
fstart = p;
for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n';
p++);
@@ -3241,7 +3242,7 @@ st176:
if ( ++p == pe )
goto _test_eof176;
case 176:
-#line 3245 "mod/silverbox/memcached.c"
+#line 3246 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st177;
goto st0;
@@ -3255,49 +3256,49 @@ case 177:
goto tr254;
goto st0;
tr254:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st178;
st178:
if ( ++p == pe )
goto _test_eof178;
case 178:
-#line 3266 "mod/silverbox/memcached.c"
+#line 3267 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr255;
if ( 48 <= (*p) && (*p) <= 57 )
goto st178;
goto st0;
tr255:
-#line 499 "mod/silverbox/memcached.rl"
+#line 500 "mod/silverbox/memcached.rl"
{flags = natoq(fstart, p);}
goto st179;
st179:
if ( ++p == pe )
goto _test_eof179;
case 179:
-#line 3280 "mod/silverbox/memcached.c"
+#line 3281 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st179;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr258;
goto st0;
tr258:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st180;
st180:
if ( ++p == pe )
goto _test_eof180;
case 180:
-#line 3294 "mod/silverbox/memcached.c"
+#line 3295 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto tr259;
if ( 48 <= (*p) && (*p) <= 57 )
goto st180;
goto st0;
tr259:
-#line 492 "mod/silverbox/memcached.rl"
+#line 493 "mod/silverbox/memcached.rl"
{
exptime = natoq(fstart, p);
if (exptime > 0 && exptime <= 60*60*24*30)
@@ -3308,21 +3309,21 @@ st181:
if ( ++p == pe )
goto _test_eof181;
case 181:
-#line 3312 "mod/silverbox/memcached.c"
+#line 3313 "mod/silverbox/memcached.c"
if ( (*p) == 32 )
goto st181;
if ( 48 <= (*p) && (*p) <= 57 )
goto tr262;
goto st0;
tr262:
-#line 475 "mod/silverbox/memcached.rl"
+#line 476 "mod/silverbox/memcached.rl"
{ fstart = p; }
goto st182;
st182:
if ( ++p == pe )
goto _test_eof182;
case 182:
-#line 3326 "mod/silverbox/memcached.c"
+#line 3327 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 10: goto tr263;
case 13: goto tr264;
@@ -3332,30 +3333,30 @@ case 182:
goto st182;
goto st0;
tr264:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st183;
tr277:
-#line 534 "mod/silverbox/memcached.rl"
+#line 535 "mod/silverbox/memcached.rl"
{ noreply = true; }
goto st183;
st183:
if ( ++p == pe )
goto _test_eof183;
case 183:
-#line 3347 "mod/silverbox/memcached.c"
+#line 3348 "mod/silverbox/memcached.c"
if ( (*p) == 10 )
goto tr267;
goto st0;
tr265:
-#line 500 "mod/silverbox/memcached.rl"
+#line 501 "mod/silverbox/memcached.rl"
{bytes = natoq(fstart, p);}
goto st184;
st184:
if ( ++p == pe )
goto _test_eof184;
case 184:
-#line 3359 "mod/silverbox/memcached.c"
+#line 3360 "mod/silverbox/memcached.c"
switch( (*p) ) {
case 32: goto st184;
case 110: goto st185;
@@ -3651,7 +3652,7 @@ case 196:
_out: {}
}
-#line 559 "mod/silverbox/memcached.rl"
+#line 560 "mod/silverbox/memcached.rl"
if (!done) {
@@ -3753,6 +3754,8 @@ memcached_expire(void *data __unused__)
i = kh_begin(map);
struct tbuf *keys_to_delete = tbuf_alloc(fiber->pool);
+ int expired_keys = 0;
+
for (int j = 0; j < cfg.memcached_expire_per_loop; j++, i++) {
if (i == kh_end(map)) {
i = kh_begin(map);
@@ -3774,7 +3777,9 @@ memcached_expire(void *data __unused__)
while (keys_to_delete->len > 0) {
struct box_txn *txn = txn_alloc(BOX_QUIET);
delete(txn, read_field(keys_to_delete));
+ expired_keys++;
}
+ stat_collect(stat_base, MEMC_EXPIRED_KEYS, expired_keys);
fiber_gc();
diff --git a/mod/silverbox/memcached.rl b/mod/silverbox/memcached.rl
index 28c6435..4df75b1 100644
--- a/mod/silverbox/memcached.rl
+++ b/mod/silverbox/memcached.rl
@@ -44,7 +44,8 @@
#define STAT(_) \
_(MEMC_GET, 1) \
_(MEMC_GET_MISS, 2) \
- _(MEMC_GET_HIT, 3)
+ _(MEMC_GET_HIT, 3) \
+ _(MEMC_EXPIRED_KEYS, 4)
ENUM(memcached_stat, STAT);
STRS(memcached_stat, STAT);
@@ -657,6 +658,8 @@ memcached_expire(void *data __unused__)
i = kh_begin(map);
struct tbuf *keys_to_delete = tbuf_alloc(fiber->pool);
+ int expired_keys = 0;
+
for (int j = 0; j < cfg.memcached_expire_per_loop; j++, i++) {
if (i == kh_end(map)) {
i = kh_begin(map);
@@ -678,7 +681,9 @@ memcached_expire(void *data __unused__)
while (keys_to_delete->len > 0) {
struct box_txn *txn = txn_alloc(BOX_QUIET);
delete(txn, read_field(keys_to_delete));
+ expired_keys++;
}
+ stat_collect(stat_base, MEMC_EXPIRED_KEYS, expired_keys);
fiber_gc();
commit 5a4fba76bcc99a29b6edaa601467f506d8ee676d
Author: Yuriy Vostrikov <[email protected]>
Date: Fri Dec 3 15:07:53 2010 +0300
[core] Better param name in stat_register()
diff --git a/core/stat.c b/core/stat.c
index dd8ca41..96b0ef0 100644
--- a/core/stat.c
+++ b/core/stat.c
@@ -44,11 +44,11 @@ static int stats_max = 0;
static int base = 0;
int
-stat_register(char **name, size_t count)
+stat_register(char **name, size_t max_idx)
{
int initial_base = base;
- for (int i = 0; i < count; i++, name++, base++) {
+ for (int i = 0; i < max_idx; i++, name++, base++) {
if (stats_size <= base) {
stats_size += 1024;
stats = realloc(stats, sizeof(*stats) * stats_size);
commit 34972586ff1cc837ebc314f4e447e9e5763d3149
Author: Yuriy Vostrikov <[email protected]>
Date: Fri Dec 3 15:07:08 2010 +0300
[core] Fix bug causing last stat value being ignored.
diff --git a/core/stat.c b/core/stat.c
index c515cd0..dd8ca41 100644
--- a/core/stat.c
+++ b/core/stat.c
@@ -83,13 +83,13 @@ stat_print(struct tbuf *buf)
int max_len = 0;
tbuf_printf(buf, "statistics:\n");
- for (int i = 0; i < stats_max; i++) {
+ for (int i = 0; i <= stats_max; i++) {
if (stats[i].name == NULL)
continue;
max_len = MAX(max_len, strlen(stats[i].name));
}
- for (int i = 0; i < stats_max; i++) {
+ for (int i = 0; i <= stats_max; i++) {
if (stats[i].name == NULL)
continue;
@@ -108,7 +108,7 @@ stat_print(struct tbuf *buf)
void
stat_age(ev_timer *timer, int events __unused__)
{
- for (int i = 0; i < stats_max; i++) {
+ for (int i = 0; i <= stats_max; i++) {
if (stats[i].name == NULL)
continue;
--
Tarantool -- an efficient key/value data store
_______________________________________________
Mailing list: https://launchpad.net/~tarantool-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~tarantool-developers
More help : https://help.launchpad.net/ListHelp