-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ISICO-14427: Enable locking using Dynomite #150
base: master
Are you sure you want to change the base?
Conversation
redis-persistence layer.
ConnectionPoolConfigurationImpl.
ConnectionPoolMonitor cpMonitor = new DynoCPMonitor(appName); | ||
|
||
DynoJedisUtils.updateConnectionPoolConfig( | ||
cpConfig, hostSupplier, tokenMapSupplier, eurekaClient, clusterName); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
from where the hostSupplier is configured?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hostSupplier is initialized in line 81, i.e
HostSupplier hostSupplier = () -> Collections.singletonList(host);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what will happen to hostsupplier when we have more than one host configured in the RedisProperties file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there is a possibility of locking the workflowId which is already locked on restart.if the conductor is shutdown with the removing the lock on workflowId, then on restart there is a chance to lock the locked workflowId on retrying the workflow. please handle this scenario
to avoid duplicates.
availabilityZone to null. So that there is no localRack affinity and request get distributed.
replication latency.
release 3.13.3. Changes done in PR - Netflix#3351
LoopOverTasks was empty setting 'iteration' to 1 is not correct.
map. serialLoop1_0__.
Problem:
Netflix#3450
Solution:
Since Dynomite is the default persistence and queuing mechanism in Conductor, there should be an option to use Dynomite for locking as well.
Approach:
Created dyno-lock sub-project.
Default VotingHostsSelector implementation (VotingHostsFromTokenRange) considers all hosts. This will not work when hosts are used for replication as writing the lock in one node gets replicated in other nodes as well. So we need to to override this.