Optimise economy balance persistence#1333
Conversation
6c8e2c3 to
70dde0d
Compare
70dde0d to
a2a7db9
Compare
|
au lieu de sauvegarder tout les x temps, pourquoi tu save pas juste a la db au moment ou le plugin se desactive |
|
C'était marqué dans l'issue |
C’est déjà fait xd au L’autosave est volontaire en plus du shutdown save ça évite de perdre toutes les modifications depuis le démarrage si le serveur crash/kill ou si l’arrêt ne va pas jusqu’au bout. Et il ne sauvegarde pas tous les balances à chaque fois, seulement les UUID marqués dirty depuis la dernière sauvegarde :) |
|
Le serveur n'est pas cense etre kill ou crash, meme il ne sera jamais kill... |
|
Ben après il peut crash oui. Mais il est tjr éteint à 2h donc cv |
|
Même si le serveur n’est pas censé crash il peut crash mdrrrrr l’autosave limite la perte si ça arrive et dans tous les cas le coût en perf est faible on ne save pas tous les comptes seulement les dirty en batch |
|
Tu appelles quoi un compte dirty? |
|
Dirty = modifié depuis le dernier save DB |
|
Le probleme, est que la le lag a lieu lors de la premiere connexion des joeurs, c'est un moment que l'on avait fait avec 50bots de souvenir, et le lag venait du save a la db, donc la si je comprends bien, a un moment, le serveur va lag parcequ'il save toutes les donne dans la db a un moment x |
|
Fin et déjà pour qu'on valide le problème, il faudra que tu donnes un jar de ton plugin, on fait un teste avec 50-100 joueurs, et on attends jusqu'au moment où le scheduler s'exécute pour save la db, et on tentera |
|
Bon @gtolontop, si c'est pour faire du vibecoding sur le projet ce n'est pas la peine de venir faire une PR. |
|
Le satan qui se réveille avec le full vibecoding qui fait mal |
MDRRRRR, elle est vraiment niquel ma PR je vois pas le soucis + c'est pas du vibecoding mais j'avoue que mon code a une vibe très propre :) |
Très propre se vibecoding en tous cas |
Dis-moi, qu'aurais-tu fait différemment ? |
|
Donc pourquoi il y a ecris |
Honnetement, bcp de chose, mais si tu "ne vibecode pas" chaque developpeur fait differemment donc je n'aurais pas fait pareil que toi |
Tu mets tout sur le principe de la raison? Pourquoi ? |
|
Fin je dis pas ton initiative est bonne mais quand on voit le préfixe [codex], on a tout de suite moins envie de la merge, de plus tu as une très bonne connaissance du plugin. Tellement une bonne connaissance que tu ajoutes même des tests, des appels à OMCLogger (qui est totalement nouveau et que je doute que tu l'as vu sans une IA qui a codé). Fabuleux ! |
Voila a quoi je penses quand je vois ton message
|





Petit résumé de la PR:
Optimise la persistance des soldes économie en regroupant les écritures DB des balances modifiées.
Étape nécessaire afin que la PR soit fini (si PR en draft)
2.5.0à assigner)Fixes [BUG] Optimisation de EconomyManager.setBalance #1332
Decrivez vos changements
EconomyManagerécrivait en DB à chaque changement de solde viaplayersDao.createOrUpdate, notamment depuissetBalance,addBalanceetwithdrawBalance.Cette PR garde les soldes à jour en mémoire immédiatement, marque uniquement les comptes modifiés comme à sauvegarder, puis persiste ces comptes en batch avec
saveAllBalances():Le cache utilise aussi
computeIfAbsentpour conserver les nouveaux comptes en mémoire avant leur première sauvegarde. En cas d'erreur pendant la sauvegarde batch, les comptes concernés sont remis dans la liste à sauvegarder.