
* add docker build * fix the working dir in Dockerfile * add release publish docker image * address intentation and use default release * migrate keydb_modstatsd to keydb-internal * rm * add submodule cpp-statsd-client * include trigger keydb_modstatsd Makefile in modules Makefile * update * have clean also trigger keydb_modstatsd clean * move cpp-statsd-client to deps * checkout to a06a5b9359f31d946fe163b9038586982971ae49 * update relative path in compilation * remove submodule instead use the source * include building keydb statsd module * fix check in Dockerfile docker-entrypoint.sh * fix * fix the comment caused stuck docker build * use commit hash as tag template * fix * test tag * Revert "test tag" This reverts commit 9cbc57137d57aab4fdd5a9283bae07391b3c7f8b. * make docker build independent * add new build to ci * emit system free metrics with '/proc/meminfo' * have emit system free memory within metrics_time_taken_us and also add metric time taken for it * Remove Expireset (#217) Major refactor to place expiry information directly in the object struct. * update MemFree to MemAvailable in keydb statsd * add metric emit for non-empty primary with less than 2 connected replicas * address comments * Multiply CPU percent metric by 100 * Fix memory leaks * Fix slow to free when low lock contention * fix nodename metricsname * fix unnecessary replace * Make propagating before freeing module context optional (#225) * don't propogate on module context free for rdb load * default in wrong place * Flash expiration (#197) Design Doc: https://docs.google.com/document/d/1NmnYGnHLdZp-KOUCUatX5iXpF-L3YK4VUc9Lm3Tqxpo/edit?usp=sharing * Emit more aggregate metrics in modstatsd (#223) * Permit keys of differing slots as long as they are served by this cluster and we are not migrating * Fix over pessimistic checks that prevent replicas from serving mget * Fix logic bug * async rehash is preventing rehashing during RDB load after a db flush. Ensure it can't interefere after a flush * make async rehash configurable * only use internal locks when multithreaded (#205) * Fix crossslot error migrating batches of keys * Fix bug where we erroneously answer queries belonging to another shard * fix mac compile * enable level_compaction_dynamic_level_bytes after flush, and flush expires for FLASH (#229) * enable level_compaction_dynamic_level_bytes after flush, and flush expires * update debug reload for flash * update debug reload for flash complete * missing forward declare * commit existing changes then track changes for debug reload * missing args * commitChanges is conditional Co-authored-by: John Sully <jsully@snapchat.com> --------- Co-authored-by: zliang <zliang@snapchat.com> Co-authored-by: John Sully <jsully@snapchat.com> Co-authored-by: Alex Cope <acope@snapchat.com> Co-authored-by: John Sully <john@csquare.ca>
48 lines
1.5 KiB
Tcl
48 lines
1.5 KiB
Tcl
start_server {tags {"CRON"} overrides {hz 100} } {
|
|
test {keydb.cron singleshot past tense} {
|
|
r flushall
|
|
r keydb.cron testjob single 0 1 {redis.call("incr", "testkey")} 1 testkey
|
|
after 300
|
|
assert_equal 1 [r get testkey]
|
|
assert_equal 0 [r exists testjob]
|
|
}
|
|
|
|
test {keydb.cron repeat past tense next exec is in the future} {
|
|
r flushall
|
|
r keydb.cron testjob repeat 0 1000000 {redis.call("incr", "testkey")} 1 testkey
|
|
after 300
|
|
assert_equal 1 [r get testkey]
|
|
assert_equal 1 [r exists testjob]
|
|
r del testjob
|
|
}
|
|
|
|
test {keydb.cron repeat works} {
|
|
r flushall
|
|
r keydb.cron testjob repeat 0 900 {redis.call("incr","testkey")}
|
|
after 1000
|
|
assert_equal 2 [r get testkey]
|
|
}
|
|
|
|
test {keydb.cron overwrite works} {
|
|
r flushall
|
|
r keydb.cron testjob single 500 {redis.call("set","testkey","a")} 1 testkey
|
|
r keydb.cron testjob single 500 {redis.call("set","anotherkey","b")} 1 anotherkey
|
|
after 1000
|
|
assert_equal 0 [r exists testkey]
|
|
assert_equal b [r get anotherkey]
|
|
}
|
|
|
|
test {keydb.cron delete key stops job} {
|
|
r flushall
|
|
r keydb.cron testjob single 500 {redis.call("set","testkey","a")}
|
|
r del testjob
|
|
after 1000
|
|
assert_equal 0 [r exists testkey]
|
|
}
|
|
|
|
test {keydb.cron zero interval rejected} {
|
|
catch {r keydb.cron testjob single 0 0 {redis.call("incr","testkey")} 1 testkey} e
|
|
assert_match {ERR*} $e
|
|
}
|
|
}
|