cap-js / change-tracking

CDS plugin providing out-of-the box support for automatic capturing, storing, and viewing of the change records of modeled entities.
https://cap.cloud.sap/docs
Apache License 2.0
18 stars 7 forks source link

Performance Issues with draftActivate #30

Open Kkoile opened 11 months ago

Kkoile commented 11 months ago

We encountered severe performance issues when activating a draft with sub entities, because of change-tracking plugin.

If a composite object with multiple sub entity instances is activated, each instance is read one by one from the database. See https://github.com/cap-js/change-tracking/blob/main/lib/entity-helper.js#L34 This leads to drastic performance issues in case there are a lot of sub entity instances. We encountered this, because a customer created 1000 sub entity instances and it took around a minute to activate the composite. Without having change-tracking plugin enabled it takes a fraction of a second.

I expect that db requests are reduced as much as possible and instances of one entity are read all together instead of a single instance basis.

nkaputnik commented 11 months ago

Hello Nils, we are aware of the subsequent database reads and will try to remove this behavior in subsequent iterations. Please be aware that this initial release is an early adoper release and should not be used yet in productive use. Our intention is to gather as much feedback as possible to validate design, performance and scope, so we will be happy to listen to all incoming feedback for the next iteration. Since this is an open source project, you're also welcome to contribute yourself and provide solutions to such issues.

Best, Nick

dinurp commented 10 months ago

Dear Nick (@nkaputnik ), You mention that this (v 1.03) is an early adopter release. Versioning with 1.x for an early adopter release is rather misleading. Could you please mention this in the documentation and share if there are any plans to production release. Regards, Dinu

Kkoile commented 4 days ago

Hi Nick (@nkaputnik ),

almost a year has passed and unfortunately the issue still exists. Do you still consider this plugin as "not ready for productive use"? It would be great if you could increase performance for draftActive as this is a show stopper for us using this plugin.

Thanks, Nils