Skip to content
9e046af
Compare
Choose a tag to compare

This is a maintenance release for RedisGears 1.0.

Update urgency: MODERATE - Program an upgrade of the server, but it's not urgent.

Details

Minor Features:

  • #624, #626 Update python interpreter version to 3.7.12

Bug Fixes:

  • #610 Fix symbol collision with RediSearch and RedisGraph that causes deadlock
  • #609, #611 Crash on stream reader where stream is deleted during read
  • #612 Return error when GearsBuilder is used after registered or run
  • #613 Rare issue where stream reader might trigger executions on replica
  • #629 Rare deadlock on stream reader
4462889
Compare
Choose a tag to compare

This is a maintenance release for version 1.0.
Update urgency: LOW - No need to upgrade unless there are new features you want to use.

Details

Minor Features:

  • #594 Added RedisGears info section to Redis info command
  • #587 inorder option for the command reader
  • #592, #586 Background executions will now appear on Redis slowlog, available in Redis 6.2 and above.
71740d3
Compare
Choose a tag to compare

This is a maintenance release for version 1.0.
Update urgency: Medium

Headlines:

This release improves overall stability and provides fixes for issues found after the previous release.

Bugfixes:

  • #496 Allow parallel execution on Command Reader.
  • #505 Crash on a client that sends cluster set and disconnects.
57ca58e
Compare
Choose a tag to compare

This is a maintenance release for version 1.0.
Update urgency: High

Headlines:

This release improves overall stability and provides fixes for issues found after the previous release.

Bugfixes:

  • #480 Crash when map/accumulate/accumulateby raises an error which causes the same pyobject to be freed twice.
  • #480 'Cluster set' happened before resending hello request, which caused a crash.
  • #480 Memory leaks on 'cluster set'.
bd78ef9
Compare
Choose a tag to compare

This is a maintenance release for version 1.0.
Update urgency: Low

Headlines:

This release improves overall stability and provides fixes for issues found after the previous release.

Bugfixes:

  • #458 Crash on StreamReader when the stream is dropped during processing of the function.
  • #477 Rare crash on accumulate step.
6d6d74b
Compare
Choose a tag to compare

This is a maintenance release for version 1.0.
Update urgency: Low

Headlines:

This release improves overall stability and provides fixes for issues found after the previous release.

Bugfixes:

  • #427 Rare issue where messages might get lost and cause executions timeouts.
  • #434 Triggering an execution on uninitialized cluster state should raise a cluster uninitialized error.
afe9a37
Compare
Choose a tag to compare

This is a maintenance release for version 1.0.
Update urgency: Low

Headlines:

This release improves overall stability and provides fixes for issues found after the previous release.

Details:

Minor Features:

  • #368 Support for buffer input on createTensorFromBlob when integrating with RedisAI API.
  • #373 Registered execution plans will not re-send their metadata when they are triggered (this feature reduces network overhead and improve performance of distributed registrations).
  • #371 Full details on import requirement failure.

Bugfixes:

  • #374 Fix RedisAI toFlatList function to handle long long encoding.
  • #375 Call OnRegister on RDBLoad.
  • #388 Fix crash on hello request failure (internal protocol between shards), a retry will be triggered after 1 second.
  • #395 Fix rare wrong results on aggregate and aggregateby. Use deep copy on the zero value to avoid those incorrect results.
155ef62
Compare
Choose a tag to compare

This is a maintenance release for version 1.0.
Update urgency: Medium

Highlights:

  • Import and Export requirements - With this capability, you can export the python requirements present in RedisGears and import them into another instance using gears-cli. This enables, amongst others, to import requirements to environments without internet access. Notice that the requirement should be exported from and imported into machines with the same OS and version. This is the recommended tool to use for productionising RedisGears functions (for example to be used in your CI).
  • Optimised requirements installation mechanism - requirements will now be distributed once to each shard and not each time an execution is triggered.
  • RedisAI API fixes and additions - fixes/additions related to the integration with RedisAI.

Details:

Features:

  • #330 SendMsgRetries configuration parameter indicating how many times RedisGears should try sending messages between shards.
  • #330 PythonInstallReqMaxIdleTime configuration parameter for the maximum amount of time to wait for requirements to be installed.
  • #330 RG.PYDUMPREQ command that output all the currently available python requirements.
  • Added the following API functionality to the RedisAI integration:
    • #346 Script run will now return a list of tensors.
    • #347 Allow tensor creation from bytes.
    • #350 Added mget and mset to get/set multiple tensors from/to the keyspace.
    • #345 Free python GIL before calling redisAI model/script run.

