I am attempting to upgrade from Redis 2.8 to 3.2. All functionality seems to remain intact in my application, but I am left wondering
If there are a set of non-backwards compatible changes I need to take care of?
If my data generated and persisted to disk in Redis 2.8 will work properly with the 3.2 server?
Release notes are on github https://github.com/antirez/redis
Here's a snippet from the release notes for v3.0 and v.3.2
Migrating from 2.8 to 3.0
=========================
Redis 2.8 is mostly a strict subset of 3.0, you should not have any
problem
upgrading your application from 2.8 to 3.0. However this is a list of
small
non-backward compatible changes introduced in the 3.0 release:
The log format was modified. The prefix of each line included the pid
in the following format [1234]. Now instead it is 1234:? Where
'?' is actually the role of the instance. M for master, S for slave, C
if this process is a saving child (for RDB/AOF), and X for Sentinel.
The default maxmemory policy in Redis 3.0 is no longer "volatile-lru" as
it used to be in 2.8, but "noeviction". The policies behavior is the same
(but LRU eviction is much more precise in 3.0), so only the default value
changed. Just make sure to specify in your redis.conf what you mean.
https://raw.githubusercontent.com/antirez/redis/3.0/00-RELEASENOTES
Migrating from 3.0 to 3.2
Redis 3.0 is mostly a strict subset of 3.2, you should not have any problem
upgrading your application from 3.0 to 3.2. However this is a list of small
non-backward compatible changes introduced in the 3.2 release:
The default configuration file now binds to 127.0.0.1.
Slaves try to no longer expose stale data about already expired keys.
The RDB format changed. Redis 3.2 is still able to read 3.0 (and all the
past versions) files, but not the other way around.
Behavior on crash may be different. The crash log format changed and
the memory test executed is now different.
https://raw.githubusercontent.com/antirez/redis/3.2/00-RELEASENOTES
Related
Currently I have a single DC cluster with 3 nodes running 4.1.7 version of Scylla. This setup has been running for a long time and I don't want to make changes to this DC, if possible. Now I have a requirement to add another DC cluster with 3 nodes. Can I set up this new DC with the latest stable version of Scylla? Will the two DCs be able to communicate with each other without any issues? Or am I forced to upgrade the existing DC to the latest version?
Scylla supports rolling upgrades, which means you can indeed upgrade just some of the nodes in the cluster while the rest are still running the older version. The cluster should be able to fully work in this state - including the communication between old and new nodes. Not all upgrade paths are equally supported or have been equally tested, obviously, but most "interesting" upgrade paths (a newer release in the same major version, the next major version) are indeed supported.
That being said, while staying at a half-upgraded state for a long time is possible, it is not recommended. It also means that whatever new features or improved algorithms were introduced in the new version, the new nodes will need to avoid them until the full cluster is upgraded.
OSS 4.1.7 is a pretty old OSS release from Oct 2020. The assumption that you can add another DC running OSS 5.0 (latest OSS release from 10 days ago) to the existing cluster, is a bit of a risky one.
The supported upgrade path (QA tested) is from OSS 4.6 to 5.0. You can read more about the upgrade path here: https://docs.scylladb.com/upgrade/upgrade-opensource/
The tested upgrade route is via minor versions 4.1 --> 4.2 --> 4.3 --> 4.4 --> 4.5 --> 4.6 --> 5.0, jumping multiple minor version should work, but we can't say that it was tested.
We have run redis 2.6 (and now 2.8) for some time with good success.
Looking at 3.2, I have not spotted a migration document.
Can you suggest where to find a doc describing new/dropped/changed commands and other migration topics. I could not put a finger on it.
The most significant change between 3.x and 2.x is that since Redis 3.x, it supports cluster mode.
You can get other change lists from Redis 3.2 release note and Redis 3.0 release note.
I'm starting to use redis for my applications as a cache backend and "shared memory" store.
I've asked the servers maintenance team to install Redis on our CentOS 6.5 production environments. From EPEL, the version is 2.4.10, which we hope will upgrade in the future. Also, on our internal registry, we have a 3.0.7 available. The maintenance team would prefer the EPEL version.
I'm not quite sure of the differences between the versions. I haven't found a document listing major changes from 2.x to 3.0. Are there major features/ performance improvements/bugfixes in 3.0 that I MUST have?
My first guess is that 2.4.10 would be sufficient enough for my needs.
The most significant change from 2.x to 3.0 is that Redis 3.0 introduces Redis Cluster which is a distributed implementation of Redis.
You can also get change list (bug fix, new features and so on) of other versions from 00-RELEASENOTES file of each version: github link:
We are using Worklight enterprise 6.2 with fix packs and we are planning to upgrade to 6.3 in the next month (beginning of May 2015). However, we see now that IBM is about to release MFP 7.
Can you please clarify to me those queries:
What is the impact on the project which has been developed on version 6.2 to be moved to 6.3 or 7?
What is the recommendation for us in terms of upgrading, should we go immediately to WL7 or to 6.3 first?
We are very close to the production and our concern that the WL7 "might" be unstable or contains issues that we might face in a critical time."Feedback would be appreciated"
MobileFirst Platform Foundation 7.0 is not about to be released - it is already released.
Lots of changes in both 6.3 and 7.0. Read the documentation to see what's changed...
6.3: http://www-01.ibm.com/support/knowledgecenter/SSHS8R_6.3.0/com.ibm.worklight.getstart.doc/start/c_release_notes.html
7.0: http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.getstart.doc/start/c_release_notes.html
In terms of your project structure, starting 6.3 the adapter thread pool has been removed and you are now in complete control of it. Your adapter XML will be upgraded to the new structure.
In terms of technology, starting 7.0 there is REST support together with a new authentication mechanism - OAuth. Classic authentication is as before and is still there. There are also now Java adapters in addition to JavaScript adapters, and lots more.
7.0 is indeed new, but provides you with a lot of new possibilities.
6.3 is very stable (that is not to say that 7.0 is not stable, but it's also very new).
We cannot decide for you if to upgrade or not, it sounds like you are already considering the right things to consider.
Read about the two releases.
Is there a way we can specify the JDK version we are running on? Specifically, I have a java app (non webapp) that has an incompatibility with 1.6.0_35 and is erroring out for me on CloudBees. The package recommends 1.6.0_27, is that possible to specify at deployment time?
you can specify the version with -Rjava_version on the command line - however, fine grained versions are not available (as we tend to update those) - it is more just 1.6, 1.7 or 1.8 lineage. I would recommend in that case -Rjava_version=1.7.