In the MongoDB backend, indexes are used to speed up queries against the document metadata. Due to how the metadata (e.g. touched, fetched) is structured, one index is created per stage.
MongoDB has a limit on the number of indexes per database: 64. This means running several pipelines with many stages will risk hitting the index limit.
Ideally, the index on document metadata should be per field. One solution could be to add a secondary metadata field per state (touched, fetched, etc) and make that a list of stage names. That can then have an index, making the indexes scale with the number of metadata fields instead of their values.
This will require changing the way the metadata is queried by stages, however.
In the MongoDB backend, indexes are used to speed up queries against the document metadata. Due to how the metadata (e.g. touched, fetched) is structured, one index is created per stage.
MongoDB has a limit on the number of indexes per database: 64. This means running several pipelines with many stages will risk hitting the index limit.
Ideally, the index on document metadata should be per field. One solution could be to add a secondary metadata field per state (touched, fetched, etc) and make that a list of stage names. That can then have an index, making the indexes scale with the number of metadata fields instead of their values.
This will require changing the way the metadata is queried by stages, however.