mardi 20 juillet 2010
The new ehcache 2.0 and hibernate spi
samedi 17 juillet 2010
Compte-rendu Soirée Ehcache / Terracotta @ ZenikaIT
J'ai eu la chance de pouvoir assister chez Zenika à une conférence animée par Greg Luck, qui est le créateur d'Ehcache et qui travaille maintenant chez Terracottech, la société qui développe Terracotta, une solution de cache distribuée.
Sa présentation se décompose en 3 parties, les intérêts de l'utilisation du cache, les nouveautés dans Ehcache 2 et les performances d'Ehcache.
Alors pourquoi utiliser du cache ? Pour le fun, parce que c'est à la mode ?
1/ Pour réduire la consommation de ressources
2/ Pour améliorer les performances
3/ Pour scaler en distribuant les données avec le cache
Pour cela c'est très simple, il suffit de raccourcir le parcours et le traitement de la demande d'informations. Vous avez un service qui doit aller charger des données en base, et bien la première fois vous allez effectivement charger ces données depuis la base de données mais les fois suivantes, pas besoin d'aller jusqu'à la base de données car vous avez pris soin de garder cette donnée au plus près de là ou vous en avez besoin. Donc vous raccourcissez le traitement entre la requête et la réponse.
Ensuite, il nous explique la loi d'Amdhal qui aide a comprendre comment on peut accélérer un système en s'attaquant au composant du système qui est le mieux placé pour être amélioré. Bref, voyez avec M. Wikipedia, il expliquera cela très bien.
Après quoi, on comprend comment l'efficacité du cache est calculée, c'est le rapport entre les requêtes du cache sur les requêtes totales. Une grande efficacité est égale à un grand offload et a de grandes performances.
Pourquoi le cache fonctionne t-il ?
Parce qu'il rapproche les données demandées au plus près du besoin.
La distribution de pareto est ensuite expliquée, il faut mettre en cache les parties du système qui sont le plus demandées et pas la totalité.
Ensuite, il nous explique pourquoi il faut utiliser un cluster; pour la disponibilité et pouvoir scale out (et non scale up)
Mais cela entraine d'autres problèmes :
- cela ajoute aurant de problèmes qu'il y a de nœuds car ils doivent récupérer l'information,
- la cohérence du cluster quand l'information se trouve à plusieurs endroits,
- la limite du théorème de CAP, qu'il renomme en PACELC :
« if there is a partition (P) how does the system tradeoff between availability and consistency (A and C); else (E) when the system is running as normal in the absence of partitions, how does the system tradeoff between latency (L) and consistency (C)? »
Et il n'y a pas de bonne réponse, car cela dépend de chaque application, il faudra donc que la solution soit configurable.
http://dbmsmusings.blogspot.com/2010/04/problems-with-cap-and-yahoos-little.html
Parlons un peu d'Ehache !
Il nous a dresser un beau tableau d'Ehcache, un solution robuste, qui tien la route, répandue, open source etc etc... Bref, LA solution de cache qu'il vous faut !
Il compare ensuite Ehcache avant et après le passage de Terracotta, en sommes c'est comme dans les pubs avant/après pour les rasoirs à 15 lames sauf que la ca vaut vraiment le coup de voir l'évolution !
Puis on regarde les modifications à apporter à ehcache pour mettre en place Terracotta: il suffit d'ajouter 3 lignes au ehcache.xml, vraiment très simple.
Les nouveautés de Ehcache 2:
-Compatibilité avec Hibernate 3.3+, refonte du SPI, union avec Terracotta 3.2,
-JTA compliant (avec XA, spring, ejb, config manuelle etc),
-Write-Behing: l'écriture dans le cache en tache de fond (asynchrone)
-Nouveaux paramètres de tuning
-Du monitoring (avec JMX) dans une nouvelle UI
-Et la ehcache console (dans la version 2.1)
Waou... une vrai version majeure, il y a tellement de nouvelles choses qu'il faudrait une heure pour expliquer chaque partie.
On a ensuite des démo de la Terracotta console et de la Ehcache console, impressive !
Après quoi on a tout un tas de comparaison des performances des solutions Terracotta/Ehcache versus le reste du monde : IMDG, memcached, mysql (pour l'exemple d'une BDD en directe)
On retrouve les sources de ces bench en ligne: https://svn.terracotta.org/repo/forge/projects/ehcacheperf/ (compte svn = identifiants de terracotta.org)
En conclusion, la mise en place de Ehcache avec Terracotta sur la fameuse application PetClinic nous donne:
-de 30 à 95% de réduction du chargement de la BDD
-des performance 80 fois supérieures à mysql
-beaucoup moins de temps de latence évidemment
Parlons du NoSql dans tout ca, et bien en fait, la combinaison Ehcache/Terracotta est une solution de NoSql sans capacité de recherche (humhum... moyen l'argument) mais par contre, il projet voit le jour, TerraStore, un "document oriented NoSQL store based on Terracotta" La classe !
www.ehcache.org
www.terracottatech.com
C'est la fin, où plutôt l'heure des Goodies a gagner par programme random SVP: un iPod & 2 places pour un conférence IT @ SF (javaone). Et je n'ai rien gagné, flute, par contre j'ai pas mal appris sur ce beau sujet qui à un bel avenir, et pour ca, je dis merci Zenika pour l'organisation de cette session et merci ADEO de m'avoir laissé m'y rendre.
A la question, "Est-ce que les slides seront mis à dispo en ligne?" la réponse de Greg a été : "No problem, OK". Alors si vous voulez les slides... demandez moi ;-)
mercredi 7 avril 2010
Installer Ubuntu sous Windows avec Wubi
samedi 20 mars 2010
l'idée du Ch'ti JUG : 1 an déjà
mercredi 3 mars 2010
Avis sur le livre "Scrum" aux éditions Dunod
Avis sur le livre "Programmation GWT2" aux éditions Eyrolles
« Ce livre est le premier à traiter de la programmation GWT 2 et il m’a fait redécouvrir cette technologie après 2 ans de développement ! L’utilisation du français facilite sa compréhension et quand les points très techniques sont abordés c’est un gros plus.
On retrouve quelques erreurs de typo ici ou la mais on imagine aisément la quantité de travail qui fut nécessaire pour sortir en temps et en heure cet ouvrage à seulement quelques jours de la sortie de GWT 2. La bonne nouvelle c’est qu’une seconde édition verra le jour et qu’il existe un site communautaire qui permet de partager les remarques des lecteurs.
Le style se lit très facilement et j’ai apprécié la franchise et les conseils utilisés dans les différents chapitres.
J’ai eu le sentiment qu’à chaque chapitre on avançait un peu plus dans les entrailles de GWT, de plus en plus profond à chaque notion abordée et pour finir en prenant du recul ou mettre en perspective les nouvelles fonctionnalités.
Je recommande donc fortement ce livre de Sami Jaber et nous remercions les éditions Eyrolles de nous avoir transmis cet ouvrage. »
Cyril Lakech, Ch’ti JUG (chtijug.org)
Avis sur le livre "Apache Maven" aux éditions Pearson
« Le ton léger utilisé rend la lecture de l’oeuvre agréable et on se surprend à enchainer les chapitres sans effort. Le livre s’attaque à des sujets très techniques, mais c’est dans la transparence que les avantages autant que les inconvénients de maven sont abordés. Très fair-play, on y retrouve même des exemples de solutions concurrentes comme gradle! Tout au long de l’histoire que nous raconte l’ouvrage (une société intégrant progressivement maven dans ses développements) on comprend l’utilité et la force de maven tout en apercevant ses limitations. Non, cet ouvrage n’est pas la bible exhaustive et précise qu’est « maven, the definitive guide » mais il a le privilège d’être le seul livre à rendre la compréhension de maven accessible au commun des mortels… »
Cyril Lakech, Ch’ti JUG (chtijug.org)
Avis sur le livre "Spring par la pratique, seconde édition" aux éditions Eyrolles
jeudi 11 février 2010
lundi 10 août 2009
gwt-user.jar issue with javax.servlet java files
In gwt-user.jar of GWT there are some java files of javax.servlet and since we need to add this jar in the classpath during compilation, maven compile these files into class file and package these class files into the war of the GWT application.
Every web server and application server provide those files too and if we deploy a war with javax.servlet class file on a server we get a linkagerror because the class are provided twice.
There are different solutions:
1/ Google remove java files from gwt-user (and optionnaly provide a gwt-user-sources)
2/ You remove javax.servlet class from you war after compilation (with a antrun remove script)
3/ You use a special gwt-user without the java files and you upload it to your company repository (gwt-user-mycompany)
4/ what else ?
So there are 2 issues in the gwt bug tracker dealing with this problem.
remove javax.servlet java files from gwt-user: NeedsInfo/Enhancement
Remove or change timestamp of javax.servlet source files in gwt-user.jar: Fixed/Defect
The official google answers are below.
1-scottb from Google says : "This is a maven compiler issue. The java files from javax.servlet should not be compiled and packaged." Here
2-scottb from Google says : "The solution is to ask to the Maven central repository maintainer (ndeloof) to changed each gwt-user release to remove the javax.servlet java files." Here
3-scottb from Google says : "The source is provided as a convenience for debugging." Here
I don't know which of those 3 answers is the best. Please vote for you favorite one.
In this topic we have gwt guest like fredsa or diaz.salvador. I hope this issue would be solved before the GWT 2.0 in a way or another.
This topic was discussed in the gwt maven plugin too: http://jira.codehaus.org/browse/MGWT-48