Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
a510cb0c
Commit
a510cb0c
authored
Jan 05, 2011
by
Pieter Noordhuis
Browse files
Remove glueoutputbuf option and broken code
parent
6eaad663
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/config.c
View file @
a510cb0c
...
...
@@ -194,10 +194,8 @@ void loadServerConfig(char *filename) {
if
((
server
.
repl_serve_stale_data
=
yesnotoi
(
argv
[
1
]))
==
-
1
)
{
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
}
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"glueoutputbuf"
)
&&
argc
==
2
)
{
if
((
server
.
glueoutputbuf
=
yesnotoi
(
argv
[
1
]))
==
-
1
)
{
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
}
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"glueoutputbuf"
))
{
redisLog
(
REDIS_WARNING
,
"Deprecated configuration directive:
\"
%s
\"
"
,
argv
[
0
]);
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"rdbcompression"
)
&&
argc
==
2
)
{
if
((
server
.
rdbcompression
=
yesnotoi
(
argv
[
1
]))
==
-
1
)
{
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
...
...
src/networking.c
View file @
a510cb0c
...
...
@@ -515,15 +515,6 @@ void sendReplyToClient(aeEventLoop *el, int fd, void *privdata, int mask) {
REDIS_NOTUSED
(
el
);
REDIS_NOTUSED
(
mask
);
/* Use writev() if we have enough buffers to send */
if
(
!
server
.
glueoutputbuf
&&
listLength
(
c
->
reply
)
>
REDIS_WRITEV_THRESHOLD
&&
!
(
c
->
flags
&
REDIS_MASTER
))
{
sendReplyToClientWritev
(
el
,
fd
,
privdata
,
mask
);
return
;
}
while
(
c
->
bufpos
>
0
||
listLength
(
c
->
reply
))
{
if
(
c
->
bufpos
>
0
)
{
if
(
c
->
flags
&
REDIS_MASTER
)
{
...
...
@@ -594,84 +585,6 @@ void sendReplyToClient(aeEventLoop *el, int fd, void *privdata, int mask) {
}
}
void
sendReplyToClientWritev
(
aeEventLoop
*
el
,
int
fd
,
void
*
privdata
,
int
mask
)
{
redisClient
*
c
=
privdata
;
int
nwritten
=
0
,
totwritten
=
0
,
objlen
,
willwrite
;
robj
*
o
;
struct
iovec
iov
[
REDIS_WRITEV_IOVEC_COUNT
];
int
offset
,
ion
=
0
;
REDIS_NOTUSED
(
el
);
REDIS_NOTUSED
(
mask
);
listNode
*
node
;
while
(
listLength
(
c
->
reply
))
{
offset
=
c
->
sentlen
;
ion
=
0
;
willwrite
=
0
;
/* fill-in the iov[] array */
for
(
node
=
listFirst
(
c
->
reply
);
node
;
node
=
listNextNode
(
node
))
{
o
=
listNodeValue
(
node
);
objlen
=
sdslen
(
o
->
ptr
);
if
(
totwritten
+
objlen
-
offset
>
REDIS_MAX_WRITE_PER_EVENT
)
break
;
if
(
ion
==
REDIS_WRITEV_IOVEC_COUNT
)
break
;
/* no more iovecs */
iov
[
ion
].
iov_base
=
((
char
*
)
o
->
ptr
)
+
offset
;
iov
[
ion
].
iov_len
=
objlen
-
offset
;
willwrite
+=
objlen
-
offset
;
offset
=
0
;
/* just for the first item */
ion
++
;
}
if
(
willwrite
==
0
)
break
;
/* write all collected blocks at once */
if
((
nwritten
=
writev
(
fd
,
iov
,
ion
))
<
0
)
{
if
(
errno
!=
EAGAIN
)
{
redisLog
(
REDIS_VERBOSE
,
"Error writing to client: %s"
,
strerror
(
errno
));
freeClient
(
c
);
return
;
}
break
;
}
totwritten
+=
nwritten
;
offset
=
c
->
sentlen
;
/* remove written robjs from c->reply */
while
(
nwritten
&&
listLength
(
c
->
reply
))
{
o
=
listNodeValue
(
listFirst
(
c
->
reply
));
objlen
=
sdslen
(
o
->
ptr
);
if
(
nwritten
>=
objlen
-
offset
)
{
listDelNode
(
c
->
reply
,
listFirst
(
c
->
reply
));
nwritten
-=
objlen
-
offset
;
c
->
sentlen
=
0
;
}
else
{
/* partial write */
c
->
sentlen
+=
nwritten
;
break
;
}
offset
=
0
;
}
}
if
(
totwritten
>
0
)
c
->
lastinteraction
=
time
(
NULL
);
if
(
listLength
(
c
->
reply
)
==
0
)
{
c
->
sentlen
=
0
;
aeDeleteFileEvent
(
server
.
el
,
c
->
fd
,
AE_WRITABLE
);
}
}
/* resetClient prepare the client to process the next command */
void
resetClient
(
redisClient
*
c
)
{
freeClientArgv
(
c
);
...
...
src/redis.c
View file @
a510cb0c
...
...
@@ -749,7 +749,6 @@ void initServerConfig() {
server
.
syslog_enabled
=
0
;
server
.
syslog_ident
=
zstrdup
(
"redis"
);
server
.
syslog_facility
=
LOG_LOCAL0
;
server
.
glueoutputbuf
=
1
;
server
.
daemonize
=
0
;
server
.
appendonly
=
0
;
server
.
appendfsync
=
APPENDFSYNC_EVERYSEC
;
...
...
src/redis.h
View file @
a510cb0c
...
...
@@ -50,11 +50,6 @@
#define REDIS_REPLY_CHUNK_BYTES (5*1500)
/* 5 TCP packets with default MTU */
#define REDIS_MAX_LOGMSG_LEN 1024
/* Default maximum length of syslog messages */
/* If more then REDIS_WRITEV_THRESHOLD write packets are pending use writev */
#define REDIS_WRITEV_THRESHOLD 3
/* Max number of iovecs used for each writev call */
#define REDIS_WRITEV_IOVEC_COUNT 256
/* Hash table parameters */
#define REDIS_HT_MINFILL 10
/* Minimal hash table fill 10% */
...
...
@@ -384,7 +379,6 @@ struct redisServer {
long
long
stat_keyspace_misses
;
/* number of failed lookups of keys */
/* Configuration */
int
verbosity
;
int
glueoutputbuf
;
int
maxidletime
;
int
dbnum
;
int
daemonize
;
...
...
@@ -629,7 +623,6 @@ void closeTimedoutClients(void);
void
freeClient
(
redisClient
*
c
);
void
resetClient
(
redisClient
*
c
);
void
sendReplyToClient
(
aeEventLoop
*
el
,
int
fd
,
void
*
privdata
,
int
mask
);
void
sendReplyToClientWritev
(
aeEventLoop
*
el
,
int
fd
,
void
*
privdata
,
int
mask
);
void
addReply
(
redisClient
*
c
,
robj
*
obj
);
void
*
addDeferredMultiBulkLength
(
redisClient
*
c
);
void
setDeferredMultiBulkLength
(
redisClient
*
c
,
void
*
node
,
long
length
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment