-
Notifications
You must be signed in to change notification settings - Fork 9.4k
Improve attribute checking #11554
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
Improve attribute checking #11554
Conversation
On a store with a large number of attribute sets, a lot of repeated checking is done for the same attributes. So instead we can keep track of the attributes we already checked, and skip them the next time.
Hi @FreekVandeursen |
Hi @ishakhsuvarov, I'll need to do some work to reproduce the situation in which I noticed the performance problems here. So I cannot give you exact numbers immediately. But to give you a rough estimate: on a product catalog with around 500 attribute sets (and no products yet), checking a csv file would take around 15 min. on my development machine, before it would even reach the row validation. With this change, it was under a minute. But if you're interested, I can reproduce the same situation to give some more exact numbers. |
@FreekVandeursen |
I'll try to reproduce the previous scenario tomorrow and give you an update on the results @ishakhsuvarov |
Hey @ishakhsuvarov , I've set up a scenario on my laptop to reproduce this issue. The csv I used to test this only contained a single row, with 2 columns. So the big delay is in the initialization phase of the checking, not in the actual row validation itself. |
Good morning @ishakhsuvarov, Do you need any additional information from me regarding this issue, or is this enough to test/review/merge the pull request? |
@FreekVandeursen Thank you for the update. We are going to continue with evaluation and let you know if we have any additional questions. |
@ishakhsuvarov @okorshenko Any news about this issue? Is there anything preventing the testing and merging of this? |
Hi @FreekVandeursen Looks like after your changes AttrSet#3 will not be added to $this->_attributes (via method _addAttributeParams()) because $unknownAttributeIds will be empty. I think this could be a functional issue. Have you checked this case? Let me know if you need more details from me. |
hi @AVoskoboinikov , |
hey @AVoskoboinikov , |
Hi @FreekVandeursen |
…to2ce into performance/import-attribute-validation
@FreekVandeursen Unfortunately there are still some integration tests failing on this Pull Request. Could you please check those? |
Hi @ishakhsuvarov . Is there still any serious interest in this change? See the history above. Every time I fix or answer something, the thread then sits waiting for a couple of months. If that is how it will continue to go I would prefer to just close it and forget about it. But if there's still serious interest I will of course see why the tests fail although they passed before. |
Hi @FreekVandeursen Thank you |
No problem @ishakhsuvarov , I will take a look at it to see what needs to be fixed. It might take me a couple of days before I have time for that though. |
Hi @FreekVandeursen. Thank you for your contribution. Please, consider to port this solution to 2.3 release line. |
Hi @FreekVandeursen |
On a store with a large number of attribute sets, a lot of repeated checking is done for the same attributes.
Description
Instead of repeating the checks every time, keep track of the attributes that have already been checked and should be skipped (invisible). This we way we don't have to do the same check for the next attribute set.
Fixed Issues (if relevant)
Manual testing scenarios
With this change the checking phase will be much faster than without the change, without any functional change.
Contribution checklist