Meeds-io / meeds

The Meeds Association provides its members with an employee recognition software implementation. The employee recognition software is fueled by the Meeds ERC-20 tokens.
https://meeds.io
GNU Lesser General Public License v3.0
281 stars 8 forks source link

[Gamification Crowdin] Performances problems #2303

Open rdenarie opened 1 month ago

rdenarie commented 1 month ago

Hi, Today, I had to upload translations files in crowdin. I upload all languages for file gatein-portal/web/src/main/resources/locale/portal/webui_*.properties

I select the option to approve all string. This generates a lot of event seen by crowdin connector.

Then, on eXo Tribe and on Builders, we can see a lot of logs like this : Builders :

2024-08-08 13:03:56,601 | INFO | Crowdin action approveSuggestion broadcast for user 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,628 | INFO | processEvent: senderId: 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,628 | INFO | processEvent: socialIdentity: organization:0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,628 | INFO | Crowdin action approveSuggestion broadcast for user 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,724 | INFO | processEvent: senderId: 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,725 | INFO | processEvent: socialIdentity: organization:0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,725 | INFO | Crowdin action approveSuggestion broadcast for user 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,753 | INFO | processEvent: senderId: 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,753 | INFO | processEvent: socialIdentity: organization:0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,753 | INFO | Crowdin action approveSuggestion broadcast for user 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,760 | INFO | processEvent: senderId: 0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:03:56,760 | INFO | processEvent: socialIdentity: organization:0x7f6b400def95a330744b2ca6adc13aaef5b64143 [i.m.c.g.services.CrowdinTriggerService]

On Tribe :

2024-08-08 13:10:17,622 | INFO | processEvent: senderId: romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:17,623 | INFO | processEvent: socialIdentity: organization:romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:17,623 | INFO | Crowdin action approveSuggestion broadcast for user romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,011 | INFO | processEvent: senderId: romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,011 | INFO | processEvent: socialIdentity: organization:romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,011 | INFO | Crowdin action approveSuggestion broadcast for user romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,443 | INFO | processEvent: senderId: romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,443 | INFO | processEvent: socialIdentity: organization:romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,443 | INFO | Crowdin action approveSuggestion broadcast for user romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,755 | INFO | processEvent: senderId: romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,755 | INFO | processEvent: socialIdentity: organization:romain.denarie [i.m.c.g.services.CrowdinTriggerService] 2024-08-08 13:10:18,755 | INFO | Crowdin action approveSuggestion broadcast for user romain.denarie [i.m.c.g.services.CrowdinTriggerService]

On tribe, it has some side effects : People application do not display any users, document app do not display nothing ...

It seems that the trigger uses a lot of resources of the eXo/meeds server

bourasom commented 1 month ago

tribe_20240808.zip threads dumps show 8 long running threads on this part:

at io.meeds.gamification.dao.RealizationDAO.getRealizationsByObjectIdAndObjectType(RealizationDAO.java:319) at io.meeds.gamification.storage.RealizationStorage.findRealizationsByObjectIdAndObjectType(RealizationStorage.java:66) at io.meeds.gamification.service.impl.RealizationServiceImpl.findRealizationsByObjectIdAndObjectType(RealizationServiceImpl.java:560) at io.meeds.crowdin.gamification.plugin.SuggestionApprovedTriggerPlugin.getEvents(SuggestionApprovedTriggerPlugin.java:65) at io.meeds.crowdin.gamification.services.CrowdinTriggerService.handleTrigger_aroundBody0(CrowdinTriggerService.java:104) at io.meeds.crowdin.gamification.services.CrowdinTriggerService$AjcClosure1.run(CrowdinTriggerService.java:1)

srenault-meeds commented 1 month ago

@AzmiTouil I guess it is related to something we have improved lately (Nginx conf?) or maybe something we are working on (payload optimization). Can you confirm?