@fnimi
Yes a write lock is still created when you use version control. So you'll still deal with read request stacking up until all jetty threads are full resulting in the 503. The large commit has to be completed successfully before status within NiFi Ui can reflect the current version control status on the Process group. Version controlled process groups also remove parses the json to remove all sensitive properties. Version controlled dataflows can also contain parameter contexts if used and controller services they utilize making them even larger.
Having 1000+ components in a single version-controlled Process Group is considered an anti-pattern in NiFi. It makes version control, deployments, and UI responsiveness incredibly slow. Version controlled flow are meant for easy reuse or re-deployment to other NiFi clusters. Version controlling such large flows reduce the reusability of them.
Modularize your Flows (Nested Versioning) Instead of versioning the top-level Process Group that contains everything, break your flow into smaller, logical, nested Process Groups (e.g., 50–100 components each). Avoid versioning a PG within a PG that is already version controlled.
- You can version control these smaller Process Groups individually.
- This drastically reduces the serialization time, lock duration, and payload size sent to the Registry.
Please help our community grow. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped.
Thank you,
Matt