summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2020-02-07 18:12:45 +0100
committerantirez <antirez@gmail.com>2020-02-07 18:12:45 +0100
commit85e4777d5c4411b499a845565729910bb09d64ac (patch)
treef92650f94dadac7d17a036f73c28d2ffe1725711
parent1ea66724300f1cd7c97b842a7c9190e72ea91976 (diff)
downloadredis-85e4777d5c4411b499a845565729910bb09d64ac.tar.gz
Tracking: minor change of names and new INFO field.
-rw-r--r--src/config.c2
-rw-r--r--src/server.c2
-rw-r--r--src/server.h3
-rw-r--r--src/tracking.c8
4 files changed, 11 insertions, 4 deletions
diff --git a/src/config.c b/src/config.c
index a6b374817..b2e5fc12e 100644
--- a/src/config.c
+++ b/src/config.c
@@ -2160,7 +2160,7 @@ standardConfig configs[] = {
createIntConfig("list-compress-depth", NULL, MODIFIABLE_CONFIG, 0, INT_MAX, server.list_compress_depth, 0, INTEGER_CONFIG, NULL, NULL),
createIntConfig("rdb-key-save-delay", NULL, MODIFIABLE_CONFIG, 0, INT_MAX, server.rdb_key_save_delay, 0, INTEGER_CONFIG, NULL, NULL),
createIntConfig("key-load-delay", NULL, MODIFIABLE_CONFIG, 0, INT_MAX, server.key_load_delay, 0, INTEGER_CONFIG, NULL, NULL),
- createIntConfig("tracking-table-max-fill", NULL, MODIFIABLE_CONFIG, 0, 100, server.tracking_table_max_fill, 10, INTEGER_CONFIG, NULL, NULL), /* Default: 10% tracking table max fill. */
+ createIntConfig("tracking-table-max-fill", NULL, MODIFIABLE_CONFIG, 0, 100, server.tracking_table_max_keys, 1000000, INTEGER_CONFIG, NULL, NULL), /* Default: 10% tracking table max number of keys tracked. */
createIntConfig("active-expire-effort", NULL, MODIFIABLE_CONFIG, 1, 10, server.active_expire_effort, 1, INTEGER_CONFIG, NULL, NULL), /* From 1 to 10. */
createIntConfig("hz", NULL, MODIFIABLE_CONFIG, 0, INT_MAX, server.config_hz, CONFIG_DEFAULT_HZ, INTEGER_CONFIG, NULL, updateHZ),
createIntConfig("min-replicas-to-write", "min-slaves-to-write", MODIFIABLE_CONFIG, 0, INT_MAX, server.repl_min_slaves_to_write, 0, INTEGER_CONFIG, NULL, updateGoodSlaves),
diff --git a/src/server.c b/src/server.c
index 2cf8dbf19..910cf5410 100644
--- a/src/server.c
+++ b/src/server.c
@@ -4221,6 +4221,7 @@ sds genRedisInfoString(const char *section) {
"active_defrag_misses:%lld\r\n"
"active_defrag_key_hits:%lld\r\n"
"active_defrag_key_misses:%lld\r\n"
+ "tracking_total_keys:%lld\r\n"
"tracking_total_items:%lld\r\n",
server.stat_numconnections,
server.stat_numcommands,
@@ -4249,6 +4250,7 @@ sds genRedisInfoString(const char *section) {
server.stat_active_defrag_misses,
server.stat_active_defrag_key_hits,
server.stat_active_defrag_key_misses,
+ (unsigned long long) trackingGetTotalKeys(),
(unsigned long long) trackingGetTotalItems());
}
diff --git a/src/server.h b/src/server.h
index a30db6b57..3e055a7db 100644
--- a/src/server.h
+++ b/src/server.h
@@ -1306,7 +1306,7 @@ struct redisServer {
list *ready_keys; /* List of readyList structures for BLPOP & co */
/* Client side caching. */
unsigned int tracking_clients; /* # of clients with tracking enabled.*/
- int tracking_table_max_fill; /* Max fill percentage. */
+ int tracking_table_max_keys; /* Max number of keys in tracking table. */
/* Sort parameters - qsort_r() is only available under BSD so we
* have to take this state global, in order to pass it to sortCompare() */
int sort_desc;
@@ -1655,6 +1655,7 @@ void trackingInvalidateKey(robj *keyobj);
void trackingInvalidateKeysOnFlush(int dbid);
void trackingLimitUsedSlots(void);
uint64_t trackingGetTotalItems(void);
+uint64_t trackingGetTotalKeys(void);
/* List data type */
void listTypeTryConversion(robj *subject, robj *value);
diff --git a/src/tracking.c b/src/tracking.c
index ecb7fbdcc..9c1c9620c 100644
--- a/src/tracking.c
+++ b/src/tracking.c
@@ -223,8 +223,8 @@ void trackingInvalidateKeysOnFlush(int dbid) {
void trackingLimitUsedSlots(void) {
static unsigned int timeout_counter = 0;
if (TrackingTable == NULL) return;
- if (server.tracking_table_max_fill == 0) return; /* No limits set. */
- size_t max_keys = server.tracking_table_max_fill;
+ if (server.tracking_table_max_keys == 0) return; /* No limits set. */
+ size_t max_keys = server.tracking_table_max_keys;
if (raxSize(TrackingTable) <= max_keys) {
timeout_counter = 0;
return; /* Limit not reached. */
@@ -264,3 +264,7 @@ void trackingLimitUsedSlots(void) {
uint64_t trackingGetTotalItems(void) {
return TrackingTableTotalItems;
}
+
+uint64_t trackingGetTotalKeys(void) {
+ return raxSize(TrackingTable);
+}