PerfUG : Phaser et StampedLock Concurrency Synchronizers

Phaser est une barrière de synchronisation Java 7 utilisée pour orchestrer, entre plusieurs threads, un lot de tâches répétitives. Le système offre une interface plus simple à utiliser que son prédécesseur CountDownLatch.

StampedLock est un mécanisme de verrou apparu en Java 8 qui peut s’apparenter à un ReadWriteLock avec de meilleures performances et un système de lecture optimiste inédit.

 

Avec Java 7, l’introduction de l’API Phaser offrait un usage plus flexible des existants CountDownLatch et CyclicBarrier.

Au cours de cette présentation, nous vous exposerons un certain nombre d’exemples d’utilisation de Phaser dans la communication entre Threads et en quoi cela pourra vous simplifier le code ! En Java 8, nous pouvons profiter de la nouvelle construction StampedLock. Ce nouveau type de verrou permet l’accès concurrent à plusieurs lecteurs de manière plus efficiente qu’un ReadWriteLock grâce à son « mode » optimiste. A travers la présentation, nous vous montrerons comment l’utiliser et dans quels patterns communs ces constructions peuvent s’inscrire.

 

Heinz Kabutz est auteur du Java Specialists Newsletter où il expose ses recherches autour de nouvelles constructions Java. Il étudie régulièrement les techniques d’écriture de code Java optimisé pour la concurrence et de meilleure qualité. Il publie également des cours Java, plus particulièrement dans le domaine de la programmation concurrente.

 

La session aura lieu dans les locaux d’OCTO Technology.
Inscriptions et informations sur Meetup. Cette session sera suivie d’un pot dans les locaux d’Octo, puis d’un restaurant aux frais des convives (une invitation Meetup pour le restaurant suivra).

PerfUG : DynaTrace pour monitorer tous vos problèmes de performance

DynaTrace est une application d’APM (Application Performance Management) qui se distingue par la capacité à ne manquer aucun problème de performance.

Venez découvrir ce qui fait de dynaTrace l’un des leaders dans le monde de l’APM (Application Performance Management).
Pour cela nous verrons :

  • Présentation générale de l’outil
  • DynaTrace et le continuous testing
  • Troubleshooting d’une application à l’aide de DynaTrace

Cette présentation sera assurée par Antonio Gomes Rodrigues, auteur d’articles de blog, speaker, consultant sur la performance depuis de nombreuses années. Il a récemment rejoint la société Compuware.

La session aura lieu dans les locaux d’OCTO Technology.
Inscriptions et informations sur Meetup

Améliorer la performance des jobs Hadoop sur HDInsight

Cela fait quelque temps que j’expérimente des Tips & Tricks sur mes algos pour traiter de la data de façon performante et comme ça a été plutôt concluant dans mon cas, j’ai mis tout ça au propre pour les partager ici avec vous.

Les quatre optimisations que je présente ici vont faire passer le temps d’exécution de 45 minutes à moins de 3 minutes. La plus importante étant le passage d’un script Pig à un code MapReduce.
Lire la suite

PerfUG : Hadoop et HDFS : Stockage, Requêtage et Performances

Hadoop est principalement utilisé pour le monde batch. Le paradigme MapReduce sur Hadoop ne propose pas de transformation ou de requêtage performant mais plutôt un traitement d’une forte volumétrie de données.

Cependant, la performance n’est pas à négliger dans certains cas :

• lorsque la fenêtre de traitement des données devient serrée pour fournir des données à jour

• des besoins de requêtages ponctuels par des analystes peuvent arriver au travers d’outils type Hive ou Pig.

Il devient nécessaire de fournir ces données dans un temps de requêtage supportable à l’échelle humaine.

Cette session permet d’introduire les basiques d’Hadoop et de HDFS ainsi que des astuces de performance sur le stockage, le requêtage (Hive, MapReduce) ainsi que sur du paramétrage.

Le speaker de cette session est Sofian Djamaa, Software Engineer chez Criteo.

Pour le descriptif complet de la séance, suivez le lien.

L’événement aura lieu le Jeudi 24 Avril à 19h. Pour s’inscrire, c’est sur Eventbrite.

OCTO accueille « Web Performance Paris » le jeudi 7 novembre

Nous avons le plaisir d’accueillir le groupe Web Performance Paris, jeudi 7 novembre à partir de 19h, pour une soirée de présentations et d’échange dédiée aux performances web.

Web Performance Paris

Au programme :

Lire la suite

A quoi sert Azul Zing ?

La compagnie Californienne Azul Systems a gagné sa notoriété au travers de son produit phare : la JVM Zing. Cette JVM promet d’excellentes performances pour applications Java de manière déterministe : Zing aura toujours une faible latence pendant toute la durée de vie d’une application en production. La clef de cette machine virtuelle vient de son algorithme sans pause : C4 (Continuously Concurrent Compacting Collector). Les promesses de cette JVM sont-elles réalistes ? A qui cette JVM peut bénéficier et pour quel coût ?

NB : cet article présuppose que vous connaissez les principes du Garbage Collector. Les algorithmes sont détaillés de manière très pédagogue (en anglais) par Martin Thompson dans l’article cité ci-dessous.

Lire la suite

HTML5 pour améliorer la performance web front-end ?

Lorsque XMLHttpRequest a été implémenté dans nos navigateurs, ce fut une petite révolution pour le web. Nous pouvions désormais échanger des données avec le serveur de manière asynchrone sans recharger toute la page courante. Cette technique baptisée AJAX (sauf si vous avez hiberné les 10 dernières années, vous devez connaître) a permis d’améliorer les performances web et le confort d’utilisation. Avec HTML5, de nouvelles fonctionnalités sont disponibles dans nos navigateurs. Voyons celles qui vont nous permettre d’améliorer les performances web front-end.
Lire la suite

NewSQL: Comment distribuer ses données avec SQLFire

Contexte

SQLFire est une base de données relationnelle « in memory », c’est-à-dire qu’à tout instant ses données sont disponibles en mémoire vive. Les performances attendues sont donc très élevées, mais ce choix impose une limite sur le volume de données que peut stocker efficacement une instance (hors overflow sur le disque).

Pour franchir cette limite, pour permettre un failover en cas de panne matérielle et pour pouvoir monter en puissance, les concepteurs de SQLFire ont choisi d’encourager les développeurs à partitionner et répliquer leurs données sur plusieurs machines, toutes connectées sur un réseau local.

L’architecture choisie est de type share nothing, ce qui a des conséquences intéressantes à la fois pour le développeur et pour les performances. Ce deuxième article va présenter le mécanisme de partitionnement de SQLFire, proposer une méthodologie pour adapter le modèle de données, et discuter les conséquences des choix d’architecture de la solution.

Lire la suite

Mesurez les performances web front-end

Les applications et sites web deviennent de plus en plus riches, la quantité et la taille des fichiers ne cessent d’augmenter. Les téléchargements et traitements effectués par le navigateur sont importants et peuvent fortement influer sur les performances de l’application web. La performance est essentielle, un élément à ne pas négliger si l’on ne veut pas voir son application rejetée par les utilisateurs. Je ne vais pas ici vous donner des techniques d’améliorations des performances mais vous parler des indicateurs à mesurer et analyser afin de coller au plus près de ce que perçoit l’utilisateur.
Lire la suite