Limits and gotchas: migrate from Aiven to KiviDB
ERR key must be valid UTF-8, and both copy tools stop at the first one. Find them before you start, for example with a SCAN script that checks each name…
- Key names that are not valid UTF-8. KiviDB refuses them with
ERR key must be valid UTF-8, and both copy tools stop at the first one. Find them before you start, for example with aSCANscript that checks each name, and rename them on the source. - Valkey 9 formats: see Valkey 9.
- HyperLogLogs. KiviDB's HyperLogLog layout is not Redis's. After the copy,
compare
PFCOUNTon a few HyperLogLog keys on both sides; if they differ, rebuild them withPFADDfrom your source data. - Search indexes. Valkey search indexes are not copied by any of these
tools. Run
FT.CREATEon KiviDB; it indexes the keys already there. - Function libraries (
FUNCTION LOAD) are not keys, so the copy tools don't move them. Load them again on KiviDB (theluaorfullbuild, or the Lua add-on on Cloud). - Users are not copied. Recreate them on KiviDB.
- Keyspace notifications. If you turned them on for the cutover and your application doesn't need them, turn them off on KiviDB afterwards; they cost a little on every write.
- Free-plan services can be powered off by Aiven when idle. Check the service is running before you start a long copy.
- Aiven closes TLS connections after 12 hours. Plan a long-running copy (a very large service, or a live copy left running for days) with that in mind, and check the tool's log for reconnects.