From 12ff0c0d79ce673a5e83c8cbff1cdbf773baf800 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 1 Aug 2018 18:53:06 +0200 Subject: [PATCH] Explain what's the point of zslUpdateScore() in top comment. --- src/t_zset.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/t_zset.c b/src/t_zset.c index 91fe01d76..16ec715e8 100644 --- a/src/t_zset.c +++ b/src/t_zset.c @@ -249,6 +249,11 @@ int zslDelete(zskiplist *zsl, double score, sds ele, zskiplistNode **node) { * This function does not update the score in the hash table side, the * caller should take care of it. * + * Note that this function attempts to just update the node, in case after + * the score update, the node would be exactly at the same position. + * Otherwise the skiplist is modified by removing and re-adding a new + * element, which is more costly. + * * The function returns the updated element skiplist node pointer. */ zskiplistNode *zslUpdateScore(zskiplist *zsl, double curscore, sds ele, double newscore) { zskiplistNode *update[ZSKIPLIST_MAXLEVEL], *x;