Le groupe Alibaba livre sa propre version du JDK

29/03/2019
logo Alibaba

Baptisée Alibaba Dragonwell 8.0, cette version est adaptée aux applications du groupe et au déploiement à grande échelle.

Le vendeur en ligne Alibaba n’est plus à présenter qui réalisait près de 5 milliards de dollars de bénéfices lors du dernier trimestre 2018. Les ingénieurs du groupe sont présents sur GitHub et ont présenté récemment leur propre implémentation du JDK. L’équipe commente le besoin de développer son propre kit ainsi : « Lors de l’adoption d’OpenJDK pour exécuter nos applications, nous nous sommes rendu compte de la nécessité pour nous de le personnaliser spécifiquement pour les déploiements d’applications Java à grande échelle ». Cette implémentation est évidemment concentrée sur le cœur d’activité de l’entreprise : le commerce électronique.

Une implémentation pour Linux

La présentation de Dragonwell souligne les optimisations réalisées pour les applications de commerce électronique, de finance et de logistique en ligne. Dragonwell est d’ores et déjà installée sur plus de cent mille serveurs et se trouve certifiée pour sa compatibilité avec le standard Java SE. Le cœur des développements d’Alibaba se concentre sur l’évolutivité. Fondée sur un fork de l’OpenJDK, la solution est aujourd’hui disponible sur les systèmes d’exploitation Linux pour les architectures x86 et x64.

Les optimisations

Parmi les évolutions proposées par Dragonwell on trouve un nouveau ramasse-miettes (CMS), un enregistreur de vol (JFR). L’implémentation ajoute aussi :

  • une nouvelle option mini à la sous-commande dump de l’outil jmap pour ignorer le contenu des tableaux de type primitif de heapdump ;
  • une nouvelle option PrintYoungGenHistoAfterParNewGC pour imprimer l’histogramme d’objet après un GC ParNew ;
  • une nouvelle option PrintGCRootsTraceTime pour imprimer les détails du GC ParNew comme G1GC. Il aide les utilisateurs à trouver le problème du temps de pause long. Il peut être ouvert/fermé par jinfo ;
  • une nouvelle option ArrayAllocationWarningSize pour imprimer la pile d’appels d’une allocation de tableau dont la taille dépasse ArrayAllocationWarningSize. La valeur par défaut de cette option est 512M. Cela peut être changé par jinfo.

Une stratégie pour contourner Oracle ?

Alibaba est loin d’être la seule entreprise à créer son propre JDK. Ce phénomène est explicable en partie par la main mise de la société Oracle sur les extensions du langage. En cela l’apparition des Java EE Guardians en 2016 était déjà une alerte sur le sujet.

Source : GitHub

comments powered by Disqus
top