1. 10 May, 2016 4 commits
    • antirez's avatar
      Modules: avoid conflict between modules func pointers and dynamic symbols. · 85919f80
      antirez authored
      In modules we fill a set of function pointers defined in redismodule.h,
      populating a set of APIs that are callable from the module. We use this
      manual process instead of resorting to dynamic linking so that we have
      exact control on how we pass the API to the module, and we can even pass
      different functions for the same name, depending on the API version
      declared by the module.
      
      However if the function pointers in redismodule.h and the functions
      defined in module.c have the same name, they conflict since the core
      exports the symbols to the module.
      
      There is probably some compiler flags trick to avoid this, but in order
      to be safer in the future and be more easily compatible with different
      builidng systems, this commit changes the internal function prefix from
      RedisModule_ to RM_, so for example:
      
          RM_StringSet() will be exported as RedisModule_StringSet()
      85919f80
    • antirez's avatar
    • Dvir Volk's avatar
      fixed makefile for linux · 34f2fb7d
      Dvir Volk authored
      34f2fb7d
    • antirez's avatar
      Modules: first preview 31 March 2016. · 6dead2cf
      antirez authored
      6dead2cf
  2. 07 May, 2016 1 commit
    • antirez's avatar
      redis-cli: integrate help.h with COMMAND output. · 8eb43bf7
      antirez authored
      Use the COMMAND output to fill with partial information the built-in
      help. This makes redis-cli able to at least complete commands that are
      exported by the Redis server it is connected to, but were not available
      in the help.h file when the redis-cli binary was compiled.
      8eb43bf7
  3. 05 May, 2016 8 commits
  4. 04 May, 2016 5 commits
  5. 02 May, 2016 1 commit
    • antirez's avatar
      New masters with slots are now targets of migration if others are. · 4fdde78c
      antirez authored
      This fixes issue #3043.
      
      Before this fix, after a complete resharding of a master slots
      to other nodes, the master remains empty and the slaves migrate away
      to other masters with non-zero nodes. However the old master now empty,
      is no longer considered a target for migration, because the system has
      no way to tell it had slaves in the past.
      
      This fix leaves the algorithm used in the past untouched, but adds a
      new rule. When a new or old master which is empty and without slaves,
      are assigend with their first slot, if other masters in the cluster have
      slaves, they are automatically considered to be targets for replicas
      migration.
      4fdde78c
  6. 25 Apr, 2016 6 commits
  7. 22 Apr, 2016 1 commit
    • therealbill's avatar
      fix for #3187 · 14086a46
      therealbill authored
      I've renamed maxmemoryToString to evictPolicyToString since that is
      more accurate (and easier to mentally connect with the correct data), as
      well as updated the function to user server.maxmemory_policy rather than
      server.maxmemory. Now with a default config it is actually returning
      the correct policy rather than volatile-lru.
      14086a46
  8. 18 Apr, 2016 1 commit
  9. 15 Apr, 2016 2 commits
  10. 14 Apr, 2016 2 commits
  11. 13 Apr, 2016 3 commits
  12. 04 Apr, 2016 3 commits
    • antirez's avatar
      ae.c: Fix delay until next timer event. · b9feef9a
      antirez authored
      This fix was written by Anthony LaTorre.
      The old code mis-calculated the amount of time to wait till next event.
      b9feef9a
    • antirez's avatar
      ace780c0
    • antirez's avatar
      Fix ae.c to avoid timers infinite loop. · 67b70a18
      antirez authored
      This fix was suggested by Anthony LaTorre, that provided also a good
      test case that was used to verify the fix.
      
      The problem with the old implementation is that, the time returned by
      a timer event (that is the time after it want to run again) is added
      to the event *start time*. So if the event takes, in order to run, more
      than the time it says it want to be scheduled again for running, an
      infinite loop is triggered.
      67b70a18
  13. 30 Mar, 2016 2 commits
  14. 02 Mar, 2016 1 commit