Journal DTrace est passé en licence GPL

Posté par  (site web personnel) . Licence CC By‑SA.
35
15
fév.
2018

Dtrace est un outil de tracing intégré dans le système d'exploitation Solaris. Pendant longtemps il a été présenté comme étant en avance par rapport aux outils disponibles sous Linux et c'était, avec ZFS, un des arguments des promoteurs de Solaris.

Oracle, l'entreprise qui possède Solaris, a décidé de porter DTrace sous Linux et a donc changé la licence de cet outil. On passe ainsi de la CDDL à la GPLv2.

Ce changement est intervenu au milieu de l'année 2017 mais c'est seulement maintenant que la nouvelle s'est répandue par l'intermédiaire d'un post de Mark Wielaard.

Attention : ce changement de licence ne signifie PAS que DTrace va être automatiquement intégré dans le noyau Linux. Il faut encore que les mainteneurs de la partie Tracing (et Linus) acceptent ce nouvel outil. Selon Brendan Gregg, un ancien développeur DTrace qui travaille maintenant chez Netflix sur l'optimisation des performances du noyau Linux, l'avance technique que pouvait avoir DTrace n'est plus d'actualité.

J'avais déjà parlé de l'article très détaillé posté par Brendan et qui expliquait comment migrer de Solaris vers Linux. Dans cet article il était écrit que l'intégration de eBPF avait comblé un manque dans le noyau et que cet outil permettait d'offrir des fonctionnalités équivalentes à DTrace.

C'est pour cette raison que l'annonce du passage de Dtrace en GPLv2 n'a pas soulevé son enthousiasme. Sur Hacker News il commente :

Unfortunately for DTrace, this is too late. Oracle should have done this years ago. Now Linux has a more powerful tracer builtin, eBPF, and it would be a backwards step to switch the kernel code to DTrace (assuming the DTrace port is completed, which it is not). I'm sure this will not be lost on the maintainers, who have the ultimate say as to what is included in Linux mainline.
The only hope for DTrace is to have the frontend emit BPF bytecode. The bulk of this GPL DTrace code is no longer needed, only the user-level front end.

Son pronostic est donc que Dtrace ne sera pas intégré dans le noyau mais que les outils en espace utilisateur (comme dtrace-utils) sont de bonne qualité et pourront être utilisés pour générer du code à destination d'eBPF.

