rodolphe,

Comment se passer de Redis et de ses dérivés ? Et bien tout simplement en utilisant PostgreSQL. C'est ce que j'ai fait pour un projet personnel et cette approche m'a vraiment convaincu. Un article pour voir comment je m'y suis pris pour revoir le stockage de mes données volatiles.

https://rodolphe.breard.tf/article/postgresql-pour-remplacer-redis/

mtparet,
@mtparet@famille.social avatar

@rodolphe du moment que c'est pour du hobby il n'y aura aucun soucis, ensuite dès que c'est sur une prod qui aura plus que 3 gus dans un garage, bon courage avec des tables complètement bloated :D

rodolphe,

@mtparet Franchement, j'ai de très gros doutes sur l'apparition de problèmes avant d'atteindre des tailles assez monstrueuses qui dépassent ce que gèrent 99% des boites. Mais ok, je vais faire un benchmark afin de mettre à l'épreuve nos opinions respectives.

rodolphe,

@mtparet Ok, donc j'ai balancé 1 million d'entrées dans chacune des deux tables, UUIDv4 dans l'une et UUIDv7 dans l'autre. Puis j'ai benchmarké, dans chaque table, le select 2000 entrées existantes puis 500 inexistantes. Temps total pour ces 5000 requêtes sur mon laptop : dans les 200 ms. Avec PostgreSQL hein.

Bref, c'est pas ce que j'appelle 3 gus dans un garage et vu les perfs je n'en ai pas grand chose à faire de Redis qui doit très certainement faire encore mieux.

mtparet,
@mtparet@famille.social avatar

@rodolphe il faut faut les supprimer ces 1 millions de lignes et les recréer 100X de suite et là ce sera intéressant. (1 millions de tâches par jour c'est assez classique dans des boîtes de tailles moyennes)

rodolphe,

@mtparet Ce n'est absolument pas ce que je constate dans les entreprises, et pourtant il y en a un bon nombre qui ont le déplaisir de ma visite.

mtparet,
@mtparet@famille.social avatar

@rodolphe j'ai fait 4 startup en 13 ans, c'était le cas à chaque fois.

rodolphe,

@mtparet Et moi ça fait près de 4 ans que j'enchaîne les contrôles d'organismes divers et variés, de l'entreprise individuelle à la multinationale, de la commune au ministère. Bref, des systèmes d'information j'en ai vu de toutes sortes, et au final ceux qui doivent gérer des milliers de requêtes par seconde il n'y en a pas tant que ça.

lutindiscret,
@lutindiscret@mastodon.libre-entreprise.com avatar

@rodolphe je me demande si y'aurait pas moyen de gérer requête + ménage en une fois avec une MERGE. Au lieu de SELECT, tu MERGE (au passage, ça peut prolonger la vie du token), le MERGE permet de DELETE la ligne expirée si c'est le cas 🤔

Chez @codelutin on a travaillé à un banc-d'essai pour substituer des . Oui, faut faire gaffe, faut mesurer mais je suis d'accord avec toi que la plupart du temps, on a pas besoin de temps de réponses si exigeant : les goulots sont ailleurs...

rodolphe,

@lutindiscret @codelutin Ça doit être possible dans certains cas, mais ça ne l'est pas forcément dans d'autres. Par exemple, pour les jetons à usage unique tels que les jetons CSRF, je ne fais aucun SELECT mais uniquement un DELETE et je regarde le nombre de lignes d'impactées (s'il y en a une c'est que le jeton était valide, zéro c'est que le jeton ne l'était pas). De plus, faire le ménage à chaque requête revient à le faire plus souvent lors des pics d'activités alors que je souhaiterai faire l'inverse.

mtparet,
@mtparet@famille.social avatar

@rodolphe le bloat arrive quand on commence à supprimer des entrées

lutindiscret,
@lutindiscret@mastodon.libre-entreprise.com avatar

@mtparet je comprends ton point mais c'est pas le rôle du VACUUM justement faire le ménage régulièrement ? S'il est bien réglé je vois pas pourquoi ça merderait d'autant que @rodolphe utilise du UUID v7 qui est séquentiel

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • mdbf
  • ngwrru68w68
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • osvaldo12
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • InstantRegret
  • tacticalgear
  • anitta
  • ethstaker
  • provamag3
  • cisconetworking
  • tester
  • GTA5RPClips
  • cubers
  • everett
  • modclub
  • megavids
  • normalnudes
  • Leos
  • JUstTest
  • lostlight
  • All magazines