Commit Graph

117 Commits

Author SHA1 Message Date
antirez
a368209b1d tracking_collisions.c: initial skeleton.
... of a program to just test the hashing functions collisions on a 24
bit output with strings that are very likely Redis key names, and names
of a kind that are particularly prone to collisions.
2019-08-02 20:13:21 +02:00
Brad Solomon
79660e4ff4 Note that install_server.sh is not for Mac OSX
It will fail pretty quickly since there is no -f
readlink flag there.
2019-03-09 10:21:15 -05:00
varianfeng
ab1e87f5b1 fix corrupt_rdb.c bug.Let the name of input rdb file name be valid. 2019-03-01 17:46:42 +01:00
antirez
f284e37f24 showfreq.rb: collect more data for better graphs. 2019-02-19 17:25:58 +01:00
antirez
f1b3a485b4 Improve README of better-random-member directory. 2019-02-19 12:01:26 +01:00
antirez
a317349cb2 Add showfreq.rb to SRANDMEMBER analysis tools. 2019-02-18 18:47:49 +01:00
antirez
e6948b8f28 showdist.rb utility for SRANDMEMBER analysis added. 2019-02-18 12:39:07 +01:00
antirez
4eedb0bf94 changelog.tcl: get optional argument for number of commits. 2018-10-10 11:03:36 +02:00
Jack Drogon
93238575f7 Fix typo 2018-07-03 18:19:46 +02:00
antirez
b2fc2eaecb Add the stream group to the script generating the help. 2018-06-07 18:52:01 +02:00
artix
35b3a8e1ee - Updated create-cluster with redis-cli
- Updated README
2018-05-07 15:56:15 +02:00
antirez
674909f442 Add INIT INFO to the provided init script. 2018-03-26 11:29:16 +02:00
antirez
87cc94864c Fix HyperLogLog test script for new redis-rb API. 2018-03-16 16:34:04 +01:00
Salvatore Sanfilippo
dc997755bf Merge pull request #1934 from badboy/install-script-1922
Don't use extended Regexp Syntax
2017-07-24 15:20:31 +02:00
antirez
b80e467023 changelog.tcl: output 100 lines. 2017-07-14 13:04:37 +02:00
Aric Huang
ee5044eef0 (fix) Update create-cluster README
Fix a few typos/adjust wording in `create-cluster` README
2017-06-16 16:10:00 -07:00
antirez
6878a3fedd Cluster: add clean-logs command to create-cluster script. 2017-04-14 10:52:00 +02:00
antirez
a62f786344 Use sha256 instead of sha1 to generate tarball hashes. 2017-03-09 13:49:36 +01:00
antirez
47dea01c85 Fix HLL gnuplot graph generator script for new redis-rb versions.
The PFADD now takes an array and has mandatory two arguments.
2016-12-16 11:07:30 +01:00
antirez
8966d4ca5e Changelog format modified to be less verbose. 2016-07-28 14:15:31 +02:00
antirez
9f1b7ab2ed test-lru.rb: support for testing volatile-ttl policy. 2016-07-20 19:02:20 +02:00
antirez
ada70c7c53 LFU simulator: remove dead code. 2016-07-14 16:06:36 +02:00
antirez
fc92c667f7 LRU simulator: fix new entry creation decr time. 2016-07-14 15:55:17 +02:00
antirez
f50dc38bc2 LRU simulator: fix new entry creation. 2016-07-14 15:51:51 +02:00
antirez
09fcb00249 LFU: Simulation of the algorithm planned for Redis.
We have 24 total bits of space in each object in order to implement
an LFU (Least Frequently Used) eviction policy.

We split the 24 bits into two fields:

      8 bits      16 bits
    +--------+----------------+
    | LOG_C  | Last decr time |
    +--------+----------------+

LOG_C is a logarithmic counter that provides an indication of the access
frequency. However this field must also be deceremented otherwise what used
to be a frequently accessed key in the past, will remain ranked like that
forever, while we want the algorithm to adapt to access pattern changes.

So the remaining 16 bits are used in order to store the "decrement time",
a reduced-precision unix time (we take 16 bits of the time converted
in minutes since we don't care about wrapping around) where the LOG_C
counter is halved if it has an high value, or just decremented if it
has a low value.

New keys don't start at zero, in order to have the ability to collect
some accesses before being trashed away, so they start at COUNTER_INIT_VAL.
The logaritmic increment performed on LOG_C takes care of COUNTER_INIT_VAL
when incrementing the key, so that keys starting at COUNTER_INIT_VAL
(or having a smaller value) have a very high chance of being incremented
on access.

The simulation starts with a power-law access pattern, and later converts
into a flat access pattern in order to see how the algorithm adapts.
Currenty the decrement operation period is 1 minute, however note that
it is not guaranteed that each key will be scanned 1 time every minute,
so the actual frequency can be lower. However under high load, we access
3/5 keys every newly inserted key (because of how Redis eviction works).

This is a work in progress at this point to evaluate if this works well.
2016-07-14 15:21:48 +02:00
antirez
b19b2dff46 LRU: Fix output fixes to new test-lru.rb. 2016-07-11 16:26:02 +02:00
antirez
32a549432b LRU: test-lru.rb improved in different ways.
1. Scan keys with pause to account for actual LRU precision.
2. Test cross-DB with 100 keys allocated in DB1.
3. Output results that don't fluctuate depending on number of keys.
4. Output results in percentage to make more sense.
5. Save file instead of outputting to STDOUT.
6. Support running multiple times with average of outputs.
7. Label each square (DIV) with its ID as HTML title.
2016-07-11 16:23:50 +02:00
antirez
c0f4d19331 Added a trivial program to randomly corrupt RDB files in /utils. 2016-07-01 09:55:50 +02:00
Michiel De Mey
90781dec56 Added documentation for non-interactive install procedure 2016-06-10 10:11:46 +02:00
Michiel De Mey
af1e63c365 Allow non-interactive execution of install_server
This PR adds the ability to execute the installation script non-interactively, useful for automated provisioning scripts such as Chef, Puppet, Ansible, Salt, etc.
Simply feed the environment variables into the install script to skip the prompts.

For debug and verification purposes, the script will still output the selected config variables.
The plus side is that the environment variables also support command substitution (see REDIS_EXECUTABLE).

```
sudo REDIS_PORT=1234 REDIS_CONFIG_FILE=/etc/redis/1234.conf REDIS_LOG_FILE=/var/log/redis_1234.log REDIS_DATA_DIR=/var/lib/redis/1234 REDIS_EXECUTABLE=`command -v redis-server` ./utils/install_server.sh

Welcome to the redis service installer
This script will help you easily set up a running redis server

Selected config:
Port           : 1234
Config file    : /etc/redis/1234.conf
Log file       : /var/log/redis_1234.log
Data dir       : /var/lib/redis/1234
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Copied /tmp/1234.conf => /etc/init.d/redis_1234
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
```
2016-05-13 11:47:55 +02:00
antirez
b76d27ca74 Added a tool for generating changelogs automatically.
Sometimes Redis patch releases are released in a matter of weeks or days
one after the other. In order to have less release friction the idea is
to stop writing changelogs by hand, in order to also cover everything
interesting there is to say. Useless things can be deleted manually by
the changelog. Also this gives more credits to contributors since often
in the commit message involved people are cited even when they are not
the authors of the commit.
2016-05-04 22:41:57 +02:00
antirez
8870a7e143 03_test_release.sh: proper cleanup before testing. 2016-01-28 13:06:02 +01:00
antirez
4d625bb4c8 Added Tcl program to show commits graphicaly.
Used to generate http://antirez.com/news/98.
2015-11-20 15:45:25 +01:00
antirez
f3dd472e97 Update redis-cli help and the script to generate it. 2015-11-17 15:38:34 +01:00
antirez
9f9c44feef Fix order of release scripts. 2015-05-05 11:17:40 +02:00
superlogical
761fc16b4a create-cluster fix for stop and watch commands 2015-03-24 09:44:52 +13:00
antirez
4ed7582c7b Cluster: ignore various node files in create-cluster dir. 2015-03-13 13:16:01 +01:00
antirez
cc0d339bd1 utils/hashtable/rehashing.c test updated to use new API. 2015-02-25 13:02:04 +01:00
Sisir Koppaka
acb933a747 rehashing.c: Fix compile error originating from SPOP rewrite 2015-02-18 08:16:41 -05:00
antirez
edda00b902 dict.c Rehashing visualization code snippet added to utils. 2015-02-11 10:52:27 +01:00
antirez
128c642d05 Ignore config.sh inside create-cluster script dir. 2015-02-03 09:34:20 +01:00
antirez
79fa67cdb8 Cluster: Tcl script to check avg pfail->fail time. 2015-01-30 12:03:17 +01:00
antirez
6b1c6334be Cluster: create-cluster script improved. 2015-01-30 10:41:45 +01:00
antirez
d59ad97d76 create-cluster script: sane default timeout. 2015-01-29 13:21:42 +01:00
antirez
8899f91a7f create-cluster script added.
Simple shell script to create / destroy Redis clusters for manual
testing.
2015-01-28 23:26:46 +01:00
Salvatore Sanfilippo
81772ce0e3 Merge pull request #2103 from coderholic/unstable
Update redis_init_script.tpl
2014-12-11 15:20:53 +01:00
antirez
5b2bbef9fc Mark whatisdoing.sh as deprecated in top-comment. 2014-12-09 12:18:34 +01:00
Serghei Iakovlev
8c0f86842e Update whatisdoing.sh
Improved getting pid
2014-12-05 18:48:20 +02:00
Serghei Iakovlev
d4a9836f1a getting pid fixes
```sh
$ ~ pidof redis-server
# nothing

$ ~ ps aux | grep [r]edis
redis      593  0.0  0.0  36900  5564 ?        Ssl  Dec02   1:37 /usr/bin/redis-server 127.0.0.1:6379
klay     15927  0.0  0.0  16772  6068 pts/6    S+   13:58   0:00 redis-cli

$ ~ uname -a
Linux edge 3.17.4-1-ARCH #1 SMP PREEMPT Fri Nov 21 21:14:42 CET 2014 x86_64 GNU/Linux
```
2014-12-05 14:50:45 +02:00
Ben Dowling
dab5c09acc Update redis_init_script.tpl
status command currently reports success when redis has crashed and the pid file still exists. Changing to check the actual process is running.
2014-10-26 11:09:45 -07:00