<div dir="ltr">900 seconds is probably ok, but what happens if the node holding the lock dies?</div><div class="gmail_extra"><br><div class="gmail_quote">On 7 March 2016 at 11:03, Marek Posolda <span dir="ltr">&lt;<a href="mailto:mposolda@redhat.com" target="_blank">mposolda@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send PR with added support for $subject .<br>
<a href="https://github.com/keycloak/keycloak/pull/2332" rel="noreferrer" target="_blank">https://github.com/keycloak/keycloak/pull/2332</a> .<br>
<br>
Few details:<br>
- Added DBLockProvider, which handles acquire and release of DB lock.<br>
When lock is acquired, the cluster node2 needs to wait until node1<br>
release the lock<br>
<br>
- The lock is acquired at startup for the migrating model (both model<br>
specific and generic migration), importing realms and adding initial<br>
admin user. So this can be done always just by one node at a time.<br>
<br>
- The lock is implemented at DB level, so it works even if infinispan<br>
cluster is not correctly configured. For the JPA, I&#39;ve added<br>
implementation, which is reusing liquibase DB locking with the bugfix,<br>
which prevented builtin liquibase lock to work correctly. I&#39;ve added<br>
implementation for Mongo too.<br>
<br>
- Added DBLockTest, which simulates 20 threads racing for acquire lock<br>
concurrently. It&#39;s passing with all databases.<br>
<br>
- Default timeout for acquire lock is 900 seconds and the time for lock<br>
recheck is 2 seconds. So if node2 is not able to acquire lock within 900<br>
seconds, it fails to start. There is possibility to change in<br>
keycloak-server.json. Is 900 seconds too much? I was thinking about the<br>
case when there is some large realm file importing at startup.<br>
<br>
Marek<br>
_______________________________________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
</blockquote></div><br></div>