On 17.12.2013, at 23:12, Carsten Ziegeler <[email protected]> wrote:
> The bundle can either set a marker in the repository That's probably something we should avoid. The question is where? And why? > or a file in the > bundle private date; Sounds better. > the repository is the better place as this can be used > in a clustered installation to avoid duplicate or concurrent migration The migration must be idempotent and easily will be: it finds the dictionary nodes that only have mix:language but no sling:dictionary yet. If these all have a sling:dictionary it simply does nothing and sets the "migrated" flag. Thus this will run on startup for each cluster node, is a single query as we have now, and doesn't cost anything. Better yet, it runs lazy on the first request access, thus it should avoid concurrent migrations quite well. Anyway, these can be handled by retrying when a ItemModifiedException comes up (or whatever the exception is called). Cheers, Alex
