Gladys Assistant 4.45 : DuckDB, une révolution dans Gladys ! ⚡

Pour ma part, belle réduction de volume :


Capture d’écran 2024-08-28 à 18.29.10
Gros boulot, merci
:+1: :pray:

3 « J'aime »

Génial tout ça !! Sacré réduction pour tout le monde

2 « J'aime »

Allez, à mon tour de livrer mes stats de migration :

  • Presque 17 millions d’états
  • 2h de migration
  • 33h de purge des états sqlite
  • Base avant migration : 13.9 Go
  • Base après migration : 89 Mo (-99.4%)
  • Sauvegarde Gladys plus avant : 3.35 Go
  • Sauvegarde après : 86 Mo (et elle se fait en quelques secondes !)
    C’est impressionnant :muscle:
3 « J'aime »

@pierre-gilles c’est peut-être l’occasion de proposer un petit article de blog/promo pour/avec DuckDB, non ?

1 « J'aime »

J’imagine que c’est prévu ! :sunglasses:

Bonsoir, migration faite aussi voici les résultats :
Avant :


Après :


Terminé

Beau boulot, j’ai hâte ma BDD fait plus de 10Go !
Pour le moment, je suis bloqué malheureusement. C’est peut être lié au raspberry pi 3 ou alors une donnée moisie en bdd.

C’est l’erreur que j’ai et qui fait cracher le serveur si ça parle à quelqu’un :

2024-08-29T01:20:36+0200 <info> device.migrateFromSQLiteToDuckDb.js:39 (DeviceManager.migrateFromSQLiteToDuckDb) DuckDB: Migrating data from SQLite
node: ../src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp:47: void duckdb::aggr_ht_entry_t::SetPointer(duckdb::data_t* const&): Assertion `(reinterpret_cast<uint64_t>(pointer) & SALT_MASK) == 0' failed.

En parallèle je vais faire un test sur un autre serveur plus rapide et avec un backup plus vieux de ma bdd.

En effet on dirait qu’une donnée dans la BDD pose problème :confused: là faut que quelqu’un de plus expert te réponde, moi je n’en sais trop rien !

De mon côté la réduction est toujours aussi spectaculaire :
image

Incroyable ! Merci d’avoir partagé :pray:

C’est prévu ! Pour l’instant je faisais un lancement « français » uniquement auprès des utilisateurs existants, histoire de voir si tout tourne bien chez tout le monde, et avoir des statistiques à partager.

Ensuite, j’attaque le lancement « international », et je vais publier sur Twitter en tagguant DuckDB cette fois-ci afin qu’ils re-partagent. Je verrais ensuite avec eux si Gladys peut faire l’objet d’un cas d’usage dans leur communication.

Enfin, la phase 3 c’est de titiller un peu frontalement Home Assistant sur ce point, car on a maintenant un vrai avantage compétitif sur Gladys sur le core.

Je suis allé sur le forum HA pour voir, et les problèmes de tailles de DB sont un souci récurrent, les utilisateurs ont les mêmes soucis que nous ici, ce qui est logique vu qu’ils utilisent SQLite actuellement par défaut. Certains utilisateurs utilisent InfluxDB, mais ça reste quelque chose à configurer en plus, le défaut reste SQLite (MariaDB/PostgreSQL configurable, mais avec les mêmes soucis d’espace disque que SQLite)

Concernant la migration à DuckDB côté HA, ils n’y sont clairement pas. J’ai vu que @McFlyPartages avait créé un sujet sur leur forum, et ça n’a pas vraiment pris pour l’instant. C’est la seule mention de DuckDB sur tout leur forum…

Bref, on est très en avance, et je compte bien en profiter :smiley:

Génial :star_struck:

Incroyable !

Tu es sur un Raspberry Pi 3 avec un OS 64 bits ? Si tu es sur un OS 32 bits, ça ne marchera pas je pense. Il faut bien être en 64 bits.

C’est dingue :star_struck:

2 « J'aime »

Le post Twitter anglais:

A vos RT/like :smiley:

4 « J'aime »


Ouch !! C’est long les build … avec DuckDB …^^

Yes, si c’est juste pour toi et que tu veux t’économiser 99% du temps de build, build juste pour les plateformes dont tu as besoin (amd64 c’est en quelques minutes par exemple)

Le build qui prend le plus de temps c’est celui en arm/v7, je ne crois pas que tu ai d’appareil en arm/v7… ^^

1 « J'aime »

Tu es sur un Raspberry Pi 3 avec un OS 64 bits ? Si tu es sur un OS 32 bits, ça ne marchera pas je pense. Il faut bien être en 64 bits.

Linux rpi3 6.6.31-v8+ #1766 SMP PREEMPT Fri May 24 12:14:10 BST 2024 aarch64 GNU/Linux

J’ai partagé la migration sur le Reddit Node.js ! Tout upvote est le bienvenu :slight_smile:

https://www.reddit.com/r/node/comments/1f3z6jh/migrated_our_nodejs_app_from_sqlite_to_duckdb_and/

Ok ça l’air bon. c’est peut-être une donnée foireuse dans ta base, tu pourrais inspecter un peu ta DB SQLite ? Voir si il n’y a pas des données qui en sont pas des double dedans ?

ça se trouve tu as un « string » qui s’est glissé dans ta table, d’où l’erreur de cast

2 « J'aime »

Ah top merci, oui en effet c’est Gladys pour la partie professionnel avec mes modifications pour retirer l’acces a plein de page si pas admin !!

Au top !! C’est fait !!

1 « J'aime »

Bonjour,
Je suis sur le chemin du retour de vacances et constate sur mon mobile que la migration mouline.
Je n’ai rien modifié sur le système et les dernières sauvegardes sont passées de 11 % à 17 %. La mise à jour de la dernière version indique bien 4.45

1 « J'aime »

Félicitation pour cette version :clap:.
Base SQLite : 37 Go
Base DuckDB : 272 Mo
Une économie supérieure à 99% :star_struck:
La purge SQLite a été longue (plus de 12 heures).
Encore bravo.

2 « J'aime »

image

Félicitations pour ce super travail !

1 « J'aime »

Génial :star_struck:

C’est fou ! De rien :raised_hands: