1. 14 Nov, 2019 1 commit
    • Yossi Gottlieb's avatar
      Add RM_ModuleTypeReplaceValue. · 9c76875f
      Yossi Gottlieb authored
      This is a light-weight replace function, useful for use cases such as
      realloc()ing an existing value, etc.  Using RM_ModuleTypeSetValue() in
      such cases is wasteful and complex as it attempts to delete the old
      value, call its destructor, etc.
      9c76875f
  2. 11 Nov, 2019 2 commits
    • Oran Agra's avatar
      Add RM_ScanKey to scan hash, set, zset, changes to RM_Scan API · 0f8692b4
      Oran Agra authored
      - Adding RM_ScanKey
      - Adding tests for RM_ScanKey
      - Refactoring RM_Scan API
      
      Changes in RM_Scan
      - cleanup in docs and coding convention
      - Moving out of experimantal Api
      - Adding ctx to scan callback
      - Dont use cursor of -1 as an indication of done (can be a valid cursor)
      - Set errno when returning 0 for various reasons
      - Rename Cursor to ScanCursor
      - Test filters key that are not strings, and opens a key if NULL
      0f8692b4
    • meir@redislabs.com's avatar
      Added scan implementation to module api. · 11c6ce81
      meir@redislabs.com authored
      The implementation expose the following new functions:
      1. RedisModule_CursorCreate - allow to create a new cursor object for
      keys scanning
      2. RedisModule_CursorRestart - restart an existing cursor to restart the
      scan
      3. RedisModule_CursorDestroy - destroy an existing cursor
      4. RedisModule_Scan - scan keys
      
      The RedisModule_Scan function gets a cursor object, a callback and void*
      (used as user private data).
      The callback will be called for each key in the database proving the key
      name and the value as RedisModuleKey.
      11c6ce81
  3. 04 Nov, 2019 2 commits
  4. 03 Nov, 2019 1 commit
    • Oran Agra's avatar
      Module API for loading and saving long double · 779aebc9
      Oran Agra authored
      looks like each platform implements long double differently (different bit count)
      so we can't save them as binary, and we also want to avoid creating a new RDB
      format version, so we save these are hex strings using "%La".
      
      This commit includes a change in the arguments of ld2string to support this.
      as well as tests for coverage and short reads.
      
      coded by @guybe7
      779aebc9
  5. 31 Oct, 2019 1 commit
    • antirez's avatar
      Modules: block on keys: use a better interface. · 91f4bdc9
      antirez authored
      Using the is_key_ready() callback plus the reply callback later, creates
      different issues AFAIK:
      
      1. More complex API.
      2. We need to call the reply callback() ASAP if the is_key_ready()
      interface returned success, however the internals do not work in that
      way, so when the reply callback is called the setup could be different.
      To fix that, there is to break the current design that handles the
      unblocked clients asyncrhonously, and run the list ASAP.
      91f4bdc9
  6. 30 Oct, 2019 1 commit
  7. 29 Oct, 2019 2 commits
    • Oran Agra's avatar
      Modules hooks: complete missing hooks for the initial set of hooks · 51c3ff8d
      Oran Agra authored
      * replication hooks: role change, master link status, replica online/offline
      * persistence hooks: saving, loading, loading progress
      * misc hooks: cron loop, shutdown, module loaded/unloaded
      * change the way hooks test work, and add tests for all of the above
      
      startLoading() now gets flag indicating what is loaded.
      stopLoading() now gets an indication of success or failure.
      adding startSaving() and stopSaving() with similar args and role.
      51c3ff8d
    • Oran Agra's avatar
      Module API for controlling LRU and LFU, and OpenKey without TOUCH · e978bdf9
      Oran Agra authored
      Some commands would want to open a key without touching it's LRU/LFU
      similarly to the OBJECT or DEBUG command do.
      
      Other commands may want to implement logic similar to what RESTORE
      does (and in the future MIGRATE) and get/set the LRU or LFU.
      e978bdf9
  8. 28 Oct, 2019 5 commits
  9. 24 Oct, 2019 1 commit
  10. 23 Oct, 2019 10 commits
  11. 17 Oct, 2019 2 commits
  12. 18 Aug, 2019 1 commit
  13. 30 Jul, 2019 1 commit
  14. 24 Jul, 2019 1 commit
  15. 22 Jul, 2019 1 commit
  16. 21 Jul, 2019 1 commit
    • Oran Agra's avatar
      Allow modules to handle RDB loading errors. · d7d028a7
      Oran Agra authored
      This is especially needed in diskless loading, were a short read could have
      caused redis to exit. now the module can handle the error and return to the
      caller gracefully.
      
      this fixes #5326
      d7d028a7
  17. 17 Jul, 2019 1 commit
    • Oran Agra's avatar
      Module API for Forking · 56258c6b
      Oran Agra authored
      * create module API for forking child processes.
      * refactor duplicate code around creating and tracking forks by AOF and RDB.
      * child processes listen to SIGUSR1 and dies exitFromChild in order to
        eliminate a valgrind warning of unhandled signal.
      * note that BGSAVE error reply has changed.
      
      valgrind error is:
        Process terminating with default action of signal 10 (SIGUSR1)
      56258c6b
  18. 12 Jun, 2019 1 commit
  19. 16 Apr, 2019 1 commit
  20. 21 Mar, 2019 4 commits