4386 Commits

Author SHA1 Message Date
antirez
3f2975ad12 Sentinel: INFO-CACHE GCC minior code cleanup.
I guess the initial goal of the initialization was to suppress GCC
warning, but if we have to initialize, we can do it with the base-case
value instead of NULL which is never retained.
2014-12-10 11:12:26 +01:00
antirez
043ae412ca Sentinel: removed useless flag var from INFO-CACHE. 2014-12-10 11:05:37 +01:00
antirez
71e4635ae9 Sentinel: INFO-CACHE reply format command shortened. 2014-12-10 11:04:24 +01:00
Salvatore Sanfilippo
2a8f657b3b Merge pull request #2148 from mattsta/feature/sentinel/info-cache
Add SENTINEL INFO-CACHE [masters...]
2014-12-10 11:02:42 +01:00
antirez
b06903493f Merge branch 'unstable' of github.com:/antirez/redis into unstable 2014-12-10 09:51:00 +01:00
antirez
a6793ec030 test-sds target in Makefile to run sds.c tests. 2014-12-10 09:50:27 +01:00
antirez
1a5d6bf9f8 sds.c: more tests for sdstrim(). 2014-12-10 09:48:56 +01:00
Brochen
3b452712ea Update sds.c
in the case (all chars of the string s found in 'cset' ),
line[573] will no more do the same thing line[572] did.
this will be more faster especially in the case that the string s is very long and all chars of string s found in 'cset'
2014-12-10 11:19:13 +08:00
Salvatore Sanfilippo
b55a5a2bcb Merge pull request #2165 from sunheehnus/zipmap-read
zipmap.c: update comments above
2014-12-09 15:57:17 +01:00
Salvatore Sanfilippo
b00ed695ef Merge pull request #2176 from deepakverma/redis_bench_authfix
redis-benchmark AUTH command to be discarded after the first send #2150
2014-12-09 15:24:44 +01:00
Salvatore Sanfilippo
dcbccce614 Merge pull request #2119 from sunheehnus/unstable
sds.c/sdscatvprintf: va_end needs to be fixed
2014-12-09 15:13:05 +01:00
antirez
26b5bd7ef5 Include stropts only if __sun is defined. 2014-12-09 12:59:46 +01:00
Salvatore Sanfilippo
bf0896307b Merge pull request #2177 from badboy/solaris-ioctl-warn-fix
Fix implicit declaration of ioctl on Solaris
2014-12-09 12:57:22 +01:00
Salvatore Sanfilippo
df397740c1 Merge pull request #2179 from sunheehnus/bitops-read
bitops.c/redisPopcount: optimization in loop
2014-12-09 12:46:15 +01:00
Salvatore Sanfilippo
cb1c8a4300 Merge pull request #2189 from jbergstroem/glibc_220_default_warn
Silence _BSD_SOURCE warnings in glibc 2.20 and forward
2014-12-09 12:24:04 +01:00
Salvatore Sanfilippo
f2af27f04c Merge pull request #2197 from sunheehnus/sparkline
sparkline.c: mov label-ini into the AddSample Function
2014-12-09 11:27:40 +01:00
Jan-Erik Rediger
95f157c35a Only ignore sigpipe in interactive mode
This allows shell pipes to correctly end redis-cli.

Ref #2066
2014-12-09 00:58:42 +01:00
Sun He
a2d667d2b7 sparkline.c: AddSample skip Empty label 2014-12-08 11:43:32 +08:00
Sun He
c965d0425d sparkline.c: mov label-ini into the AddSample Function 2014-12-08 11:15:06 +08:00
Johan Bergström
77c03b4941 Silence _BSD_SOURCE warnings in glibc 2.20 and forward
See https://sourceware.org/glibc/wiki/Release/2.20#Packaging_Changes
2014-12-05 12:41:59 +11:00
antirez
368de4315a Check that tcp-backlog is matched by /proc/sys/net/core/somaxconn. 2014-12-04 11:02:53 +01:00
antirez
cf30e64410 Network bandwidth tracking + refactoring.
Track bandwidth used by clients and replication (but diskless
replication is not tracked since the actual transfer happens in the
child process).

This includes a refactoring that makes tracking new instantaneous
metrics simpler.
2014-12-03 12:16:25 +01:00
antirez
8d56b142b0 Don't show the ASCII logo if syslog is enabled.
Closes issue #1935.
2014-12-03 10:50:47 +01:00
antirez
59d12da5d4 Handle infinite explicitly in createStringObjectFromLongLong(). 2014-12-03 10:37:01 +01:00
Sun He
e03fbdd000 bitops.c/bitopCommand: skip short minlen for FAST PATH 2014-12-03 10:07:58 +08:00
antirez
b81104a288 Use exp format and more precision output for ZSCAN.
Ref: issue #2175
2014-12-02 18:20:09 +01:00
antirez
12a9ec9a84 Over 80 chars comment trimmed in pfcountCommand(). 2014-12-02 17:03:22 +01:00
antirez
4d23a26c6e Mark PFCOUNT as read-only, even if not true.
PFCOUNT is technically speaking a write command, since the cached value
of the HLL is exposed in the data structure (design error, mea culpa), and
can be modified by PFCOUNT.

However if we flag PFCOUNT as "w", read only slaves can't execute the
command, which is a problem since there are environments where slaves
are used to scale PFCOUNT reads.

Nor it is possible to just prevent PFCOUNT to modify the data structure
in slaves, since without the cache we lose too much efficiency.

So while this commit allows slaves to create a temporary inconsistency
(the strings representing the HLLs in the master and slave can be
different in certain moments) it is actually harmless.

