Skip to content
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

Investigate further optimizations of process definition importing #3636

Open
chillleader opened this issue Nov 12, 2024 · 1 comment
Open
Labels
kind:task Categorizes an issue or PR as general maintenance, i.e. cleanup, refactoring, etc.

Comments

@chillleader
Copy link
Member

chillleader commented Nov 12, 2024

What should we do?

We are currently polling Operate every N (configurable) seconds to update the process definition registry in the Connector runtime. This causes high data usage between Operate and ElasticSearch as Operate needs to fetch all process definitions for every polling request.

We can optimize this process by storing the pagination index in memory inside the Connector runtime and only poll for the next page, instead of starting from scratch every time.

Besides, we should investigate if it is possible to further optimize how the connector runtime imports and analyzes process definitions. Some ideas:

Can we add a quick check for the BPMN XML to determine if it contains any connectors before parsing the process model?

Why should we do it?

  1. We received customer complaints about excessive data usage between Operate and Elastic caused by this polling.

  2. From time to time, we are encountering issues in the clusters that have an abnormal amount of process definitions deployed, which causes delayed startup time and OOM errors.

@chillleader chillleader added the kind:task Categorizes an issue or PR as general maintenance, i.e. cleanup, refactoring, etc. label Nov 12, 2024
@sbuettner
Copy link
Contributor

As discussed we cant "just" use pagination due to the way pagination works in elastic right? Could you raise this with the REST API folks?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:task Categorizes an issue or PR as general maintenance, i.e. cleanup, refactoring, etc.
Projects
None yet
Development

No branches or pull requests

2 participants