L’efficacité énergétique des medias de stockages

Bonjour,

Je vais parler de l’efficacité énergétique dans les systèmes de stockages. Ici je vais faire de grosses approximations. Merci pour votre compréhension.

Énergie

L’aspect le plus évident c’est que si il y as moins de consommation énergétique, les machines tire moins sur les factures d’électricité. Cela permet d’avoir moins d’émission de chaleur, ce qui allonge la durée de vie de ces derniers.

Les pics de consommations crée des problèmes divers tel que la difficulté sur les systèmes embarqué de lancé le hdd par manque de puissance, … cela oblige de concevoir le buffer avec la consommation max qui peu être trés différente de la consommation réel.

Les performances

Le système d’exploitation considere une données écrite quand elle à été envoyé au hdd. Car même en cas de coupure, le hdd doit avoir assez d’énergie accumulé pour écrire ce qu’il as dans le buffer. Plus le disque est performant, plus le buffer pourra être grand. Plus le buffer sera grand, plus le disque pourra minimiser les changements de place de la tête de lecture pour optimiser ces déplacements.

Ce qui est intéressant dans les SSD et la nouvelle génération 3D XPoint c’est que l’énergie consommé est contante et bien plus basse. Ce qui permet de faire des buffers bien plus gros, ce qui dans ces proportion permet aussi de de plus écrire simplement plein de petit bloque mais de les groupes en super bloques (optimisation des technologie flash et augmentation de leur duré de vie).

 

Il faut encore adapter un certain nombre de couche logiciel pour prendre en compte certaine particularité comme le multi-queue. Mais l’impact énergie<->performance est relativement transparent.

Prepared statement in C

Hello,

I have not found any real code to prepared statement in C for PostgreSQL.

Then I have do it:
prepared_statement.c on CatchChallenger code

Prepare, mean: fix, optimise and cache the execution plan, this prevent any change to execution plan and improve the security too

Cheers,

PS: inspired by http://zetcode.com/db/postgresqlc/

Nvidia gp104 gpu die

Datacenter sur GPU

Bonjour,

Avec l’arrivé de HSA, de CPU avec beaucoup de coeur, l’exploitation de GPU via des binaires, … et pour ne pas avoir de point de congestion, il deviens intéressant de mettre non pas toutes les vm sur tout les CPU, mais les vm sur un groupe de CPU définit, cela améliore la localité des données réduit la bande passante inter-coeur (seul les CPU proche communique), réduit les changements de contexte (moins de bande passante mémoire et une meilleure mise en cache dans le L1/L2 du cpu) et limites les ressources de la vm sans surcharge d’un ordonnanceur devant gérer les taches en compétitions.

Les GPU ont facilement 4000 coeur, mips I-Class I6500 aura 384 coeur, donc nous allons vers des hébergements moins puissant en mono-coeur, mais plus puissant en multi-coeur, ce qui ne vas pas sans crée des problèmes quand les personnes demandes pourquoi leur site (mal optimisé) est plus lent (sur une page).

Je suis encore sur le développements des concepts:

http://catchchallenger.first-world.info/wiki/Virtual_machine_on_GPU

Par exemple un noyau maitre (GNU/Linux) et des noyaux esclaves gérant leur zone (hdd via 3gp ou NFS, …).

Voir cela comme un réseau locale de serveurs, répartir la charge de tout les sites sur tout les serveurs pour essayer d’exploiter tout les cpu n’as pas de sens, il faut envoyer toutes les données sur tout les serveurs, les traiter, les fusionner, … changement de site, tout recharger, saturation du réseau, …

C’est mieux de mettre un groupe de site par serveurs.

C’est la même chose en local dans un GPU, un serveur multi socket. Sans parler des études démontrant que la bande passante mémoire par cpu diminue pour avoir plus de cpu.

Nvidia gp104 gpu die

En programmation en multi-CPU, on utilise en générale des verrous/entier atomiques, ce qui deviens rapidement pénalisant et empêche l’exploitation du multi-coeur.

Si par contre la base de donnée est sur un coeur et l’application (page web php?), ce sont des queues nativement qui sont utilisé (Socket TCP, Socket Unix) ce qui permet d’éviter les blocages pour attente de la mémoire principal. Les taches (traitement sur les données) sont vraiment indépendante, et une tache pas codé (php lent) ne ralenti pas le hardware.

L’exploitation du multicoeur au niveau de l’hébergement n’est pas la même que au niveau du logiciel. Elle demande un minimum de bon sens. Certain diront: je veux tout les CPU sur toutes les machines virtuelle, même si le prix est peu de performance… d’autre: je veux pas optimiser mon site web, le hardware doit me donner plus de puissance, …

L’exploitation commercial de ces concept ce traduit en bolivie avec l’ouverture de mon datacenter avec 50 serveur pour commencer avec une architectures traditionnelle, mais surement l’exploitation de mips I-Class I6500, GPU ou Cavium ThunderX. Le tout en linux et 100% libre, sans routeur administrable mais avec tout les functions de ces derniers via la virtualisation vm et réseau et du PaaS (VPS). Au programme IPv6, tunneling + compression, pearing et industrialisation maximum comme ovh.

Performance de serveur http sur arm64 en debian stretch

Bonjour,

Performance de serveur http sur arm64 en debian stretch

Performance de serveur http sur arm64 en debian stretch

Benchmark fait dans un vm LXC, sur un Odroid C2

Pour sa conception, CatchChallenger est 10x-100x plus rapide…

Bye

Zstandard 1.0

Bonjour,

La version 1.0 de Zstandard (ou zstd) est sortie. Elle se définie elle-même avec:

Zstandard est un algorithm de compression temps réel, fournissant de haut ratio de compression. Il offre une large gamme de compromis compression/vitesse, tout en étant soutenu par un décodeur très rapide (voir benchmarks). Il offre aussi un mode spécial pour les petites données, appellé compression par dictionaire, et peu crée un dictionaire depuis n’importe quel échantillon. La bibliotéque Zstandard est fourni comme logiciel libre sous la license BSD.

Le ratio de compression est proche de zlib qui est la référence en terme de compression. Elle est développer depuis longtemps par l’entreprise Facebook. Mais elle as des vitesses de compression et décompression bien meilleur que zlib. Ce qui pour moi la place comme bonne concurrente pour être le standard de compression des 30 prochaines années. De meilleur standard de compression veut dire une meilleur qualité de navigation et moins de ressources serveurs, et donc moins de coût pour Facebook et tout autre entreprise utilisant ces standards.

Son ouverture et interopérabilité avec une liste impressionnante de language vont participer fortement à son utilisation. Son utilisation pour le streaming est bonne car la compression est très efficace sur les petit contenu de données.

Je ne prévois pas changer CatchChallenger dans un futur proche, car bien que super, ce standard obligerai a refaire le packaging, le protocole, et la compression est peu utilisé dans le coeur du protocole de CatchChallenger (données vraiment trop petite ou non compressible).

Faite vous votre avis.

Petite idée

Bonjour,

 

Question: Si on est capable de de faire un objet à partir de sa photo et deviner un objet à partir de son ombre. C’est possible de reconstruire une personnalité à partir son son empreinte dans le big data?

Et donc par extension réussiter une personne en mettant sa personalité reconstituer dans un corps mécanique?

Bye,

Tar and gzip

Le format TAR

Le format TAR

Pourquoi je l’utilise? Car c’est un format libre, ce qui garantit l’interopérabilité. Cela est important car cela me permet d’avoir toujours un logiciel pour faire et lire l’archive, sans license ou redevance. Cela permet d’encoder un tar sous Windows, Linux, Mac. Le faire ma propre lib pour le lire (donc réduire la taille du code car je limite les fonctionnalités à ce que j’ai besoin).

Tar and gzip

Tar and gzip

Cela me permet de découplé le format de stockage et la compression en elle même. Utiliser le format Tar avec gzip, zlib ou autre.

Comment est fait un Tar?

Vous avez les données, le contenu des fichiers. Et les métadonnées, nom, chemin, chmod, utilisateur, groupe, date de creation… Le format Tar tar fonctionne par bloque, les trous entre les bloques sont remplit par des 0 binaires. Le format est orienté stockage sur bande, il date de 1979 (normalisation 1988) mais eu des revisions entre temps.

Le fait de ne pas faire une bête sérialisation peu être gênant pour les systèmes de compression car il y as un trou de X 0 binaire. Cela rajoute du bruit, ce qui est problématique pour optimiser la compression. Si en plus l’on rajoute le faite que les entier sont stocké en chaine, ce qui réduit encore le ratio de compression comparé au binaire (voir: Compression et Binary dans le wiki de CatchChallenger). Cela réduit aussi les performances de l’encodeur et décodeur Tar de travailler en chaine et non pas en binaire (sans parler des limitations de la longueur des nombres représentés).

Un format mieux étudié pourrai avoir une taille bien inférieur sans compression et un meilleur ratio de compression.

Supprimer des meta données serai une bonne idée. Par exemple dans mon décompresseur je ne prends en compte QUE le fichier et son nom et j’ignore une grande partie et méta données: chmod, utilisateur, groupe, date de creation…

Conclusion

Je vais continuer à utiliser Tar dans le cadre de mes logiciels pour faciliter la création de plugin pour Ultracopier/Supercopier et pour l’intégration facile coté serveur dédié (99% de unix) pour CatchChallenger via un mirroir http (car pour le self hosting il y as déjà un rsync simplifié qui rends toute utilisation de Tar inutile).

Faire mon propre format n’est pas un probléme, le probléme serai de faire/maintenir et distribuer l’encodeur et le décodeur pour ce format.

Révolution dans le cinema

Bonjour,

Je souhaite vous toucher 2 mots sur l’évolution du cinema dans les prochaines années.

Quel est le meilleur moyen de réaliser un film? Lire un script, vous imaginer le film, enregistrer votre représentation.

En intelligence artificiel les modèles génératifs sont là pour cela. Il permet de tout faire, sans moyen, juste avec de l’imagination. Ce qui coupe fortement les couts de production, et ce qui vas tout changer dans l’industrie du cinema. Mais particulièrement dans l’industrie des films pour adultes (tabou de société).

Je laisse juste cette note publique pour en rire ou dire que j’avais raison dans quelques années.

Les loies anti-piratage

Bonjour,

Je suis acteur dans le copyright comme dans le copyleft. Laisser moi vous faire imaginer quelques situations:

  • Les vendeurs de roses dans la rue porte plainte contre les sites de rencontre en ligne (car il ne vendent plus à cause d’eux). Il estime qu’il y a un vendeur de rose par rue, avec le nombre de rue, il estime que les sites de rencontre en ligne leur doivent 300 millions d’euro. Cela est ridicule, surtout que après les sites de rencontre peuvent demander des dommages (coupure des sites, images et réputation). Et cela sans chercher a travailler ensemble.
  • Si les intermédiaires techniques peuvent couper le contenu qu’il héberge, sans jugement, les sites de torrent peuvent/doivent demander la coupure des sites d’holywood. En cas de réponse négative il ne sont pas tenu de réagir. Pourquoi holywood ne prends pas la peine d’éduquer (sans criminalisé: si les prix sont trop haut pour vous, nous allons nous couler, mais nous décidons du prix) et de contacter directement les gens?
  • Si les intermédiaires techniques sont responsabilisé sans raison, alors ovh, amazon, google sont coupable
  • Je dit non au procès pour l’exemple (c’est le contraire du mot justice). Je dit oui comme intermédiaire technique à essayer de voir comme satisfaire tout le monde (button: reporter ce contenu illégale, à condition que ce soit pas abusif: comme youtube qui supprime une video pour quelque secondes de contenu sous copy right). Et donc non à la justice a deux vitesse (si une personne c’est fait pirater sont wifi elle vas en prison pour téléchargement illégale: bon moyen d’envoyer sont voisin en prison, si le ministre ou le président fait du téléchargement illégale cela ne s’applique pas: ca leur rapporterai beaucoup pourtant…).
  • J’ai 100 pain pour 100 personne, je vends mon pain 10 000€. La creation du 1er pain m’as couté 100€, les autres sont des copies qui ne me coûte rien. Personne ne peu l’acheter et je subit des vols (les besoins alimentaires ou culturelle sont les mêmes). Au lieux de faire un prix de 1€ je décide de poursuivre ces 100 personnes à hauteur de 10 000€ chaqu’une. Stupide.
  • Si on suit la logique des ayants droits, avec en moyenne 30 téléchargement par mois par personne, le budget des foyers devrai être au moins de 30€ (prix d’un DVD, film, documentaire, …) * 30, soit 900€ tout les mois pour avoir accès à la culture? Ca c’est de la redevance bien chére.
  • Si je compte les taxes sur la copie privée: téléphone, hdd, écran d’ordinateur, … je paye une redevance plus chére que la redevance TV, donc j’ai le droit comme la TV d’avoir du contenu culturel en échange? Ha non, j’ai juste le droit de la fermer. On aura bientôt la redevance sur l’aire qu’on respire car c’est bien connu, les pirates respires.