Bugfixes:

  • #325 Circular reference that caused a logical memory leak.
  • #330 Crash on wrong reply status.
  • #345 Crash on python session (private data on rg.dumpregistration) 'tostr' function when there is no requirements.
  • #334 Type check to RedisAI API to prevent potential crashes.
Compare
Choose a tag to compare

This is the first GA Release of RedisGears (v1.0.0).

Highlights:

  • Program everything you want in Redis - With a built-in C-API and Python interpreter, RedisGears lets you use full-fledged Python scripts and libraries to process data inside Redis.
  • Write once, deploy anywhere - Write your functions against a standalone Redis database and deploy them to production clusters—with no changes required.
  • Run your serverless engine where your data lives - RedisGears lets you process events and streams faster by running in memory next to your data in Redis.

To get started please check out redisgears.io. We plan to release a blogpost soon and will cross link it here.

Bugfixes (compared to RC1):

  • #288 dependencies with version will not crash the server.
  • #309, #313 Prevent crashes on RedisAI intergration and update the low level C api of RedisAI.
  • #311 Fix out-of-order reply in certain situations.
  • #321 Return error when unknown argument is given.

Compiled binaries:

Notes:
The version inside Redis will be 10000 or 1.0.0 in semantic versioning.
This version requires the Redis version to be 6.0 and above.

Compare
Choose a tag to compare

1.0-RC1

Pre-release
Pre-release

This is the first Release Candidate for RedisGears 1.0. The release containing some stability fixes and new features. It also introduces some (small) breaking changes from v0.9.0 which are listed below.

Highlights:

  • Thread pool support for running several executions in parallel.
  • Enhanced dependency installation and module configuration options.
  • Revision of all Readers with added arguments which results in more granular reading.

Details:

  • New features:

    • Core:

      • #226 Introduction of the command reader. This allows to trigger registrations using a command.
      • #228 Added thread pool support to run executions, the number of threads can be given as a module argument.
      • #256 The dependency installation will download the Wheels and distribute them to all the shards (instead of each shard downloading and install separately)
      • #259 Added execution max idle time for distributed executions.
    • StreamReader:

      • #263, #221 Introduction of the following arguments:
        • on 'run':
          • fromId - the message id from where to start reading messages (default 0-0).
        • on 'register':
          • trimStream - if True the stream will be trimmed after execution. (default True)
    • KeysReader:

      • #263 KeysReader format was changed and now provides also the key type (string, hash, list, ..) and the event (set, hset, ...). In addition, the KeysReader introduces the following arguments:
        • on 'run':
          • readValue - if False only the 'key' and the 'event' values will be provided (default True)
          • noScan - if True read the exact pattern without performing scan operation (default False)
        • on 'register':
          • readValue - if False only the 'key' and the 'event' values will be provided (default True)
    • KeysOnlyReader:

      • #263 KeysOnlyReader is now supporting the following arguments:
        • pattern - keys pattern to return.
        • count - count parameter is given to scan command (ignored if isPattern is false)
        • exactMatch - boolean indicating if an exact match is required, i.e, do not use scan and just return the given pattern
        • patternGenerator - a callback to generate different patterns on each shard. If supplied, the callback will run on each shard and the return tuple <pattern, isPattern> will be used. (pattern and isPattern arguments will be ignored.)
    • Execution:

  • Minor Enhancements:

  • Minor Bugfixes:

    • #262 Fix issue where the execution reuse mechanism caused the second run to return no values.
  • Breaking Changes (compared to v0.9.0):

    • #263 - StreamReader format was changed to : {'key':..., 'msg_id':..., 'value':{'k':'v',...}}
      • key - the stream key (string)
      • msg_id - the current message id (string)
      • value - the message value (dictionary)
  • Deprecations:

    • The 'Log' function was deprecated, use 'log(msg, level='notice')' instead.
    • Regex argument on KeysReader was deprecated, use prefix instead.
    • Regex argument on StreamReader was deprecated, use prefix instead.

Compiled binaries

You can download the RedisGears binaries from:

Notes:
The version inside Redis will be 9901 or 0.99.1 in semantic versioning. Since the version of a module in Redis is numeric, we use 0.99 to resemble that it's almost 1.0