Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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