Commit 53272781 authored by antirez's avatar antirez
Browse files

Multi bulk optimization for creating big objects without copying data is no...

Multi bulk optimization for creating big objects without copying data is no longer optional, #ifdefs removed. Also debugging messages removed.
parent 65330bad
...@@ -767,7 +767,6 @@ int processMultibulkBuffer(redisClient *c) { ...@@ -767,7 +767,6 @@ int processMultibulkBuffer(redisClient *c) {
} }
pos += newline-(c->querybuf+pos)+2; pos += newline-(c->querybuf+pos)+2;
#ifdef REDIS_MBULK_BIG_ARG
if (ll >= REDIS_MBULK_BIG_ARG) { if (ll >= REDIS_MBULK_BIG_ARG) {
/* If we are going to read a large object from network /* If we are going to read a large object from network
* try to make it likely that it will start at c->querybuf * try to make it likely that it will start at c->querybuf
...@@ -780,7 +779,6 @@ int processMultibulkBuffer(redisClient *c) { ...@@ -780,7 +779,6 @@ int processMultibulkBuffer(redisClient *c) {
* going to contain. */ * going to contain. */
if (ll >= REDIS_MBULK_BIG_ARG) if (ll >= REDIS_MBULK_BIG_ARG)
c->querybuf = sdsMakeRoomFor(c->querybuf,ll+2); c->querybuf = sdsMakeRoomFor(c->querybuf,ll+2);
#endif
c->bulklen = ll; c->bulklen = ll;
} }
...@@ -789,7 +787,6 @@ int processMultibulkBuffer(redisClient *c) { ...@@ -789,7 +787,6 @@ int processMultibulkBuffer(redisClient *c) {
/* Not enough data (+2 == trailing \r\n) */ /* Not enough data (+2 == trailing \r\n) */
break; break;
} else { } else {
#ifdef REDIS_MBULK_BIG_ARG
/* Optimization: if the buffer contanins JUST our bulk element /* Optimization: if the buffer contanins JUST our bulk element
* instead of creating a new object by *copying* the sds we * instead of creating a new object by *copying* the sds we
* just use the current sds string. */ * just use the current sds string. */
...@@ -797,7 +794,6 @@ int processMultibulkBuffer(redisClient *c) { ...@@ -797,7 +794,6 @@ int processMultibulkBuffer(redisClient *c) {
c->bulklen >= REDIS_MBULK_BIG_ARG && c->bulklen >= REDIS_MBULK_BIG_ARG &&
(signed) sdslen(c->querybuf) == c->bulklen+2) (signed) sdslen(c->querybuf) == c->bulklen+2)
{ {
// printf("HERE (arg %d)\n",c->argc);
c->argv[c->argc++] = createObject(REDIS_STRING,c->querybuf); c->argv[c->argc++] = createObject(REDIS_STRING,c->querybuf);
sdsIncrLen(c->querybuf,-2); /* remove CRLF */ sdsIncrLen(c->querybuf,-2); /* remove CRLF */
c->querybuf = sdsempty(); c->querybuf = sdsempty();
...@@ -806,14 +802,10 @@ int processMultibulkBuffer(redisClient *c) { ...@@ -806,14 +802,10 @@ int processMultibulkBuffer(redisClient *c) {
c->querybuf = sdsMakeRoomFor(c->querybuf,c->bulklen+2); c->querybuf = sdsMakeRoomFor(c->querybuf,c->bulklen+2);
pos = 0; pos = 0;
} else { } else {
#endif
// printf("NOT HERE (arg %d) (pos %d)\n",c->argc, pos);
c->argv[c->argc++] = c->argv[c->argc++] =
createStringObject(c->querybuf+pos,c->bulklen); createStringObject(c->querybuf+pos,c->bulklen);
pos += c->bulklen+2; pos += c->bulklen+2;
#ifdef REDIS_MBULK_BIG_ARG
} }
#endif
c->bulklen = -1; c->bulklen = -1;
c->multibulklen--; c->multibulklen--;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment