Due to RedisGraph's EOL announcement, we recently tried to remove RedisGraph from our installed modules.
However, we could not get Redis to start up after removing RedisGraph. It returned the following error:
The RDB file contains AUX module data I can't load: no matching module 'graphdata'
...indicating that our backup/RDB still had information from RedisGraph in it.
Question: What is the official/recommended way to deal with this situation? We obviously need our RDB to start the server. How do we get our Redis instance working again without the RedisGraph module?
Comment From: gkorland
I know it's not the solution you were looking for... but you can switch to FalkorDB which is fully compatible with RedisGraph. See: https://github.com/falkordb/falkordb
Comment From: akremer
@gkorland That's actually super helpful on a totally different plane (Congrats on spawning out of the mothership!) but I'd still love to know the answer to the original problem just in case we ever have to remove any of the modules we have running :)
Thanks!
Comment From: gkorland
I'll leave it to the Redis core to answer, I know they were working on this issue.
Comment From: LiorKogan
We are sorry for this. We will fix it soon (the target date is set for next week).
We plan to release a new dummy module - RedisCompat. This module will be minimalistic. It will support no commands and will ignore graph data upon loading. If there is an empty graph AUX field - the module will ignore it and continue. If there are graph keys - the module will fail (users with graph keys would have to delete them manually before they can upgrade to Redis Stack 7.x. This will ensure graph data won't be deleted unintentionally).
We will also release a patch for Redis Stack 7.2 that will include the RedisCompat module.
If you are using Redis with RedisGraph and would like to remove RedisGraph because of the end-of-life but still want to keep all your other data, you would be able to add the RedisGraphSub module.
Comment From: AVVS
@LiorKogan I was wondering if there was any progress made on this with temporary workarounds / changed or new ETAs available for a no-hands solution?
Comment From: LiorKogan
Yep, sorry for not updating here.
In RedisGraph 2.10.15 as well as in 2.12.9 we introduced the following:
https://github.com/RedisGraph/RedisGraph/pull/3185 Don’t write AUX field in the RDB file when there are no graphs in the keyspace
If you upgrade RedisGraph to one of these versions and delete all graph keys - your RDB file should contain no AUX field, and you can then remove RedisGraph.
As an alternative, we also created https://github.com/RedisLabsModules/RedisCompat this module is a dummy replacement for RedisGraph. Basically, it registers the graph data type and ignores an empty graph AUX field (note that only an empty AUX field is ignored, so you'll still need to delete all graph keys. We want to ensure that no data is lost unexpectedly).
We intended to include RedisCompat in future versions of Redis Stack to allow an easy upgrade for those who never created graphs.