Sanne Grinovero Why only for new schema? The schema merging purpose is upgrading an existing schema, and it's not unthinkable that this schema may involve new analyzers. From experience, I'd say it's not frequent, but it happens. And it's very nice to not be forced to drop the indexes every time we add a new schema with a new analyzer (with some applications it might take quite some time to reindex). Anyway... I'm talking about development use. If using the "schema merging" with analyzer upgrades is not a valid use case in production mode, we could simply advertise this as unsupported. The use cases we have are:
- The Infinispan dynamic schema modifications. If I understand correctly, it never changes the analyzers after the initial schema creation.
- The "developper mode": merge the schema modifications and analyzer definitions when restarting an HS application. Since it's development mode, we can reasonably say "just use one application".
- Restart of a cluster of HS application in production. I'd say a warning about using the MERGE strategy in that case would be enough, and IIRC there already is one in the documentation.
- Full-scale automated testing of multi-node HS applications, maybe? Probably the same solution
- Others?
I agree some stress tests may be nice, though I don't have experience setting up such tests. And I'm not sure how hard it would be to generate the race conditions. But I can try to look into it someday. |