eBPF lacks a high level front end, in part because that's optional. Engineering effort has gone into the essentials first: kernel development of eBPF, basic user-level frameworks to use it (bcc), and lots and lots of testing and bug fixes to make that rock solid. bcc is not as easy to code in, but I've been able to port over many of my DTraceToolkit scripts already.
We're only more recently looking at higher level languages (…) We can look at taking the /usr/sbin/dtrace code (licenses permitting), and calling into libbcc and emitting BPF bytecode. That'd give us a D language front-end to BPF.

  • # Linux et Solaris

    Posté par  (site web personnel) . Évalué à 10.

    Un autre post très intéressant et détaillé de Brendan sur Hacker News : https://news.ycombinator.com/item?id=16382456

    Il explique pourquoi il a quitté illumos (une distribution de Solaris) alors qu'il en était un des fondateurs. Selon lui cela avait du sens en 2010 de miser sur Solaris qui, à l'époque, était en avance dans de nombreux domaines par rapport à Linux.
    Depuis 2010 beaucoup d'eau a coulé sous les ponts. Solaris a stagné et Linux a énormément progressé (cf sa liste) au point que, selon lui, cela ne rime plus à rien de miser sur Solaris aujourd'hui.

    • [^] # Re: Linux et Solaris

      Posté par  . Évalué à 1.

      Et ça c'est malheureusement vrai pour tous les produits Oracle (du moins pour tous ceux qu'Oracle à racheté et qui étaient un tant sois peu libre). J'entends par là qu'avec Solaris, notamment Open-Office et Mysql ont suivi le même chemin : abandonné et forqué par la comunauté… puis relibéré quand ils deviennent obsolète, que leur concurrent fork deviens trop puissant.

      • [^] # Re: Linux et Solaris

        Posté par  . Évalué à 0.

        Le seul but de cette stratégie est de divisé la communauté.

        • [^] # Re: Linux et Solaris

          Posté par  . Évalué à 2. Dernière modification le 15 février 2018 à 22:18.

          c’était assez mal joué de la part d'oracle, j'imagine qu'il ont fait comme d'habitude, acheter la boite pour tuer le concurrent avec l'indisponibilité des outils ou leur stagnation.

          Oracle aurait du venir sur linuxfr, on leur aurait expliqué comment ca marche le logiciel libre :).

          Effet de bord intéressant les concurrent d'oracle ont été motivé pour contribuer à linux qui c'est bonifié avec le temps (et surtout du travail hein !) et avec des décisions stratégique impensable pour d'autre logiciel, genre BKL, et j'ai un souvenir de la partie USB qui a été réécrite complétement.

          en 2010 c'etait évident que linux avec son BKL était mal parti, récrire complémentent le noyau pour l'enlever était difficile a imaginer quand même

          • [^] # Re: Linux et Solaris

            Posté par  . Évalué à 5. Dernière modification le 16 février 2018 à 06:08.

            À la décharge d’Oracle, ils n’ont sûrement pas acheté Sun pour MySQL en particulier. Il était dans le lot mais il rentrait clairement en concurrence avec leur ô combien vénérable et ô combien rentable SGBD bien connu… Ils ne pouvaient vraiment pas faire autrement que laisser pourrir MySQL.

            Pour Berkeley DB, qui s’est retrouvé dans leur giron lors de la même opération, les choses ne se sont pas passées de la même manière, à ma connaissance il n’y a pas eu de fork important, voire pas de fork du tout. Ils peuvent maintenant proposer à leurs clients le top du top de la BDD clé-valeur. Ce produit, au contraire de MySQL, ils vont plutôt le chouchouter…

            J’utilise « MariaDB » et je parle de et j’écris « MariaDB ». « MySQL » pour moi c’est de l’histoire ancienne (My doit avoir au minimum une vingtaine d’années maintenant !). C’est encore le nom par défaut des programmes, certes, mais la transition est déjà en train de s’opérer.

            On a de la chance d’avoir sous Linux/BSD le choix entre MariaDB et PostgreSQL qui sont tous les deux performants et n’ont rien à envier à Oracle ou SQL Server.

            • [^] # Re: Linux et Solaris

              Posté par  . Évalué à 2.

              [MySQL] était dans le lot mais il rentrait clairement en concurrence avec leur ô combien vénérable et ô combien rentable SGBD bien connu… Ils ne pouvaient vraiment pas faire autrement que laisser pourrir MySQL.

              Question sérieuse : MySQL est (était) vraiment un concurrent sérieux d'Oracle ? Je pensais que les 2 ne jouaient pas dans les mêmes cours (sans vouloir dire pour autant que MySQL n'est bon que pour les blogs avec 3 articles…).

              • [^] # Re: Linux et Solaris

                Posté par  . Évalué à 5.

                Il y a une époque pas si lointaine ou dans certaines sociétés, on utilisait Oracle pour toutes bases de données, sans se poser de question (sauf progiciel nécessitant un sgbd spécifique différent). Puis sont arrivés les sgbd libres style MySQL, PostgreSQL, et autres. De plus en plus de sociétés ont commencé à les utiliser en lieu et place d'Oracle, et n'ont gardé Oracle que pour des projets nécessiatnt des fonctionnalités spécifiques, ou des performances particulière. Et comme les SGBD libres sont de plus en plus performants, ils continuent à remplacer avec le temps les instances de SGBD proprios.

                Alors, oui, le SGBD oracle permet de faire des choses qu'un sgbd libre tel que mysql ou PostgreSQL ne peuvent pas faire, mais ces usecases sont loin d'être majoritaire. La plupart des use cases clasiques peuvent être traités avec des bases libres.

                On a vu la même chose avec les architectures matérielless : des machines à base de CPU bien plus performants que le x86 (qui est une bouse) existent, mais elles coutent cher, et ne sont utilisées que pour certains usecases spécifiques: à côté on a une architecture x86, qui est vieille et pourrie, mais qui est suffisante pour la plupart des usecases classiques.

              • [^] # Re: Linux et Solaris

                Posté par  . Évalué à 4.

                MySQL est (était) vraiment un concurrent sérieux d'Oracle ?

                Disons qu’au niveau rapport qualité/prix… :)

                Oracle a plus de fonctionnalités, me semble-t-il (je suis pas DBA), et est peut-être aussi plus performant, c’est bien possible. Ce qu’il y a c’est que souvent, même si MariaDB en fait moins, il suffit (très) largement à répondre au besoin…

                Quant à PostgreSQL vs Oracle, je suis curieux de connaître les killer features du second qui le place au dessus du premier et justifie son prix exorbitant…

                • [^] # Re: Linux et Solaris

                  Posté par  (site web personnel) . Évalué à 5.

                  MySQL est (était) vraiment un concurrent sérieux d'Oracle ?

                  Oracle a plus de fonctionnalités, me semble-t-il (je suis pas DBA)

                  c'est plutôt PostgreSQL qui se compare à Oracle RDBMS, même si depuis la v5 de MySQL (et donc MariaDB) c'est devenu une « vraie » base de données (ajout des contraintes, triggers… notamment).

                  Un souci avec Oracle c'est que ses fonctionnalités avancées (tables partitionnées, cluster tables, fonctions géographiques évoluées, réplication, tablespaces transportables…) deviennent payantes une fois qu'elles fonctionnent correctement (entendu d'un commercial Oracle en 2011…), et ça peut facilement doubler le prix du moteur, on parle de 60 k€ à 120 k€… si les achats ont pensé à négocier les options intéressantes.
                  De ce fait, ces fonctionnalités sont moins utilisées, plus complexes, mal maîtrisées, bref ça demande d'avoir des DBA formés, ce qui est rare sur ces fonctions peu utilisées, donc encore plus cher…

                  Bref, si les seules fonctions de la base de données c'est d'assurer des transactions avec des propriétés ACID, un modèle conceptuel de données avec des clés étrangères, avoir de la résilience/réplication, avoir des triggers voire un langage de script, tant MariaDB que PostgreSQL suffisent, sqlite pourrait suffire dans les cas plus simples (et est bien utile pour la persistance structurée sur les terminaux mobiles mono-utilisateurs). Pour gérer de la donnée géographique, il y a PostGIS qui est très bien.

                  Pour ce qui est tuning de performances, Oracle RDBMS s'est bien amélioré, mais l'écosystème de PostgreSQL aussi.

                  Ce qui reste gênant, ce sont tous les progiciels ne gérant qu'un seul type de base de données (que ce soit SQLserver ou Oracle), j'essaie de le mettre comme critère éliminatoire lors d'appels d'offres, ça démontre généralement un produit peu éprouvé, avec une R&D peu ouverte au contexte en entreprise et souhaitant ne maîtriser qu'un sous-ensemble de technologies, bref peu susceptible d'être novateur ce qui est toujours dommageable quand tu as besoin d'évolutions en spécifique.

                  Heureusement qu'avec les initiatives NoSQL, on a surtout du MongoDB ou du Cassandra, au moins le libre m'apparaît plus évident dans ce contexte.

                • [^] # Re: Linux et Solaris

                  Posté par  . Évalué à 2.

                  Quant à PostgreSQL vs Oracle, je suis curieux de connaître les killer features du second

                  Comme pour tout autre comparaison, on a pas besoins de défragmenter (vacuum) et nativement ca ne lock pas, moins de dead lock & co, mais bon …

        • [^] # Re: Linux et Solaris

          Posté par  (Mastodon) . Évalué à 5.

          Je ne crois pas qu'il faille y voir de la malice partout.

          D'une part Oracle est une grosse boite et comme tout grand navire de ce genre il est difficile d'avoir une vision stratégique bien définie pour chacun de ses composants. D'autre part Oracle n'a jamais eu pour ambition de viser le marché du desktop. Ils ont "obtenu" openoffice par l'acquisition de SUN, c'est plus un truc qui leur est resté sur les bras qu'autre chose. Dans le cas de DTrace ils en ont vu un intérêt pour leur propre usage et ont simplement voulu le garder pour eux. S'ils avaient pu le porter DTrace plus rapidement que les alternatives ne se sont développés dans le kernel de base ça aurait été un petit + pour promouvoir leur distrib plutôt que la redhat vanilla. Pour mysql c'est très différent mysql avait une importance réellement stratégique puisque ça leur faisait concurrence, ils ne l'ont pas vraiment abandonné mais ont surtout perdu les developpeurs principaux qui ont fui et forké. Et ça n'avait rien à voir avec la licence. Je ne sais s'ils avaient le doux rêve de voir mysql disparaitre mais ça aurait été très naïf. Si mariadb est prévalent chez les libristes je connais encore pas mal de projets qui "supportent" mysql uniquement et même si dans les faits l'utilisation de mariadb est possible sans problème ils ne le certifient pas. Dans certains domaines comme celui des bases de données, il y'a plus d'inertie que dans d'autre, combien de projets avez vous dans vos boites qui utilisent des très très vieux moteurs de bases de donnée et que vous continuez à maintenir ?

    • [^] # Re: Linux et Solaris

      Posté par  (site web personnel) . Évalué à 5. Dernière modification le 15 février 2018 à 19:16.

      Vidéo sympa lors du Kernel Recipes 2017 : « Perf in Netflix » par le dit monsieur, vidéo accessible pour toutes et tous orientée grand public.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.