Pieter Noordhuis
89191613f1
limits.h is already included from redis.h
2010-12-23 11:14:05 +00:00
Pieter Noordhuis
65b472acce
Solaris 10 doesn't know AF_LOCAL
2010-12-23 11:09:07 +00:00
Pieter Noordhuis
ba55932674
Solaris doesn't support -rdynamic
2010-12-23 11:08:50 +00:00
Pieter Noordhuis
2380388974
Randomize keys and set start time when first write event fires
2010-12-23 11:22:40 +01:00
Pieter Noordhuis
3c49070b35
Find substrings to randomize when the client is created
2010-12-23 11:04:44 +01:00
Pieter Noordhuis
d69a483556
Make the MSET benchmark *really* work with 10 keys
2010-12-22 18:39:52 +01:00
Pieter Noordhuis
f2f2424e00
Remove code duplication
2010-12-22 18:31:33 +01:00
antirez
180596766b
help.h updated
2010-12-19 15:19:08 +01:00
antirez
f21779ff36
removed some dead code, added evicted keys counter separated from expired keys.
2010-12-19 15:15:08 +01:00
antirez
9d7165e885
overflow detection in INCR family functions
2010-12-19 12:22:12 +01:00
Didier Spezia
f474a5bd4e
Add wait states to deal with many connections.
2010-12-18 12:11:26 +01:00
Pieter Noordhuis
1cd3c1e08c
Use multi-bulk protocol by default in redis-benchmark
2010-12-18 12:10:24 +01:00
Pieter Noordhuis
174df6fe49
Re-use variable data in redis-benchmark
2010-12-16 23:41:58 +01:00
Pieter Noordhuis
53f1d81712
Fix NULL-termination of variable data in redis-benchmark
2010-12-16 23:35:56 +01:00
antirez
401c3e213c
bulk transfers limited to 512 MB as this is the new limit of all the redis strings
2010-12-15 16:07:49 +01:00
antirez
beb1aab3fd
Merge remote branch 'pietern/cli'
2010-12-15 16:03:43 +01:00
Pieter Noordhuis
28c07c7bf8
Specify multi-bulk delimiter via options
2010-12-15 16:02:07 +01:00
Pieter Noordhuis
65add0a311
Improved raw output mode
...
Raw output mode is selected by default when STDOUT is not a tty. For
ttys, raw output can be forced using the option "--raw".
2010-12-15 15:59:06 +01:00
antirez
2136a880a7
version bumped to 2.1.8
2010-12-15 15:22:04 +01:00
Pieter Noordhuis
f18e059e82
Make redis-cli help a little better
2010-12-15 15:00:47 +01:00
Pieter Noordhuis
c392edf531
Show redis-cli version with repository information if present
2010-12-15 14:34:05 +01:00
Pieter Noordhuis
c8061392e1
Minor changes to Makefile
2010-12-15 12:48:12 +01:00
Pieter Noordhuis
ad1b4f4f59
Use helper function for string object length
2010-12-15 11:49:04 +01:00
Pieter Noordhuis
1333f98dd2
Use helper functions in APPEND
2010-12-15 11:40:36 +01:00
Pieter Noordhuis
8f8eeffec1
Disable negative offsets for SETRANGE
2010-12-15 11:30:50 +01:00
Pieter Noordhuis
30407e1f4f
Make SETBIT return original bit value
2010-12-15 00:42:32 +01:00
antirez
6a246b1e7e
special encoding limits redefined, and all the config options for special encodings added in the example redis.conf file
2010-12-14 18:23:52 +01:00
antirez
cc7c4158bc
Merge remote branch 'jonahharris/syslog'
2010-12-14 17:53:28 +01:00
antirez
8e33831b2b
Merge remote branch 'pietern/cli-monitor'
2010-12-14 17:48:52 +01:00
antirez
648e965460
removed a test that will never be true fixing the compilation on Linux
2010-12-14 17:46:20 +01:00
antirez
603e616bf4
Merge branch 'master' of github.com:antirez/redis
2010-12-14 17:42:46 +01:00
antirez
57997664ea
Merge remote branch 'pietern/strrange'
2010-12-14 17:42:01 +01:00
Pieter Noordhuis
2b2eca1f56
Zero-pad timestamps in MONITOR output
...
Original report and fix:
http://code.google.com/p/redis/issues/detail?id=404
2010-12-14 17:39:34 +01:00
antirez
96b5d05fde
initialized a few vars just to avoid warnings, not a real problem.
2010-12-14 16:39:33 +01:00
antirez
f858c11d7d
Merge remote branch 'pietern/brpoplpush'
2010-12-14 16:26:37 +01:00
Pieter Noordhuis
ef11bcccca
Refactor and rename SUBSTR to GETRANGE
...
SUBSTR is renamed to GETRANGE to have better consistency between command
names (with SETRANGE as its dual). GETRANGE is still aliased as SUBSTR.
2010-12-14 15:16:29 +01:00
Pieter Noordhuis
9f9e1ceaa0
Add SETRANGE command implementation and tests
2010-12-14 14:20:51 +01:00
antirez
8c304be359
cow friendly HGETALL and variants
2010-12-14 12:10:51 +01:00
Pieter Noordhuis
7ecd4644e7
Don't decode object on STRLEN when not necessary
2010-12-14 10:42:41 +01:00
antirez
afd438dfff
previouse INCR implementation restored, was actually faster for some reson not fully clear at the moment
2010-12-10 19:15:00 +01:00
antirez
a15742a41b
dont take the fast path for INCR if the resulting integer will fit into a shared integer range
2010-12-10 17:23:38 +01:00
antirez
b215a496a4
faster INCR doing far less allocation in common cases
2010-12-10 17:03:38 +01:00
antirez
dd48de748c
fixed compilation on Linux
2010-12-10 15:47:01 +01:00
antirez
e9bc56dbed
valgrind suppression file added
2010-12-10 15:36:04 +01:00
antirez
3d24304ff9
HGET HMGET are now COW friendly, plus API refactoring and changes needed for the new implementation.
2010-12-10 15:17:55 +01:00
Pieter Noordhuis
cc20906390
Change function name to match what it does
2010-12-10 12:16:16 +01:00
Pieter Noordhuis
586500c0ef
Typo
2010-12-10 12:06:24 +01:00
Pieter Noordhuis
eae33c1c81
Add generic function to grow an sds value
...
Move logic concerned with setting a bit in an sds to the SETBIT command
instead of keeping it in sds.c. The function to grow an sds can and will
be reused for a command to set a range within a string value.
2010-12-10 11:58:21 +01:00
antirez
1b508da7ca
SINTER/MEMBERS are now COW friendly, also some refactoring around was needed to get this result.
2010-12-09 23:01:09 +01:00
Jonah H. Harris
8b5db0a8dc
removed dup syslog-ident conditional
2010-12-09 11:26:33 -05:00
Pieter Noordhuis
076f88d657
Enforce maximum string value length of 512MB
2010-12-09 17:16:10 +01:00
Jonah H. Harris
e1a586ee69
syslog support
2010-12-09 11:10:21 -05:00
Pieter Noordhuis
3c1bf4957e
Add commands SETBIT/GETBIT
2010-12-09 16:39:33 +01:00
antirez
a5be65f71c
COW friendly versions of SPOP and SRANDMEMBER commands, with some change to the set encoding-agnostic API.
2010-12-09 10:21:02 +01:00
antirez
d51ebef509
LRANGE converted into a COW friendly command. Some refactoring, comment, and new addReply*() family function added in the process.
2010-12-07 16:33:13 +01:00
Pieter Noordhuis
a4ce758155
Don't execute commands for clients when they are unblocked
2010-12-06 16:39:39 +01:00
Pieter Noordhuis
ecf9401415
Fix case and indent
2010-12-06 16:04:42 +01:00
Pieter Noordhuis
8a88c368ed
Check other blocked clients when value could not be pushed
2010-12-06 16:04:10 +01:00
Pieter Noordhuis
ac06fc011d
Move code for pushing on a (blocking) RPOPLPUSH
2010-12-06 14:48:58 +01:00
Pieter Noordhuis
5fa95ad763
Rename blpop_blocked_clients to bpop_blocked_clients
2010-12-06 14:05:01 +01:00
Pieter Noordhuis
c8a0070a61
Move timeout logic
2010-12-06 13:45:48 +01:00
Pieter Noordhuis
bc8ffafeb9
Merge branch 'master' into brpoplpush
2010-12-06 12:31:56 +01:00
antirez
bbac56c2f8
added support for ctrl-l and clear command into redis-cli. To clear the screen is a good idea from time to time :). Also linenoise updated to the current version to support this new feature.
2010-12-01 11:18:59 +01:00
antirez
ce260f736e
minor merge conflicts merging cli-help branch fixed
2010-11-30 11:39:55 +01:00
Michel Martens & Damian Janowski
baa14ef913
Fix BRPOPLPUSH behavior for all use cases.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
8987bf23bf
Adhere to conventions.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
e3c51c4b1b
Rename bstate to bpop.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
59bd44d1c8
Remove warning.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
7c25a43adc
Handle BRPOPLPUSH inside a transaction.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
ba3b474111
Refactor code for BRPOPLPUSH.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
357a841714
Move to struct.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
b2a7fd0cf7
BRPOPLPUSH.
2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens
8a979f0390
Fix case in RPOPLPUSH.
2010-11-29 23:52:07 -03:00
Pieter Noordhuis
b2cc45bfbc
Refactor and support help for command names with spaces
2010-11-29 20:26:32 +01:00
Pieter Noordhuis
41945ba6ae
Use linenoise completion API from redis-cli
2010-11-29 19:27:36 +01:00
antirez
d8d528e992
quick and dirty fix for hiredis bug creating problem with the new redis-cli connect commmand. Also change prompt when redis-cli is not connected
2010-11-29 12:20:17 +01:00
antirez
efcf948c1a
new redis-cli command connect
2010-11-29 12:17:55 +01:00
Pieter Noordhuis
a2a69d5803
Refactor help-related code into redis-cli.c
2010-11-28 21:37:19 +01:00
Pieter Noordhuis
50d0e82d54
Update help.h generator script to output man-style argument list
2010-11-28 17:45:58 +01:00
Pieter Noordhuis
2612e0521f
Merge remote branch 'visionmedia/cli-help' into cli-help
2010-11-26 20:46:42 +01:00
Pieter Noordhuis
a4e48b417d
Don't hardcode make to "make"
2010-11-21 16:44:17 +01:00
Pieter Noordhuis
bd70a5f588
Stop using /dev/null to find out the serialized object length
...
Now the rdbSave* functions return the number of bytes written (or
required to write) in serializing a Redis object, writing to /dev/null
and using ftell (which doesn't work on FreeBSD) isn't needed anymore.
2010-11-21 16:31:27 +01:00
Pieter Noordhuis
9a68cf91f0
Wrapper around fwrite to make API consistent
2010-11-21 16:12:25 +01:00
Pieter Noordhuis
8a623a98c3
Return number of bytes written from rdbSave* functions
2010-11-21 16:07:46 +01:00
Tj Holowaychuk
5397f2b596
Added redis-cli interactive help support
...
updated via commands.json in redis-doc repo. Currently
use `make src/help.h` to re-generate. The following
are valid from the REPL:
help
help [command]
help [group]
help groups
ex:
help sort
help hash
2010-11-16 05:50:26 -08:00
antirez
9fd01051bf
Fix for bug 374, thanks to Jeremy Zawodny for reporting and tracing why it was crashing.
2010-11-12 20:02:20 +01:00
antirez
0c2f75c6d8
volatile-lru maxmemory policy segfault fixed, thanks to Anthony Lauzon for reporting the problem with the patch. Original patch modified a bit in order to avoid the double lookup if the policy is allkeys-lru
2010-11-11 13:19:17 +01:00
antirez
11fd0c422b
now redis-cli is able to show the Git SHA1 in the version output
2010-11-08 16:26:02 +01:00
antirez
d9d8ccab93
make sure to flush stdout every line read in monitor mode, to play well with redirection to file
2010-11-08 16:14:15 +01:00
antirez
5402c4262e
added noeviction policy to redis maxmemory. ZSCORE removed from the list of commands that can't be called when we are low on memory, this command was added in the past for a stupid error.
2010-11-08 16:12:16 +01:00
antirez
240f8dbf3f
build redis-server at the end so have a more pleasing to see Make output and the advice to run the test suite at the end.
2010-11-08 13:19:58 +01:00
antirez
be98a33b51
fixed compilation with 32bit target
2010-11-08 12:53:36 +01:00
antirez
97e7f8aec3
non blocking loading of the DB / AOF with informations and ETA in INFO output
2010-11-08 11:52:03 +01:00
antirez
645e9962cb
version bumped to 2.1.7 after merging with aaslave branch for non blocking slaves
2010-11-05 11:00:20 +01:00
antirez
3b5e72d402
Merge branch 'aaslave'
2010-11-05 10:59:49 +01:00
antirez
ecc72ca17f
version bumped to 2.1.6
2010-11-05 10:57:53 +01:00
antirez
56fce7ce7d
Merge remote branch 'pietern/benchmark'
2010-11-05 10:29:59 +01:00
Pieter Noordhuis
feecb608ed
Use multi-bulk protocol in SET benchmark
2010-11-05 10:22:52 +01:00
antirez
4ebfc45528
config option to select if when replication link with master a slave should or not serve stale data
2010-11-04 19:59:21 +01:00
antirez
12ebe2ac17
replication asynchronous SYNC information in INFO output
2010-11-04 18:50:23 +01:00
antirez
f6433915fe
more replication info in logs
2010-11-04 18:14:20 +01:00
antirez
26b3366993
non blocking slave replication is now more non blocking than the first implementation...
2010-11-04 18:09:35 +01:00
antirez
62ec599c36
typos and minor stuff fixed in the new non blocking replication code
2010-11-04 17:35:03 +01:00
antirez
f4aa600b99
first attempt to non blocking implementation of slave replication and SYNC bulk data download. Never compiled so far...
2010-11-04 17:29:53 +01:00
Pieter Noordhuis
8146e31677
Microsecond latency resolution in redis-benchmark
2010-11-04 16:15:35 +01:00
Pieter Noordhuis
ec8f06675a
Use hiredis from redis-benchmark
2010-11-04 13:37:05 +01:00
Pieter Noordhuis
a9b18e54d4
Stop using the freelist robj* cache
2010-11-04 10:09:30 +01:00
Pieter Noordhuis
e902b579b4
Import linenoise as dependency for redis-cli
2010-11-03 17:15:23 +01:00
Pieter Noordhuis
339b9dc2d2
Put duration in parenthesis
2010-11-03 17:07:10 +01:00
Pieter Noordhuis
cfcd5d6d43
Add proper numbering for multi bulk replies in redis-cli
2010-11-03 17:03:54 +01:00
Pieter Noordhuis
7fc4ce13ed
Use hiredis from redis-cli
2010-11-03 16:09:38 +01:00
antirez
8d3e063a0a
added support for command renaming/suppression in redis.conf
2010-11-03 12:14:36 +01:00
antirez
1b1f47c915
command lookup process turned into a much more flexible and probably faster hash table
2010-11-03 11:23:59 +01:00
antirez
297e77c6ab
Now it is possible to use quoted strings in the redis.conf file accordingly to the sdssplitargs() function capabilities.
2010-11-03 10:31:19 +01:00
antirez
0a546fc017
Merge remote branch 'pietern/unixsocket'
2010-11-02 23:47:52 +01:00
antirez
539fb43820
RSS information in INFO output
2010-11-02 22:47:10 +01:00
antirez
7d0966a6b7
Do not update the LRU info on key lookup when we have a saving child. With this trivial change the additional memory used while saving with a background child in presence of many read operations is zero.
2010-11-02 18:59:48 +01:00
antirez
3ce014c766
redis-cli in interactive mode now prints the time elapsed of the operation performed took more than half a second.
2010-11-02 18:08:30 +01:00
antirez
b5b22da8e6
Revert "Function to compute RSS memory usage in a fast way, suitable to be called inside keys eviction loops"
...
This reverts commit 7d47ecd543
.
2010-11-02 12:10:41 +01:00
antirez
ca734d17ad
Revert "Now maxmemory, VM, and everything else uses the fast RSS memory used estimation instead of raw memory reported by zmalloc(). This means that setting maxmemory to 2GB will really have the effect of using up to 2GB of memory."
...
This reverts commit a3e60027e7
.
2010-11-02 12:09:59 +01:00
antirez
a3e60027e7
Now maxmemory, VM, and everything else uses the fast RSS memory used estimation instead of raw memory reported by zmalloc(). This means that setting maxmemory to 2GB will really have the effect of using up to 2GB of memory.
2010-11-02 11:50:55 +01:00
antirez
7d47ecd543
Function to compute RSS memory usage in a fast way, suitable to be called inside keys eviction loops
2010-11-02 11:40:35 +01:00
antirez
10c12171cc
removed a number of stupid compilation warnings on Linux
2010-11-02 11:15:09 +01:00
antirez
92e282288f
zmalloc functions to get RSS and fragmentation refactored into two separated functions
2010-11-02 10:51:09 +01:00
antirez
21dbc6499a
merge conflict resolved
2010-10-28 22:59:47 +02:00
Pieter Noordhuis
4794d88f15
Rewrite comment that was no longer valid
2010-10-28 16:59:05 +01:00
Pieter Noordhuis
a3a323e0e5
When REDIS_CLOSE_AFTER_REPLY is set, there may never be new replies
2010-10-28 16:52:23 +01:00
Pieter Noordhuis
5e78edb350
Unify two client flags that mean the same
2010-10-28 15:07:45 +01:00
antirez
73abd0a9d2
Merge remote branch 'remotes/pietern/zrevrangebyscore'
2010-10-28 14:12:25 +02:00
antirez
1de98301f6
removed useless spaces from DEBUG OBJECT output
2010-10-27 17:11:17 +02:00
Pieter Noordhuis
e584d82fec
Return error to client on wrong type for HMGET
2010-10-26 12:33:17 +02:00
antirez
244201f6ba
added a missing prototype from syncio.c in redis.h
2010-10-25 10:54:37 +02:00
antirez
d08fac3eb9
more generally usable i/o functions moved to syncio.c
2010-10-25 10:53:28 +02:00
antirez
19e61097c5
synchronous I/O networking functions originally used just for replication refactored in a file as generally useful, they are used in the cluster branch for MIGRATE.
2010-10-24 16:22:52 +02:00
Pieter Noordhuis
d94ac406ba
Exclusively use either tcmalloc or OSX's native malloc_size()
2010-10-23 10:18:48 +02:00
Pieter Noordhuis
7cdc98b630
Don't use prefix when malloc_size() can be called
...
Also, use tcmalloc functions explicitly via macros to prevent symbol
lookups to resolve to native malloc/free on OSX.
2010-10-23 09:59:28 +02:00
antirez
da47440d44
Make sure to reset the signal handler and deliver again the original crashing signal when dumping the stack trace. This will allow to dump the core if core dumping is enabled.
2010-10-22 23:30:48 +02:00
Robey Pointer
d8a717fb1a
if server.saveparamslen is not set, don't save the DB on exit.
2010-10-22 23:17:28 +02:00
antirez
1a587ff843
Makefile typo fixed for tcmalloc option
2010-10-22 00:16:32 +02:00
antirez
13b3715925
reports if tcmalloc is in used in INFO output
2010-10-22 00:10:17 +02:00
antirez
0a802bd7a0
support for compiling with tcmalloc
2010-10-22 00:06:44 +02:00
antirez
75fcab8c23
version bumped to 2.1.5
2010-10-21 17:55:44 +02:00
Pieter Noordhuis
a375b077cc
Skip object encoding where it doesn't make sense
2010-10-17 18:13:31 +02:00
Pieter Noordhuis
19408d83a4
Object encoding in hash function is done by a more specific function
2010-10-17 17:46:55 +02:00
Pieter Noordhuis
33aba595b0
Removed unused command flags
2010-10-17 17:31:40 +02:00
Pieter Noordhuis
75b41de8ca
Convert objects in the command procs instead of the protocol code
2010-10-17 17:21:41 +02:00
Pieter Noordhuis
b19c33d48a
Prevent clients from making too large multibulk requests
2010-10-15 19:15:38 +02:00
Pieter Noordhuis
ea5b70924d
Add benchmark for MSET
2010-10-15 18:17:06 +02:00
antirez
13a49af44b
prevent small integer sharing when maxmemory is active. So every object will use a private LRU field and the LRU algorithm can work well
2010-10-15 18:04:05 +02:00
Pieter Noordhuis
1aa608fc68
Change protocol from bulk to inline in redis-benchmark
2010-10-15 17:34:20 +02:00
Pieter Noordhuis
9da6caac4e
Don't reset the client when processCommand returns REDIS_ERR
2010-10-15 17:27:05 +02:00
Pieter Noordhuis
cd8788f26d
Refactor request parsing code for efficiency
2010-10-15 15:44:55 +02:00
antirez
9f8ded8ced
CONFIG RESETSTAT no longer resets the server uptime. Now keyspace hits/misses are reset as well.
2010-10-15 12:29:05 +02:00
antirez
95506e4611
minor aesthetic change
2010-10-15 12:22:48 +02:00
antirez
53eeeaff08
added keyspace_hits and keyspace_misses fields in INFO output
2010-10-15 12:19:21 +02:00
antirez
a36879293d
maxmemory-samples implemented in CONFIG command and configuration file
2010-10-15 11:57:38 +02:00
antirez
670bf2fd36
Don't increment dirty on expireIfNeeded() as natural expires are not considered database changes. This will avoid useless read-only commands in the AOF file as a result of, for instance, a GET operation triggering an expirIfNeeded() call resulting in an expired key removed.
2010-10-15 11:29:03 +02:00
antirez
b33ef40105
Merge remote branch 'pietern/ziplist-regression'
2010-10-14 21:23:01 +02:00
antirez
165346ca29
implemented different algorithms for maxmemory
2010-10-14 21:22:21 +02:00
Pieter Noordhuis
306c6a02e3
Replace ziplist stresser and fix regression
2010-10-14 21:11:42 +02:00
antirez
ef59a8bc9e
Object approximated LRU algorithm enhanced / fixed / refactored. This is used for the VM currently but will soon be used for maxmemory expiring.
2010-10-14 13:52:58 +02:00
Pieter Noordhuis
7236fdb22f
Return error when min and/or max in the sorted set range spec is not a double
2010-10-13 21:59:24 +02:00
Pieter Noordhuis
91504b6cbe
Make ZREMRANGEBYSCORE accept the same range spec as ZRANGEBYSCORE
...
This allows to use inclusive/exclusive bounds for min and max when
deleting a range of scores from a sorted set.
2010-10-13 21:43:58 +02:00
Pieter Noordhuis
26f3388d27
Merge branch 'master' into zrevrangebyscore
2010-10-13 20:29:50 +02:00
Pieter Noordhuis
b04ce2a35c
Merge master with resolved conflict in src/redis-cli.c
2010-10-13 18:55:46 +02:00
Pieter Noordhuis
4fe83b554a
sockaddr_un.sun_path appears to never hold anything after accept()
2010-10-13 18:50:07 +02:00
Pieter Noordhuis
ab17b909fe
Use different accept handlers for TCP and unix socket connections
2010-10-13 18:34:24 +02:00
Pieter Noordhuis
893819801d
Remove disabling TCP with port -1
2010-10-13 17:18:58 +02:00
Pieter Noordhuis
5d10923f7b
Rename variable sockpath to unixsocket
2010-10-13 17:17:56 +02:00
Pieter Noordhuis
704bd093be
Move creating socket/bind+listen on socket to separate functions
...
Thanks to tav (http://github.com/tav ) for original code.
2010-10-13 16:47:22 +02:00
Pieter Noordhuis
941c9fa285
Return OK on QUIT
2010-10-13 11:25:40 +02:00
Pieter Noordhuis
9f1ae9abee
Allow to specify which specific test files to run
2010-10-13 09:26:44 +02:00
antirez
b4f2e412d0
free memory if the maxmemory parameter is reduced via CONFIG SET
2010-10-11 16:46:21 +02:00
antirez
1dd10ca233
maxmemory fixed, we now try to release memory just before we check for the memory limit. Before fixing there was code between the attempt to free memory and the check for memory limits, and this code could result into allocations going again after the memory limit.
2010-10-11 13:05:09 +02:00
antirez
144a5e72f2
fixed an alignment problem with time_t is 32 bit, long is 64 bit, and arch is sparc or any other where unaligned accesses will result to sigbus
2010-10-07 16:21:35 +02:00
antirez
fdc0bde935
minor typo fixed, reported by Thomas Bassetto
2010-10-07 12:49:14 +02:00
antirez
e43505d6e9
Merge remote branch 'pietern/ziplist-fix'
2010-09-24 01:15:16 +02:00
Pieter Noordhuis
b0d605c1d6
Add regression test and fix for >255 byte string entries
2010-09-23 22:04:19 +02:00
antirez
963238f713
more tests for sds.c
2010-09-23 16:39:02 +02:00
antirez
136cf53f22
minimal C test framework + a first example sds.c tests
2010-09-23 16:05:17 +02:00
Pieter Noordhuis
56e52b69fe
Update rdb.c to properly work with new memory strategy for sorted sets
2010-09-22 18:07:52 +02:00
antirez
50a9fad5d5
two leaks fixed
2010-09-22 17:49:04 +02:00
antirez
beb7756dcb
error generation format reverted to the new style after merge
2010-09-22 16:10:13 +02:00
antirez
b882056c93
Merge remote branch 'pietern/zset-mem'
2010-09-22 16:09:33 +02:00
antirez
5ca2f0c498
preventive conflict resolution to merge pietern/zset-mem
2010-09-22 16:09:30 +02:00
antirez
5171777bf1
Merge remote branch 'pietern/ziplist-eff'
2010-09-22 12:59:25 +02:00
antirez
a4f3f93b90
new parsing code bugfixing
2010-09-17 16:05:01 +02:00
antirez
34a719d250
try to parse the request in a smarter way to gain speed... work in progress
2010-09-17 15:26:07 +02:00
Pieter Noordhuis
d433ebc681
Finished code for sorted set memory efficiency
2010-09-16 15:42:36 +02:00
Pieter Noordhuis
25bb8a4452
Add ZREVRANGEBYSCORE and refactor Z*RANGEBYSCORE
2010-09-16 14:38:07 +02:00
Pieter Noordhuis
192fc3376a
Merge branch 'zset-mem' into zrevrangebyscore
2010-09-16 14:32:30 +02:00
antirez
2b00385d51
Added used CPU statistics in INFO output, obtained via getrusage()
2010-09-16 13:28:58 +02:00
antirez
4c2e506a39
modified a bit addReply() to play better with copy on write now that we have a static buffer. Changed the name of a function from _ensureFileEvent() to _installWriteEvent().
2010-09-16 13:08:40 +02:00
antirez
83f39c7ab2
Merge remote branch 'pietern/networking-perf'
2010-09-16 12:02:18 +02:00
Pieter Noordhuis
f335779240
Static buffer in client struct has a constant size
2010-09-16 11:59:53 +02:00
antirez
89f9f83769
Merge remote branch 'pietern/networking-perf'
2010-09-16 11:38:40 +02:00
antirez
3856f14759
This should fix Issue 332: when there is a background process saving we still allow the hash tables to grow, but only when a critical treshold is reached. Formerly we prevented the resize at all triggering pathological O(N) behavior. Also there is a fix for the statistics in INFO about the number of keys expired
2010-09-15 14:09:41 +02:00
antirez
412e457c27
fixed typo in the latest commit
2010-09-14 15:18:18 +02:00
antirez
1d18f50458
Advertise the existence of redis-check dump --fix when logging an error about corrupted AOF file
2010-09-14 15:09:37 +02:00
Pedro Melo
0997b4119d
Fixed missed use of INSTALL_TOP
...
Thanks to sylr@github
Signed-off-by: Pedro Melo <melo@simplicidade.org>
2010-09-13 16:50:57 +01:00
Pedro Melo
e984050fb9
Make sure INSTALL_TOP exists before we install to it
...
Signed-off-by: Pedro Melo <melo@simplicidade.org>
2010-09-13 16:11:55 +01:00
Pedro Melo
e13865033d
Rename INSTALL_TOP to PREFIX; update documentation
...
Signed-off-by: Pedro Melo <melo@simplicidade.org>
2010-09-13 16:09:11 +01:00
antirez
bc63407be6
redis-cli does no longer try to auto detect if it is used inside a pipe. To read last argument from stdandard input there is to use the -x option. This will make it playing better inside cron scripts and in general when stdin is hacked.
2010-09-09 16:38:10 +02:00
antirez
da14590bd9
Fix re-enabled again, I forgot to check if VM was enabled before calling handleClientsBlockedOnSwappedKey()
2010-09-08 13:47:28 +02:00
antirez
155fb4b45e
latest fix reverted, there is some problem reported by the CI test
2010-09-08 13:45:51 +02:00
antirez
7f00cd2264
Fixed a race condition in VM happening when a key was deleted while there was a client waiting for this key to be resumed from swap to memory. The client would hang forever.
2010-09-08 13:26:16 +02:00
Pieter Noordhuis
106bd87a3c
Fix bug where the client is not present in server.clients when free'ing it
...
When creating the readable event results in an error (this happens when
the server hits OS limits), the client was not added to the list of
clients when freeClient was called. This results in an assertion error.
It is better to check this condition first and free the client
immediately when this condition occurs. Port of 00a90feb.
2010-09-07 10:25:34 +02:00
Pieter Noordhuis
84403fe7c1
Allow a random seed argument for the ziplist test binary
2010-09-07 00:08:42 +02:00
Pieter Noordhuis
169d2ef1e0
Fix updating the prevlen field of consecutive entries
...
In the condition where the prevlen field of the next entry on insert
and delete operations needs more bytes to be properly encoded, the next
entry also needs to be updated with a new prevlen. This patch makes sure
that this effect cascades throughout the ziplist.
2010-09-07 00:04:57 +02:00
antirez
abe18d0e00
Fix for solaris compilation bug Issue 325
2010-09-06 10:12:44 +02:00
Pieter Noordhuis
9e83ac06ef
Merge branch 'master' into networking-perf
...
Resolved conflict in src/db.c and changed adding an error to the reply
in blockingPopGenericCommand to use the new API.
2010-09-03 16:44:50 +02:00
antirez
556bdfbab9
added some comment and changed coding style for fix for 237
2010-09-03 10:24:18 +02:00
Anko painting
b435f64510
fix for issue 237
2010-09-02 21:13:27 -07:00
Pieter Noordhuis
49128f0b9d
Fix bug in gluing a deferred multi bulk length to the next reply chunk
2010-09-02 23:34:41 +02:00
Pieter Noordhuis
3ab203762f
Use specialized function to add status and error replies
2010-09-02 23:33:06 +02:00
Pieter Noordhuis
60361e5aac
Add sds function that can be called with va_list
2010-09-02 21:00:15 +02:00
Pieter Noordhuis
36c19d03e0
Changed reply buildup internals
2010-09-02 19:52:04 +02:00
Pieter Noordhuis
4a7893ca9c
Removed unneeded function
2010-09-02 19:52:04 +02:00
Pieter Noordhuis
b70d355521
Use existing reply functions where possible
2010-09-02 19:52:04 +02:00
Pieter Noordhuis
cd76bb651d
Free the sds in addReplySds when it cannot be added to the reply
2010-09-02 19:52:04 +02:00
Pieter Noordhuis
2403fc9fde
Intialize bufpos in the fake client
2010-09-02 19:52:04 +02:00
Pieter Noordhuis
0537e7bf80
Use specialized function to add multi bulk reply length
2010-09-02 12:51:14 +02:00
antirez
73db2acc37
memory fragmentation reporting in INFO also added for Mac OS X
2010-09-02 10:57:58 +02:00
antirez
eddb388ef9
memory fragmentation ratio in INFO output
2010-09-02 10:34:39 +02:00
antirez
a047bf52a4
fixed a few harmless warnings complining on Linux
2010-09-01 18:31:30 +02:00
antirez
dbebd395eb
Version is now 2.1.4 -- AKA 2.2-alpha1
2010-08-31 18:34:34 +02:00
antirez
ec96ef47a6
Merge remote branch 'pietern/issue-300'
2010-08-31 17:39:06 +02:00
Pieter Noordhuis
f85202c3dc
Fix compilation errors and add warning for 32-bit platforms
2010-08-31 13:06:26 +02:00
antirez
f7f12a606c
resolved conflict merging pietern/bpop-timeout
2010-08-31 11:23:12 +02:00
Pieter Noordhuis
7b30cc3a7b
Fix issue 300 by upgrading variable types to 64-bit
2010-08-31 10:21:35 +02:00
Pieter Noordhuis
57b0738011
Don't build a reply when replaying the AOF
2010-08-30 16:51:39 +02:00
Pieter Noordhuis
b301c1fc2b
Wrapper for adding unknown multi bulk length to reply list
2010-08-30 16:39:14 +02:00
Pieter Noordhuis
834ef78e27
Refactor reply buildup for speed on large multi bulk replies
2010-08-30 16:39:08 +02:00
antirez
fb92ecece7
BLPOP inside MULTI/EXEC block no longer crashes, instead if the list is empty the behavior is like if the timeout is reached. This fixes Issue 285
2010-08-30 16:31:03 +02:00
antirez
8079656a8e
Now redis-cli replies to help showing some basic usage information (Issue 291)
2010-08-30 15:57:03 +02:00
antirez
93b2a7718e
It is now possible to use authentication and DB selection options at the same time in redis-cli (Issue 298)
2010-08-30 15:36:13 +02:00
antirez
e0e1c19520
Fixed MONITOR mode and Issue 296
2010-08-30 11:51:45 +02:00
antirez
8fedd04dcc
Makefile deps updated
2010-08-30 11:37:17 +02:00
Pieter Noordhuis
ed0dd55402
Show the current throughput while benchmarking
2010-08-30 11:25:02 +02:00
Pieter Noordhuis
36babc1e31
Refactor reply parsing code in redis-benchmark for efficiency
2010-08-30 11:14:54 +02:00
antirez
2f6b31c3bb
Fix for a race in BGSAVE that may result in some data not being saved as soon as possible (when the configured saving triggers should fire). Also known as Issue 313, more details there in the google code issue.
2010-08-30 10:32:32 +02:00
antirez
e5f257c2b2
fix for the prev fix
2010-08-27 17:06:36 +02:00
antirez
c1ae36aea8
Fix for bug 312, yet to verify in a couple of minutes...
2010-08-27 17:04:26 +02:00
antirez
09252fc4f3
Fixed another instace of the Issue 173
2010-08-27 12:46:10 +02:00
antirez
357d36733d
Fixed segfault in freeMemoryIfNeeded due to the fact that keys are now sds strings and not objects in the main hash table, thanks to Anthony Lauzon for spotting the bug and providing a patch.
2010-08-27 11:01:03 +02:00
antirez
2df84b7269
intset loading bug fixed
2010-08-26 19:10:40 +02:00
antirez
ec7e138926
test for intset integer encodability test and some small refactoring
2010-08-26 18:47:03 +02:00
antirez
23c64fe50d
translated a few long logn into int64_t for correctness and to avoid compilation warnings as well
2010-08-26 18:11:26 +02:00
antirez
e4ecc93119
Version is now 2.1.3
2010-08-26 16:58:02 +02:00
Pieter Noordhuis
94364d53b4
Verify that the blocking pop timeout value is a non-negative integer
2010-08-26 14:05:14 +02:00
Pieter Noordhuis
2929ca9786
Fix parenthesis error on decrementing *argc
2010-08-26 13:18:44 +02:00
antirez
bad7d097e9
fixed a memory leak in the new Set code
2010-08-26 13:18:24 +02:00
antirez
5f19e8a4a5
computeObjectSwappability is now able to compute swappability for intset encoded sets
2010-08-26 12:28:53 +02:00
Pieter Noordhuis
740eee1cc6
Fix type that was not renamed and compiler warning
2010-08-26 12:13:51 +02:00
antirez
674492bceb
removed a duplicated ERRNO checking that is useless at all
2010-08-26 12:10:16 +02:00
antirez
acc75bfd4f
Merge remote branch 'pietern/intset-split'
2010-08-26 12:04:24 +02:00
Pieter Noordhuis
f9d5c4e33c
Make the function intsetUpgrade self-contained
2010-08-26 11:22:58 +02:00
Pieter Noordhuis
76864d5626
Expand macro's to functions for readability
2010-08-26 11:06:30 +02:00
Pieter Noordhuis
b4b62c34db
Use fstat to detect if stdin was redirected
2010-08-25 14:48:50 +02:00
Pieter Noordhuis
ae77016e57
Add a newline to tty output after every reply
2010-08-25 13:39:11 +02:00
Pieter Noordhuis
5d15b5207d
Re-introduce the interactive field so we can reconnect in interactive mode
2010-08-25 13:09:22 +02:00
Pieter Noordhuis
4b93e5e267
Merge master and move argument splitting patch to sds.c
2010-08-25 13:08:43 +02:00
antirez
c0b3d42372
redis-cli now supports automatically reconnection in interactive mode
2010-08-24 18:39:34 +02:00
antirez
b37ca6edb1
Issue 179 fixed, now redis-cli is able to parse correctly multi bulk replies with elements that are errors
2010-08-24 18:08:09 +02:00
antirez
695fe87456
The pid file is now created only after the server is correctly initialied. It is also removed on sigterm and when the stack trace is produced after a sigbus or a sigsegv. This two changes should fix the Issue 175
2010-08-24 17:09:25 +02:00
antirez
b91d605a35
slave now detect lost connection during SYNC, fixing Issue 173
2010-08-24 16:25:00 +02:00
antirez
778b2210a9
slave with attached slaves now close the conection to all the slaves when the connection to the master is lost. Now a slave without a connected link to the master will refuse SYNC from other slaves. Enhanced the replication error reporting. All this will fix Issue 156
2010-08-24 16:04:13 +02:00
antirez
e452436a07
BLPOPping clients are no longer subject to connection timeouts, fixing issues 155
2010-08-24 12:10:59 +02:00
antirez
a679185aa5
sanity check for the bulk argument in protocol parsing code, fixing issue 146
2010-08-24 11:45:05 +02:00
antirez
c91abdcd07
Fixed overflow detection in argument to long convertion function in general, and in expire/ttl pairs specifically, addressing issue 54
2010-08-23 17:06:38 +02:00
Pieter Noordhuis
cb72d0f155
Rename iterator to setTypeIterator for consistency
2010-08-21 11:38:24 +02:00
Pieter Noordhuis
029e5577ff
Make SORT use the hybrid set accessors to allow sorting intsets
2010-08-21 11:20:41 +02:00
Pieter Noordhuis
87c74dfaa8
Check if stroll return value was clamped
2010-08-20 13:42:42 +02:00
Pieter Noordhuis
aaada3f962
Merge branch 'master' into intset-split
...
Conflicts:
src/Makefile
src/t_set.c
2010-08-20 12:40:55 +02:00
Pieter Noordhuis
c470538142
Make ziplist schema more efficient for strings with length > 15
2010-08-13 19:29:22 +02:00
antirez
cbce517145
redis cli argument splitting is general and is now moved into the sds.c lib
2010-08-05 11:36:39 +02:00
Pieter Noordhuis
abb731e5b8
Deprecate starting interactive mode using the -i flag
2010-08-04 18:36:03 +02:00
Pieter Noordhuis
cf0c6b78f1
Set tty before going into interactive mode to get non-pretty output when
...
the commands are read from stdin.
2010-08-04 18:16:39 +02:00
Pieter Noordhuis
3a51bff035
Change output format for non-tty redis-cli execution
2010-08-04 17:46:56 +02:00
Pieter Noordhuis
123a10f7a5
Let the output mode depend on having a tty or not
2010-08-04 17:16:05 +02:00
Pieter Noordhuis
07242c0ccf
Tests for redis-cli in non-interactive mode
...
Minor change in redis-cli output for the (multi-)bulk response but this
will be fixed in the next commit.
2010-08-04 17:02:13 +02:00
Pieter Noordhuis
0439d792c4
Add tests for quotation in an interactive redis-cli session
...
Patched redis-cli to abort on unexpected quotation. This caused
redis-cli to get into an infinite, memory-consuming loop.
2010-08-04 16:15:33 +02:00
Pieter Noordhuis
f2dd4769dd
Tests for the interactive mode of redis-cli
...
Changed redis-cli to output the raw response for a bulk reply when it is
run in interactive mode instead of checking isatty.
2010-08-04 15:28:03 +02:00
Pieter Noordhuis
69ef89f2cf
Reference zset score in zskiplistNode from dict entries
...
This avoids the extra allocation of sizeof(double) for storing the score
of a zset entry in the hash table. Saves sizeof(double) + malloc
overhead = approx. 16 bytes per zset entry.
2010-08-03 20:49:53 +02:00
Pieter Noordhuis
2159782b51
Use flexible array in zskiplistNode to reduce memory usage
2010-08-03 19:22:09 +02:00
antirez
1fb4e8def7
PERSIST: a fix and some basic test
2010-08-03 14:25:22 +02:00
antirez
a539d29ac5
PERSIST command implemented
2010-08-03 14:19:20 +02:00
Pieter Noordhuis
a5639e7dd9
Change initialization to allow listening on both a port and socket
2010-08-03 13:33:12 +02:00
antirez
0cf5b7b57c
allow to set a new EXPIRE of an existing volatile key
2010-08-03 12:26:30 +02:00
antirez
c25a5d3b10
memory leak removed from expire propagation code
2010-08-02 21:37:39 +02:00
antirez
bcf2995c98
support for write operations against expiring keys, by master-controlled expiring in replication and AOF synthesizing DEL operations
2010-08-02 18:13:39 +02:00
Pieter Noordhuis
7e91f971f7
Add support for domain sockets to redis-cli
2010-08-01 23:06:00 +02:00
Pieter Noordhuis
c61e69257a
Support for Redis to listen on a Unix socket
2010-08-01 22:55:24 +02:00
Pieter Noordhuis
673e1fb7e4
Change getDoubleFromObject to fail on NaN.
...
Return an error when the resulting value is not a number (NaN). Fix
ZUNIONSTORE/ZINTERSTORE to clean up when a weight argument is not a
double value.
2010-07-29 23:05:01 +02:00
Pieter Noordhuis
d9e28bcf00
Fix ZUNIONSTORE/ZINTERSTORE to never store a NaN score.
...
When +inf and -inf are added, the result is NaN. We don't want NaN
scores in a sorted set, so agreed on the result of this operation being
zero.
2010-07-29 23:03:11 +02:00
antirez
cbf7e1070a
fix of the fix for the replication bug
2010-07-28 18:56:52 +02:00
antirez
8c1420ff2a
Fixed a replication bug in ZINTERSTORE.
...
In order to trigger the bug what's needed is to call ZINTERSTORE
resulting into an empty set created, bug against a key that already
existed. The command was not propagated, so the replica ended with the
key that the master removed. Sequence of command to reproduce:
redis-cli hset 446 34 905
redis-cli hset 446 393 911
redis-cli zadd 966 0.085412045980529885 652
redis-cli zadd 645 0.25081839284432045 280
redis-cli zinterstore 446 2 966 645
2010-07-28 18:42:02 +02:00
antirez
6171250871
fixed a ziplist bug about encoding of integer values overflowing 64 bit
2010-07-27 15:26:08 +02:00
antirez
f99e660b44
malloc definition with deprecated attribute was duplicated, one removed
2010-07-27 14:30:02 +02:00
antirez
80091bbaac
STRLEN command implemented
2010-07-27 10:09:26 +02:00
antirez
e0be2289e9
hash table example commented out in dict.c
2010-07-27 10:00:38 +02:00
antirez
b3aa6d712e
use the function deprecated attribute if compiling with GCC to get warnings for malloc/free usages. We always want to use our zmalloc/zfree versions for memory usage tracking
2010-07-27 09:36:42 +02:00
Benjamin Kramer
399f2f401c
Add zcalloc and use it where appropriate
...
calloc is more effecient than malloc+memset when the system uses mmap to
allocate memory. mmap always returns zeroed memory so the memset can be
avoided. The threshold to use mmap is 16k in osx libc and 128k in bsd
libc and glibc. The kernel can lazily allocate the pages, this reduces
memory usage when we have a page table or hash table that is mostly
empty.
This change is most visible when you start a new redis instance with vm
enabled. You'll see no increased memory usage no matter how big your
page table is.
2010-07-25 00:11:20 +02:00
Benjamin Kramer
d9dd352b36
Remove _dictAlloc and friends
...
zmalloc calls abort() so _dictPanic will never be called.
2010-07-24 23:10:42 +02:00
Benjamin Kramer
b1e0bd4b9b
Reduce code duplication
2010-07-24 22:37:01 +02:00
antirez
230729617d
don't open/close log file if log level is not matched
2010-07-22 23:31:40 +02:00
Pieter Noordhuis
c8a10631d1
fix rare condition where 'key' would already be destroyed while is was needed later on
2010-07-22 16:06:27 +02:00
antirez
2f996f0217
defensive programming: set o->ptr to NULL before freeing objects
2010-07-22 15:48:57 +02:00
antirez
e002ec6801
other shared objects where created in the I/O thread in createStringObjectFromLongLong. Fixed as well.
2010-07-22 14:48:45 +02:00
antirez
cdbea20afb
minor typo fixed in a comment
2010-07-22 13:12:24 +02:00
antirez
0e5441d816
don't use object sharing inside I/O threads, as a fix for a well known instability of VM introduced with the new object sharing code
2010-07-22 13:08:02 +02:00
antirez
1a71fb9669
vm_blocked_clients count fixed in INFO, thanks to Pietern Noordhuis
2010-07-21 13:16:26 +02:00
antirez
2cffe2993b
TODO list modified, trivial change to source code
2010-07-16 23:56:18 +02:00
antirez
5b4bff9c17
WATCH is now affected only when write commands actually modify the key content
2010-07-12 12:01:15 +02:00
antirez
e51a74aa40
fmacro included in linenoise.c
2010-07-09 10:51:41 +02:00
antirez
99628c1af8
redis-cli history saved across sessions
2010-07-07 18:44:53 +02:00
antirez
185cabda45
redis-cli is now able to report version information using -v
2010-07-06 19:17:09 +02:00
antirez
acc0185493
make install target, finally ;)
2010-07-06 19:07:16 +02:00
Pieter Noordhuis
d0a4e24e32
merged code from 184d74ab
, 4774a53b
, f483ce5f
to new file structure
2010-07-05 15:16:33 -04:00
antirez
d06a5b23c8
Fixed compilation on *BSD systems
2010-07-05 20:14:48 +02:00
antirez
b67d234563
Fixed a crash loading the AOF file containing MULTI/EXEC, a result of WATCH implementation. Test needed...
2010-07-05 20:06:54 +02:00
antirez
b7a8daef60
WATCH will now consider touched keys target of EXPIRE command after the WATCH is performed, but not before
2010-07-05 19:38:12 +02:00
Pieter Noordhuis
2767f1c0c6
fix aof and digest code to work with dual set encoding
2010-07-02 20:42:20 +02:00
Pieter Noordhuis
96ffb2fe97
merged intset code into the split files
2010-07-02 19:57:12 +02:00
antirez
3688d7f308
Compilation fixed on Linux after the source code split
2010-07-01 21:13:38 +02:00
antirez
d3b958c3fc
Fixed MONITOR output for consistency: now integer encoded values are also formatted like this: "3932"
2010-07-01 20:22:46 +02:00
antirez
5bd09cd4c5
Fix the AOF fix of the latest commit ;)
2010-07-01 20:18:48 +02:00
antirez
daf2049d0d
fixed error code checking for *write operations and return value in AOF rewriting function
2010-07-01 20:13:33 +02:00
antirez
0f49d6b049
minor aesthetic change
2010-07-01 15:14:25 +02:00
antirez
2c24c22039
Version is now 2.1.2
2010-07-01 14:47:26 +02:00
antirez
24110a4d7d
Make log target fixed
2010-07-01 14:45:37 +02:00
antirez
e2641e09cc
redis.c split into many different C files.
...
networking related stuff moved into networking.c
moved more code
more work on layout of source code
SDS instantaneuos memory saving. By Pieter and Salvatore at VMware ;)
cleanly compiling again after the first split, now splitting it in more C files
moving more things around... work in progress
split replication code
splitting more
Sets split
Hash split
replication split
even more splitting
more splitting
minor change
2010-07-01 14:38:51 +02:00