Optimisation des requêtes pour l'économie#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 ? |
|
https://spark.lucko.me/xOiSgERLyM avec 50joueurs @iambibi |
T'es sûr d'avoir attendu le save des économies ? |
|
j'ai attendu 5minutes |
|
Y'a pas de bugs? Les joueurs ont bien leur thune de save? |
Oui j'ai déjà tester xd |
|
Mockito fera l’objet d’une autre PR, c’est ce que je voulais dire. Concernant ta réflexion, tu dois la retirer : soit tu arrives à remplacer les tests avec l’API actuelle (ce qui serait idéal), soit tu trouves une autre approche. |
|
C’est traité dans le commit juste au dessus J’ai retiré la réflexion du test y'a plus de vous pouvez testez avec ./gradlew test --tests fr.openmc.core.features.economy.EconomyManagerDirtySaveTest --no-daemon --rerun-tasks |
|
Attente de review |
|
y'a beaucoup de test pour "rien", puis le fait d'ecrire en dur les requêtes sql j'vois pas le principe |
Fin les tests ne servent pas a rien, mais la actuellement sur le projet presque rien a des implémentations d'unit test. Et c'est vraiment inutile de faire des tests où tu commences à faire des codes hyper sombre.
|
|
j'voulais pas dire que les testes ne servent a rien, mais que dans le cas de ce projet, autant de testes servent a rien |
|
Fermeture de la PR dans 1 semaines si aucune réponse :
|
|
dernière chance avant d'être décaler à la 2.5.0-beta-2, (avant 18h) |
…ce-save # Conflicts: # src/main/java/fr/openmc/core/features/economy/EconomyManager.java
|
J'ai repris les trois points du dernier retour et poussé une version simplifiée, après merge de
La branche n'est plus en conflit avec |
C'est sur que c'est plus compréhensible et puis c'est sur que ça marche, le serveur s'éteint tout le temps à 2h, si y'a un crash il peut rollback de 24h, si y'a un crash |
|
Je retrouve pas ton message sur le statut des tests, je pense que c'est normal qui plante j'ai update en 26.2 mais mock bukkit n'était pas encore sorti en 26.2, j'irais voir |
|
MockBukkit/MockBukkit#1592 |
iambibi
left a comment
There was a problem hiding this comment.
juste un petit if (bool) return a faire au lieu d'un scope (une question de préférence de ma part, je trouve que ça fait plus clean) prévients moi des que tu as fais le changement que je merge ta PR. tt le reste est niquel



Petit résumé de la PR
Optimise la persistance des soldes économie en supprimant les écritures DB à chaque modification et en regroupant la sauvegarde à l'arrêt de la feature.
Étape nécessaire afin que la PR soit finie
2.5.0à assigner)Fixes #1332
Changements
addBalance,withdrawBalanceetsetBalancemodifient uniquement le cache en mémoire ;Feature.save()persiste tous les soldes avecORMLite.callBatchTasks()lors de l'arrêt ;synchronizedou SQL écrit à la main ;0sans créer de compte dans le cache ;Validation
compileJavapasse avec Java 25 sur la branche mise à jour avecmaster;401 Unauthorizedsurmockbukkit-v26.2:4.114.0).