Skip to content
This repository has been archived by the owner on Feb 20, 2021. It is now read-only.

Commit

Permalink
swap file name pid expansion removed. Not suited for mission critical…
Browse files Browse the repository at this point in the history
… software...
  • Loading branch information
antirez committed May 7, 2010
1 parent 8b5bb41 commit a0e7e5f
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 28 deletions.
18 changes: 0 additions & 18 deletions redis.c
Expand Up @@ -4485,7 +4485,6 @@ static void shutdownCommand(redisClient *c) {
unlink(server.pidfile);
redisLog(REDIS_WARNING,"%zu bytes used at exit",zmalloc_used_memory());
redisLog(REDIS_WARNING,"Server exit now, bye bye...");
if (server.vm_enabled) unlink(server.vm_swap_file);
exit(0);
} else {
/* Ooops.. error saving! The best we can do is to continue
Expand Down Expand Up @@ -8584,22 +8583,6 @@ static void aofRemoveTempFile(pid_t childpid) {

/* =================== Virtual Memory - Blocking Side ====================== */

/* substitute the first occurrence of '%p' with the process pid in the
* swap file name. */
static void expandVmSwapFilename(void) {
char *p = strstr(server.vm_swap_file,"%p");
sds new;

if (!p) return;
new = sdsempty();
*p = '\0';
new = sdscat(new,server.vm_swap_file);
new = sdscatprintf(new,"%ld",(long) getpid());
new = sdscat(new,p+2);
zfree(server.vm_swap_file);
server.vm_swap_file = new;
}

static void vmInit(void) {
off_t totsize;
int pipefds[2];
Expand All @@ -8609,7 +8592,6 @@ static void vmInit(void) {
if (server.vm_max_threads != 0)
zmalloc_enable_thread_safeness(); /* we need thread safe zmalloc() */

expandVmSwapFilename();
redisLog(REDIS_NOTICE,"Using '%s' as swap file",server.vm_swap_file);
/* Try to open the old swap file, otherwise create it */
if ((server.vm_fp = fopen(server.vm_swap_file,"r+b")) == NULL) {
Expand Down
14 changes: 5 additions & 9 deletions redis.conf
Expand Up @@ -206,20 +206,16 @@ vm-enabled no

# This is the path of the Redis swap file. As you can guess, swap files
# can't be shared by different Redis instances, so make sure to use a swap
# file for every redis process you are running.
# file for every redis process you are running. Redis will complain if the
# swap file is already in use.
#
# The swap file name may contain "%p" that is substituted with the PID of
# the Redis process, so the default name /tmp/redis-%p.vm will work even
# with multiple instances as Redis will use, for example, redis-811.vm
# for one instance and redis-593.vm for another one.
#
# Useless to say, the best kind of disk for a Redis swap file (that's accessed
# at random) is a Solid State Disk (SSD).
# The best kind of storage for the Redis swap file (that's accessed at random)
# is a Solid State Disk (SSD).
#
# *** WARNING *** if you are using a shared hosting the default of putting
# the swap file under /tmp is not secure. Create a dir with access granted
# only to Redis user and configure Redis to create the swap file there.
vm-swap-file /tmp/redis-%p.vm
vm-swap-file /tmp/redis.swap

# vm-max-memory configures the VM to use at max the specified amount of
# RAM. Everything that deos not fit will be swapped on disk *if* possible, that
Expand Down
28 changes: 27 additions & 1 deletion staticsymbols.h
@@ -1,6 +1,7 @@
static struct redisFunctionSym symsTable[] = {
{"IOThreadEntryPoint",(unsigned long)IOThreadEntryPoint},
{"_redisAssert",(unsigned long)_redisAssert},
{"_redisPanic",(unsigned long)_redisPanic},
{"acceptHandler",(unsigned long)acceptHandler},
{"addReply",(unsigned long)addReply},
{"addReplyBulk",(unsigned long)addReplyBulk},
Expand Down Expand Up @@ -41,6 +42,7 @@ static struct redisFunctionSym symsTable[] = {
{"createSharedObjects",(unsigned long)createSharedObjects},
{"createSortOperation",(unsigned long)createSortOperation},
{"createStringObject",(unsigned long)createStringObject},
{"createStringObjectFromLongLong",(unsigned long)createStringObjectFromLongLong},
{"createZsetObject",(unsigned long)createZsetObject},
{"daemonize",(unsigned long)daemonize},
{"dbsizeCommand",(unsigned long)dbsizeCommand},
Expand All @@ -63,14 +65,15 @@ static struct redisFunctionSym symsTable[] = {
{"dupStringObject",(unsigned long)dupStringObject},
{"echoCommand",(unsigned long)echoCommand},
{"execCommand",(unsigned long)execCommand},
{"execCommandReplicateMulti",(unsigned long)execCommandReplicateMulti},
{"existsCommand",(unsigned long)existsCommand},
{"expandVmSwapFilename",(unsigned long)expandVmSwapFilename},
{"expireCommand",(unsigned long)expireCommand},
{"expireGenericCommand",(unsigned long)expireGenericCommand},
{"expireIfNeeded",(unsigned long)expireIfNeeded},
{"expireatCommand",(unsigned long)expireatCommand},
{"feedAppendOnlyFile",(unsigned long)feedAppendOnlyFile},
{"findFuncName",(unsigned long)findFuncName},
{"flushAppendOnlyFile",(unsigned long)flushAppendOnlyFile},
{"flushallCommand",(unsigned long)flushallCommand},
{"flushdbCommand",(unsigned long)flushdbCommand},
{"freeClient",(unsigned long)freeClient},
Expand All @@ -94,27 +97,47 @@ static struct redisFunctionSym symsTable[] = {
{"genericZrangebyscoreCommand",(unsigned long)genericZrangebyscoreCommand},
{"getCommand",(unsigned long)getCommand},
{"getDecodedObject",(unsigned long)getDecodedObject},
{"getDoubleFromObject",(unsigned long)getDoubleFromObject},
{"getDoubleFromObjectOrReply",(unsigned long)getDoubleFromObjectOrReply},
{"getExpire",(unsigned long)getExpire},
{"getGenericCommand",(unsigned long)getGenericCommand},
{"getLongFromObjectOrReply",(unsigned long)getLongFromObjectOrReply},
{"getLongLongFromObject",(unsigned long)getLongLongFromObject},
{"getLongLongFromObjectOrReply",(unsigned long)getLongLongFromObjectOrReply},
{"getMcontextEip",(unsigned long)getMcontextEip},
{"getsetCommand",(unsigned long)getsetCommand},
{"glueReplyBuffersIfNeeded",(unsigned long)glueReplyBuffersIfNeeded},
{"handleClientsBlockedOnSwappedKey",(unsigned long)handleClientsBlockedOnSwappedKey},
{"handleClientsWaitingListPush",(unsigned long)handleClientsWaitingListPush},
{"hashCurrent",(unsigned long)hashCurrent},
{"hashDelete",(unsigned long)hashDelete},
{"hashExists",(unsigned long)hashExists},
{"hashGet",(unsigned long)hashGet},
{"hashInitIterator",(unsigned long)hashInitIterator},
{"hashLookupWriteOrCreate",(unsigned long)hashLookupWriteOrCreate},
{"hashNext",(unsigned long)hashNext},
{"hashReleaseIterator",(unsigned long)hashReleaseIterator},
{"hashSet",(unsigned long)hashSet},
{"hashTryConversion",(unsigned long)hashTryConversion},
{"hashTryObjectEncoding",(unsigned long)hashTryObjectEncoding},
{"hdelCommand",(unsigned long)hdelCommand},
{"hexistsCommand",(unsigned long)hexistsCommand},
{"hgetCommand",(unsigned long)hgetCommand},
{"hgetallCommand",(unsigned long)hgetallCommand},
{"hincrbyCommand",(unsigned long)hincrbyCommand},
{"hkeysCommand",(unsigned long)hkeysCommand},
{"hlenCommand",(unsigned long)hlenCommand},
{"hmgetCommand",(unsigned long)hmgetCommand},
{"hmsetCommand",(unsigned long)hmsetCommand},
{"hsetCommand",(unsigned long)hsetCommand},
{"hsetnxCommand",(unsigned long)hsetnxCommand},
{"htNeedsResize",(unsigned long)htNeedsResize},
{"hvalsCommand",(unsigned long)hvalsCommand},
{"incrCommand",(unsigned long)incrCommand},
{"incrDecrCommand",(unsigned long)incrDecrCommand},
{"incrRefCount",(unsigned long)incrRefCount},
{"incrbyCommand",(unsigned long)incrbyCommand},
{"incrementallyRehash",(unsigned long)incrementallyRehash},
{"infoCommand",(unsigned long)infoCommand},
{"initClientMultiState",(unsigned long)initClientMultiState},
{"initServer",(unsigned long)initServer},
Expand Down Expand Up @@ -197,6 +220,7 @@ static struct redisFunctionSym symsTable[] = {
{"renameCommand",(unsigned long)renameCommand},
{"renameGenericCommand",(unsigned long)renameGenericCommand},
{"renamenxCommand",(unsigned long)renamenxCommand},
{"replicationFeedMonitors",(unsigned long)replicationFeedMonitors},
{"replicationFeedSlaves",(unsigned long)replicationFeedSlaves},
{"resetClient",(unsigned long)resetClient},
{"resetServerSaveParams",(unsigned long)resetServerSaveParams},
Expand All @@ -211,6 +235,7 @@ static struct redisFunctionSym symsTable[] = {
{"sdiffCommand",(unsigned long)sdiffCommand},
{"sdiffstoreCommand",(unsigned long)sdiffstoreCommand},
{"sdsDictKeyCompare",(unsigned long)sdsDictKeyCompare},
{"sdscatrepr",(unsigned long)sdscatrepr},
{"segvHandler",(unsigned long)segvHandler},
{"selectCommand",(unsigned long)selectCommand},
{"selectDb",(unsigned long)selectDb},
Expand All @@ -221,6 +246,7 @@ static struct redisFunctionSym symsTable[] = {
{"setCommand",(unsigned long)setCommand},
{"setExpire",(unsigned long)setExpire},
{"setGenericCommand",(unsigned long)setGenericCommand},
{"setexCommand",(unsigned long)setexCommand},
{"setnxCommand",(unsigned long)setnxCommand},
{"setupSigSegvAction",(unsigned long)setupSigSegvAction},
{"shutdownCommand",(unsigned long)shutdownCommand},
Expand Down

0 comments on commit a0e7e5f

Please sign in to comment.