In the long run this should be probably fixed by turning the HLL into a
more opaque representation, for example by storing the cached value in
the part of the string which is not exposed (this should be possible
with SDS strings).
2014-12-02 16:57:23 +01:00
Sun He
38ce5147a5 bitops.c/redisPopcount: little optimization in loop 2014-12-02 14:46:15 +08:00
Deepak Verma
ff62818d66 replaced // comments #2150 2014-12-01 22:54:49 +00:00
Jan-Erik Rediger
c3539abccb Fix implicit declaration of ioctl on Solaris 2014-12-01 23:22:03 +01:00
azure provisioned user
773dcf4e60 redis-benchmark AUTH command to be discarded after the first send #2150 2014-12-01 21:42:40 +00:00
antirez
0186fa3aa5 Cluster PUBLISH message: fix totlen count.
bulk_data field size was not removed from the count. It is not possible
to declare it simply as 'char bulk_data[]' since the structure is nested
into another structure.
2014-11-28 10:21:47 +01:00
antirez
ded0f6c8dc redis-benchmark: default num of requests is now 100000.
10000 completes in a too short time and may easily provide unreliable
figures because of tiny duration.
2014-11-28 09:23:39 +01:00
Matthias Petschick
61ab662691 fix benchmark memleak in loop mode 2014-11-28 02:50:17 +01:00
antirez
cb7d22d179 Fix DEBUG OBJECT lru field to report seconds.
Because of (not so) recent Redis changes, now the LRU internally
reported unit is milliseconds, not seconds, but the DEBUG OBJECT output
was still claiming seconds while providing milliseconds.
However OBJECT IDLETIME was working as expected, which is the correct
API to use.
2014-11-26 16:38:33 +01:00
antirez
cd0cf6f5eb Document redis-cli --stat in --help output. 2014-11-25 18:23:40 +01:00
Sun He
74c545f68b zipmap.c: update comments above 2014-11-25 21:58:05 +08:00
antirez
281d61199b Avoid valgrind memory leak false positive in processInlineBuffer().
zmalloc(0) cauesd to actually trigger a non-zero allocation since with
standard libc malloc we have our own zmalloc header for memory tracking,
but at the same time the returned pointer is at the end of the block and
not in the middle. This triggers a false positive when testing with
valgrind.

When the inline protocol args count is 0, we now avoid reallocating
c->argv, preventing the issue to happen.
2014-11-25 14:48:30 +01:00
Mihir Joshi
4cd61b4b9b stricter options for SET command
Issue: #2157
As the SET command is parsed, it remembers which options are already set
and if a duplicate option is found, raises an error because it is
essentially an invalid syntax.

It still allows mutually exclusive options like EX and PX because taking
an option over another (precedence) is not essentially a syntactic
error.
2014-11-21 22:35:42 -05:00
Matt Stancliff
c25d7ceaee Add SENTINEL INFO-CACHE [masters...]
Sentinel queries the INFO from every master and from every replica of
every master.

We can cache the INFO results in Sentinel so Sentinel can be a single
place to quickly get all INFO output for an entire Sentinel monitoring
group.

This commit gives us SENTINEL INFO-CACHE in two forms:
  - SENTINEL INFO-CACHE — returns all masters and all replicas
  - SENTINEL INFO-CACHE master0 master1 ... masterN — vararg specify masters

Results are returned as a multibulk reply with two top-level entries
for each master.  The first entry for each master is the name of the master.
The second entry is a nested multibulk reply with the contents of INFO,
first for the master, then an additional entry for each of the
replicas.
2014-11-20 16:56:30 -05:00
Matt Stancliff
2da508abce Sentinel: Add initial quorum bounds check
Fixes #2054
2014-11-20 16:30:17 -05:00
antirez
dcab2c2f32 Fix non-linux builds error introduced with THP checks. 2014-11-14 17:13:35 +01:00
Salvatore Sanfilippo
73036e808d Merge pull request #1662 from mattsta/lua-add-bitops
Lua: Add bitop
2014-11-14 17:05:28 +01:00
antirez
06401be3fb THP detection for LATENCY DOCTOR. 2014-11-12 11:17:12 +01:00
antirez
a883f367f5 Check THP support at startup and warn about it. 2014-11-12 10:55:47 +01:00
antirez
0775665453 THP detection / reporting functions added. 2014-11-12 10:43:32 +01:00
antirez
7197f03ef2 Diskless SYNC: fix RDB EOF detection.
RDB EOF detection was relying on the final part of the RDB transfer to
be a magic 40 bytes EOF marker. However as the slave is put online
immediately, and because of sockets timeouts, the replication stream is
actually contiguous with the RDB file.

This means that to detect the EOF correctly we should either:

1) Scan all the stream searching for the mark. Sucks CPU-wise.
2) Start to send the replication stream only after an acknowledge.
3) Implement a proper chunked encoding.

For now solution "2" was picked, so the master does not start to send
ASAP the stream of commands in the case of diskless replication. We wait
for the first REPLCONF ACK command from the slave, that certifies us
that the slave correctly loaded the RDB file and is ready to get more
data.
2014-11-11 17:12:12 +01:00
antirez
e996a7edca Disconnect timedout slave: regression introduced with diskless repl. 2014-11-11 15:10:58 +01:00
Pierre-Yves Ritschard
df1922ccb0 Support daemon supervision by upstart or systemd
Both upstart and systemd provide a way for daemons to
be supervised, as well as a mechanism for them to
signal their readyness status.

This patch provides compatibility with this functionality while
not interfering with other methods.

With this, it will be possible to use `expect stop` with upstart
and `Type=notify` with systemd.

A more detailed explanation of the mechanism can be found here:
http://spootnik.org/entries/2014/11/09_pid-tracking-in-modern-init-systems.html
2014-11-11 11:05:10 +01:00