La bonne attitude face à cela est selon moi de ne pas faire de téléchargement illégale (du moi perdre le reflex de pas payer, payer quand vous trouver que le jeu film vaut le prix annoncé), payer des oeuvres sous licence libre. Mais ce qui est probable qu’il se passe avec cette méthode: Le piratage chute, les ventes aussi, à tel point que les ayant droits doivent mettre la clef sous la porte (le besoin de produit culturel compenser par les produits sous licences libres). Et les gens n’ayant pas l’habitude de payer, se retrouve avec des produits bas de gamme.

D’un coté l’industrie du divertissement envisagerai sérieusement un système de licence globale.

De l’autre les utilisateurs changerai leur habitude de consommation pour payer les bon produits, surtout sous licence libre qui leur garantisse respect, transparence et droit de copie. Et oui, vous pouvez pas demander un truc pro avec des moyens et des gens ayant des années de formations et d’expérience si vous les payer pas. Et venais dans ce cas pas vous plaindre de l’amateurisme. Je fait un peu de pub en passant pour flattr. Actuellement c’est dommage qu’il soit si dure de vivre du logiciel libre.

A bientôt, je vais continuer sur mes logiciels libres, n’hésitez pas à donner si je le mérite.

MongoDB vs CassandraDB vs Autre pour CatchChallenger

Bonjour,

Pour les besoins de CatchChallenger, j’ai exploré des base de données NoSQL.

CassandraDB

C’été mon 1er choix. La mise à l’échelle (scalabilité) est bonne. Il prends en compte le datacenter.

Mais le pannel de controle fort sympatique qu’est OpsCenter est réservé a RedHat et debian, pourquoi il ne peu pas juste demander les dépendances qu’il as besoin, voir les embarqués si elle ne sont pas trés commune?

J’ai été obligé de rajouter des clef primaire la ou ce n’est pas utile. Les index uniques sur du multi colonne ne sont pas natif et vu que j’ai rien compris sur comment faire ce CUSTOM INDEX et que cela affecte les performances, j’ai dit adieux.

MongoDB

Sur gentoo, je suis bloqué en 2.6 à cause d’un conflit de dépendances avec kleopatra (KDE). Même si c’est plus de la faute de kleopatra, c’est génant.

J’ai donc tenter sur un de mes ARM, et là on me dit que sur ARM, et particulièrement ARM 32Bits cela ne sera jamais supporté. Donc poubelle.

MariaDB

Bien, compatible car j’utilise des functions simples (ce qui me rends compatible avec 100% des SQL), je note cependant que certaines fonctionnalités ne sont pas dispo sur toute les architectures: TokuDB pas dispo sur ARM…

Petit coup de guele

Nous somme en 2016 les gas! Mềme Mingw supporte gcc 4.9, ce qui donne accès a une abstraction à la fois de l’architecture et de la plateforme.

Pour être indépendant de la plateforme il y as plein de libs connu, sans compter la compatibilité entre les unix, et grace à mingw avec windows.

Coté architecture, il faut toujours avoir un failback en C/C++ pour les architectures moins optimisé mais pour avoir un support et du code lisible et vérifiable. Le double support 32Bits et 64Bits est super facile à faire si ont respecte la norme. Hors mit ca je vois pas la moindre raison que votre code C/C++ ne marcherai pas sur une autre architecture.

Le 32Bits ne vas jamais disparaître car c’est le moyen le plus effectif pour avoir des système embarqué avec peu de consommation. En plus cela permet de réduire lors d’utilisation forte de pointeur l’empreinte mémoire (jusqu’as 2x de réduction, BTree, hash table, …). Si vous utilisez moins de 4Go de mémoire, le 32Bits est fait pour vous. C’est pour cela qu’existe aussi x32, cela permet sur x86_64 de tiré partie du mode 64Bits mais en ayant un mode d’adressage en 32Bits (donc max 4Go) mais avec la réduction de l’empreinte mémoire du 32Bits. Cela ne me surprendrai pas de savoir que les GPU ont des cpu en 32Bits.

 

Bye.

Go to Top