From e52c65b90af21d1eba73ddc0a75eedba69b2f7b8 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 3 Jun 2009 16:01:32 +0200 Subject: [PATCH] shareobjectspoolsize implemented in reds.conf, in order to control the pool size when object sharing is on --- TODO | 1 + redis.c | 5 +++++ redis.conf | 11 +++++++++++ 3 files changed, 17 insertions(+) diff --git a/TODO b/TODO index cdd50f7a0..9addd6e62 100644 --- a/TODO +++ b/TODO @@ -29,6 +29,7 @@ AFTER 1.0 stable release side the type also takes an hash table with key->score mapping, so that when there is an update we lookup the current score and can traverse the tree. * BITMAP type + * LRANGE 4 0 should return the same elements as LRANGE 0 4 but in reverse order FUTURE HINTS diff --git a/redis.c b/redis.c index 2761541c9..b925b551b 100644 --- a/redis.c +++ b/redis.c @@ -1046,6 +1046,11 @@ static void loadServerConfig(char *filename) { if ((server.shareobjects = yesnotoi(argv[1])) == -1) { err = "argument must be 'yes' or 'no'"; goto loaderr; } + } else if (!strcasecmp(argv[0],"shareobjectspoolsize") && argc == 2) { + server.sharingpoolsize = atoi(argv[1]); + if (server.sharingpoolsize < 1) { + err = "invalid object sharing pool size"; goto loaderr; + } } else if (!strcasecmp(argv[0],"daemonize") && argc == 2) { if ((server.daemonize = yesnotoi(argv[1])) == -1) { err = "argument must be 'yes' or 'no'"; goto loaderr; diff --git a/redis.conf b/redis.conf index 8a962f4a9..fc1e9dd90 100644 --- a/redis.conf +++ b/redis.conf @@ -118,4 +118,15 @@ glueoutputbuf yes # string in your dataset, but performs lookups against the shared objects # pool so it uses more CPU and can be a bit slower. Usually it's a good # idea. +# +# When object sharing is enabled (shareobjects yes) you can use +# shareobjectspoolsize to control the size of the pool used in order to try +# object sharing. A bigger pool size will lead to better sharing capabilities. +# In general you want this value to be at least the double of the number of +# very common strings you have in your dataset. +# +# WARNING: object sharing is experimental, don't enable this feature +# in production before of Redis 1.0-stable. Still please try this feature in +# your development environment so that we can test it better. shareobjects no +shareobjectspoolsize 1024 -- GitLab