True story

I link to this picture so often to explain the downsides of my job I need a handy copy here.

Prius, ça fait un an. Troisième et dernière partie.

Je profite — ironiquement — d’un voyage en train pour taper cette troisième partie.

Cette troisième partie abordera les soucis z’et problèmes, et quelques défauts de cette voiture. Ce sera l’occasion aussi de faire un bilan.

Les défauts

Car il y en a quelques uns. On peut vivre avec, mais c’est tellement moins bien. Le plus grand crime de cette voiture, c’est la finition. Je ne parle pas des plastiques durs avec les motifs rainurés qui montrent que le plastique est d’origine végétale. Certains trouvent ça dommage qu’une voiture à presque 30 000€ ait du plastique dur.

Personnellement, je m’en fous. Je n’ai pas mes fesses posées dessus, et je trouve le design intérieur plutôt esthétique.

Non, je parle des bruits de vibration. Il y en a un, là devant moi, juste devant le projecteur du HUD. Il survient (survenait ?) aléatoirement et la moindre vibration (telle que la rotation du thermique) le fait (faisait) vibrer.

Il y a de l’imparfait entre parenthèses. Cela fait un moment que je ne l’ai pas eu. Et je ne sais pas pourquoi. Je touche l’aggloméré de la tablette SNCF devant moi et lui souhaite d’être parti comme il est venu.

Ca vibre aussi un peu ailleurs, mais c’est, j’imagine, dû aux machins qu’on empile dans le sous-coffre, aux sièges autos et aux pare-soleils des enfants. Des causes exogènes. Que je peux expliquer. Je suis un ingénieur, j’aime bien comprendre le pourquoi des choses (et le pourquoi pas aussi).

Alors que cette vibration, devant moi, que j’entends très nettement, clairement causée par un assemblage défectueux à l’intérieur du tableau de bord, elle m’énerve.

Et on ne peut rien faire. Si on missionne le garagiste de nous trouver la cause, il va tout démonter, potentiellement ne rien trouver et en remontant causer de nouvelles vibrations désagréables.

MAIS BON, ça fait un moment que je ne l’entends plus.

Toyota a voulu rationaliser les coûts et ça a coûté à la qualité. (ils l’ont reconnu récemment).

Autre défaut. Mais là, c’est volontaire, et dû au marché américain.
Les ceintures arrières, lorsqu’elles sont détendues à fond ont un système de cliquet qui fait se tendre, sans pouvoir les détendre à nouveau — à moins de les ré-enrouler complètement. Ca permet de mieux tenir les sièges autos, mais pour les réhausseurs, c’est la plaie.

Martin, 3 ans, pour bouder, va tendre la ceinture à fond, puis va tenter de s’étrangler avec la ceinture qui ne peut que se tendre. La seule manière de le sortir de ce mauvais pas, c’est de détacher la ceinture, et de la ré-enrouler. Super quand il fait ça sur l’autoroute.

Autre défaut. Le GPS. Le système de navigation vient avec un package complet : plus d’enceintes, un disque dur, la caméra de recul, le streaming BlueTooth, le téléphone main-libre, cette blague de parking automatique et les commandes vocales. L’option est très chouette sur le papier, et tant mieux car elle vaut plus de 3000 €.

Je ne regrette pas d’avoir pris l’option, mais qu’on soit bien clair, on en a pas pour son argent.

Je suis assez mitigé sur le GPS. Il est très rapide (normal, la cartographie est sur disque dur), la base des POI est assez complète, et comme tous les GPS embarqués, il est connecté aux roues et interpole très bien lorsqu’on est sous un tunnel ou dans un parking souterrain. Il gère aussi les alertes trafic. Sa vue autoroute est bien gaulée.
Mais il pèche sur quelques points (certains essentiels) :

  • Il est compliqué à utiliser, lorsqu’on veut utiliser les POI. Beaucoup trop d’appuis sur l’écran pour chercher la station service la plus proche par exemple.
  • Le calcul du temps restant n’est pas dynamique. On lui dit à quelle vitesse on roule en moyenne, et il calcule comme ça.
  • Le plus grave : il est vraiment pas optimal dans son calcul de trajectoire. Certains trajets, il va rajouter 1h de route, avec un détour par Bourges, alors que je veux aller à Vierzon. Il amène à destination, il n’y pas de doute. Mais je lui fait bien moins confiance qu’à mon ancien TomTom One à 150€.

Pour changer de sujet et parler musique, je trouve le son un peu trop grave, mais ça se corrige à l’équaliseur. Et le profil BT est très limité. Play-Pause. et c’est tout. Regrettable.

Y a-t’il d’autres défauts ? Je réflechis un peu … Pas vraiment, il y a plutôt des contreparties, et on fait avec.

Pour finir, la révision, le prix est variable suivant les révisions, mais toujours plus cher lorsqu’on prend le toit solaire. De 20 €. Le garagiste m’a indiqué qu’ils changeaient systématiquement le liquide de la clim’ dans le cas d’un toit solaire, mais pas à chaque fois pour le modèle sans. Whatever.

Les ennuis

Il y en a eu quelques une. Dans l’ordre : rayée par des gamins (voilà ce que c’est de se garer près d’un lycée du 93), une batterie 12v qui tombe en rade et une crevaison.

Les rayures

Pas grand chose à ajouter. Il va falloir repeindre. Mais ils l’ont bien cartonnée. Devis à Paris, chez le concessionnaire : 2000€. Dans le Loiret, chez le carrossier recommandé par notre voisin et ami : 550€.
L’assurance prend en charge, mais la franchise est variable, donc on va viser au moins cher.

La batterie 12v

Sur la Prius, il y a deux batteries. La batterie de puissance, celle qui peut bouger la voiture. Et l’autre. Bien plus petite que celle d’une voiture normale. Ce qui n’est pas surprenant. Une voiture priustorique a besoin d’envoyer de l’ampère pour faire tourner le démarreur. La Prius n’ayant pas de démarreur, il faut juste une batterie pour les accessoires.

Mais elle n’est pas là que pour rigoler. Si la batterie est morte sur la Prius, toute la voiture est morte. Impossible de déverrouiller les portes avec le SKS (système sans clé, il détecte la présence de la clé dans la poche), il faut utiliser … la clé. Impossible d’ouvrir le coffre, il est électrique. Et surtout, impossible de démarrer la voiture. Ce n’est pas une voiture qu’on pousse pour la lancer. La transmission est bloquée mécaniquement tant que le contact n’est pas mis et qu’on passe une vitesse.

Donc, on appelle l’assistance. Elle arrive assez vite (en région parisienne en tout cas), se branche sur les prises sous le capot, et voilà. (oui, la batterie est dans le coffre, mais il y a des “cosses” sous le capot, il faut parfois l’indiquer au gars de l’assistance).

Donc attention à la batterie morte. J’ai depuis acheté des câbles pour aller mendier du jus à une autre voiture. On ne sais jamais. Il faut évidemment se préparer à se faire vanner.

La crevaison

La Prius est une voiture moderne. Elle n’a pas de roue de secours. Mais un compresseur avec du liquide qui va reboucher le trou. C’est beaucoup plus fatiguant que de changer une roue, car il faut rouler doucement que le liquide aille partout, et vérifier la pression 2 fois.

Et quand même aller au plus vite chez le garagiste pour nous réparer la roue. Et dans notre cas, il avait foiré la réparation, et le pneu continuait à fuir. Se retrouver avec moins d’un bar de pression sur un pneu (arrière heureusement) sur l’autoroute … not fun.

Du coup, changement de pneu. Et comme, au fond du Loiret, impossible de trouver du Bridgestone Ecopia, je change tout le train arrière pour mettre du Michelin Energy Saver, pour 200€. Ca fait cher de la crevaison. Je rationalise en me disant que les Michelin sont supérieurs aux Bridgestone. Et que je fais probablement les monter à l’avant.

Mais c’est pas fini ! Il faut maintenant que je refasse le plein du liquide anti-crevaison dans le compresseur. Je profite de la révision des 15 000km pour demander au concessionnaire le prix de la recharge. Il écarquille les yeux en me le disant : 107€. Soit 25€ de plus qu’un pneu neuf.

Evidemment, je n’ai pas pris la recharge, et j’ai acheté pour 10€ une bombe anticrevaison au supermarché. Je me servirai du compresseur comme … compresseur, il est tout à fait capable de balancer 2,7 bar dans les pneus, ça évite d’aller faire la queue à la station service.

Ce problème de crevaison et d’absence de roue de secours n’est évidemment pas spécifique à la Prius. Toutes les marques font ça maintenant. Et de toute manière on subit une crevaison tous les 7 ans en moyenne — ce qui est exactement ce qui s’est passé pour moi. La Twingo a crevé en 2003. Je racheterai le liquide en 2017.

La conclusion

L’achat rationnel aurait été une Dacia Logan break ou un Kangoo. Ou un Scénic d’occasion. Ca nous aurait coûté deux fois moins cher, et la voiture aurait été plus grande.

Mais on s’en fout du rationnel. Et les constructeurs le savent bien.

La Prius est une voiture unique, fiable, agréable à conduire dans les embouteillages parisiens et sur l’autoroute et dans toutes les conditions intermédiaires. Et peu gourmande. Malgré mes efforts récents pour consommer plus, je n’arrive pas dépasser les 6,4l/100km sur 1 plein.

Donc, je ne regrette rien, et je la recommande sans hésiter, et fait régulièrement des tours de démo.

Hélène l’apprécie beaucoup aussi. Elle la conduit comme une voiture normale sans chercher la performance, et apprécie le confort de conduite.

Si je devais changer de voiture aujourd’hui, je reprendrais forcément une Prius.

D’ici quelques années, on devrait voir d’autres solutions. On attend certes toujours celles de PSA et de Renault qui doivent sortir dans 2 ans depuis 10 ans. Pendant ce temps, Toyota affine depuis 13 ans son système HSD, et il est ultra mature aujourd’hui. Il va se décliner d’ici 2015 sur toute sa gamme — la prochaine sera la Auris, arrivée prévue l’année prochaine (ou cette année, je ne sais plus).

Depuis un an que nous avons la Prius, je n’ai conduit qu’une autre voiture, une Espace 2.2dci. C’est bruyant, ça vibre, et il faut passer les rapports et rappeler à son pied gauche qu’il doit pomper. Non, vraiment, je garde ma Prius.

TypeKit rocks !

A quick one …

To say that TypeKit is the one widget you want to use on your publishing platform of choice.

It’s available on wordpress.com and if you have access to the source of your website, it’s a stupid javascript file to link to.

That’s why there’s now beautiful typography

On my website. The main content font is Gesta and the title font is Chippewa Falls. Currently, I use the free plan, limited to a small subset of the fonts and I can only use a couple of fonts. But browsing typekit, I feel like a fanboy in an Apple store, so I might upgrade at some point.

Makes me want to …

… tweak the current theme. Not too happy with it. Considering moving out of wordpress.com altogether to github pages, and do my own — or to a custom install of Zotonic.

Also, MarsEdit 3

Faithful user of the version 2 since it shipped, I am typing this word (and this one too) with MarsEdit 3. Seems fine, but … Editing my own HTML is something I actually enjoy especially with the TextMate integration and Zen HTML plugin. Better than any WYSIWIG tool, actually.

Ain’t he cute ?

MediaSacha embedding test … is a success.

IMG_0478.jpg

Prius, ça fait un an. Deuxième partie

La première partie abordait brièvement la partie théorique de la motorisation hybride de la Prius. La question aujourd’hui, “Mais dis-moi, cstar, comment ça se conduit une Prius ?”

Dis-moi, cstar, comment ça se conduit une Prius ?

Comme une voiture normale, en plus facile. Voici une situation hypothétique :

Position de départ

Je suis à côté de la voiture avec la “clé” dans la poche.

C’est parti

  • Je prends la poignée de la portière conducteur. La voiture détecte la clé dans ma poche et se déverrouille.
  • Je m’installe au volant.
  • J’appuie sur la pédale de frein et pousse le bouton Power
  • La voiture détecte la clé dans l’habitable (elle est toujours dans ma poche)
  • L’affichage tête haute s’allume, la voiture affiche “ready”, la musique commence à se diffuser depuis mon iPhone (lui aussi est dans ma poche, mais dans l’autre).
  • La voiture a démarré. Le thermique ne tourne pas, mais la clim et tout le reste, si.
  • Je maintiens la pédale de frein enfoncée, et je mets le joystick bleu sur “D”
  • J’accélère, c’est parti

En temps réel, 5 secondes se sont écoulées.

Le thermique va rapidement se mettre en marche pour monter une température de fonctionnement idéal, ou alternativement, en hiver, pour chauffer l’habitacle.

La conduite proprement dite, si on veut faire simple, c’est facile : on accélère avec la pédale de droite, et on freine avec la pédale de gauche. La voiture s’occupe de tout le reste. Hélène la conduit comme ça.

Il faut oublier le bruit du thermique. La décorrélation entre le régime moteur et l’accélération est troublant. On a cette impression que le moteur patine. Oui, un peu comme ton 103sp de quand t’avais 15 ans. L’accélérateur permet de décider de l’accélération du véhicule, comme son nom l’indique. Dans les voitures “priustorique” (néologisme joyeusement emprunté aux amis du Prius Touring Club), le moteur est lié aux roues via la boite de vitesse dans un rapport défini. Dans la Prius, non. C’est le calculateur qui va choisir comment on va répartir l’énergie — d’où elle vient et où elle va. Du coup, ça mouline, et comme on conduit beaucoup à l’oreille, on est troublé.

Mais bien sûr on peut théoriser, et on peut trouver des tas de techniques de conduite pour diminuer la consommation. J’aborderai le sujet plus loin. Même si je suis loin d’être un expert, et j’aime un peu trop accélérer pied au plancher pour que les performances économiques soient toujours au rendez-vous.

La Prius aime la conduite coulée, avec des accélérations douces et des freinages anticipées (pour freiner uniquement sur le régénératif).

Et la conso dans tout ça ?

La réponse courte : 5l/100 en gros. Avec un réservoir de Twingo, une voiture de l’habitabilité d’une 407 ou d’une Laguna fait 300km de plus qu’une Twingo (qui elle n’est pas climatisée). En ce moment, plus, parce que je fais beaucoup d’autoroute.

Certains peuvent faire plus de 1000km avec un plein. Un japonais a même fait plus de 2000km avec un plein.

La consommation dépends principalement des conditions de circulation et du type de route. La Prius brille en ville, et sur le périphérique. Le simple fait que le thermique s’arrête lorsque qu’on avance pas, c’est pratique. Sur le périphérique, les performances sont en général très bonnes. Sur les routes, avec des vitesses autour de 90km/h, avec des villages à traverser et des côtes et des descentes, on fait de bons score aussi.

C’est sur l’autoroute que le système hybride ne va pas faire mieux qu’une berline allemande. Le moteur à explosion est très efficace dans ces conditions, et il y a peu à gagner. La consommation indiquée tourne autour de 5,5 l/100 sur autoroute.

D’ailleurs, est-ce qu’on peut vider la batterie ?

Oui. Le thermique fait 100cv. Lorsqu’il faut plus de puissance, la batterie va fournir les 36cv supplémentaires.

Mais en montagne, pendant la montée, on va demander toute la puissance. Et si on la demande trop longtemps, la batterie va finir par atteindre les 20% de charge. Elle va arrêter de se décharger. Et on va se retrouver uniquement sur les 100cv du thermique.

C’est une des limites du système hybride. Mais j’appellerai ça plutôt une optimisation. Cette voiture est optimisée pour rouler aux vitesses légales dans les conditions qu’on rencontre sur les routes. Et c’est exactement ce que je lui demande

Pour se détendre une petite liste. Ca marche toujours dans les billets de blog.

Les moments agréables en Prius

  • Arrêtée au feu, la voiture ne fait pas de bruit et ne vibre pas du ralenti du moteur
  • Dans les embouteillages, pas de crampes à la jambe droite
  • La voiture ne cale jamais.
  • La Prius accélère beaucoup plus fort que ce que les gens croient !
  • Pourvu que ce soit vallonné, on a l’impression de surfer en jonglant entre les motorisations et la roue libre

La Prius est une voiture qui décontracte, facile à conduire, avec de la ressource lorsque c’est nécessaire. Certes, le chassis est assez mou, et l’électronique bride beaucoup, on va pas prendre les virages en faisant crisser les pneus. Mais là encore, c’est une question d’optimisation, une voiture de père de famille qui sait faire plaisir. Différemment.

Le toit solaire

Le toit solaire de Prius

La partie arrière du toit est un panneau solaire. Il ne sert pas à recharger la batterie. Il permet de faire tourner une ventilation. Dans une autre voiture, on a l’impression d’ouvrir la porte du four, et de rentrer dans ledit four. Avec la Prius, je me gare en plein soleil, la ventilation tourne, et quand je reviens la voiture est … supportable. La ventilation chasse l’air avant qu’il ne chauffe. Du coup, on reste à peine au dessus de la température à l’ombre.

Donc, il ne fait jamais trop chaud lorsqu’on rentre dans la voiture et la clim’ a moins de travail a faire pour descendre à la température voulue.

Et ça marche vraiment, j’ai comparé l’été dernier avec des voitures garée dans les mêmes conditions. Rien à voir. L’option toit solaire comprend le toit ouvrant et le panneau solaire, ça coûte 1000 Euros. J’ai hésité à le prendre, mais je ne regrette rien

Le toit ouvrant est … ouvrant. Rien à ajouter. Un défaut, il faut entre-ouvrir une fenêtre pour ne pas avoir de vibrations désagréables entre 40km/h et 50km/h.

A suivre

Déjà plus de 1000 mots ? Bon, on est parti pour une troisième partie. Je dirais tout sur la batterie de 12V, sur les pneus et sur les coûts.

Stay tuned !

La Prius, ça fait un an. Première partie

Quick note to my English speaking audience

I bought a Prius 2010 roughly a year ago, and it’s time for a writup. Given the extensive coverage in English and the fact that it’s way more popular in the US, I’ll write in French.

But the bottom line is “This car is great ; it’s different and a pleasure to drive a family of four around.”

start-prius.jpg

Une Prius pour cstar

Cela fait bientôt un an que nous avons acheté une Prius III avec toit solaire en prévision de l’arrivée de Sacha. C’est une voiture nouvelle, différente, silencieuse, et qui déplace une famille de quatre dans un grand confort.

Je ne vais pas ressortir la plaquette commerciale de Toyota, ni même expliquer avec force détails le fonctionnement de la transmission. Le petit bout de la lorgnette que je vais attraper, c’est celui des questions qu’on pose à tout possesseur de Prius.

Les petits défauts il y en a quand même. Et je déballerai tout !

Finalement, ce billet est très long. Il y en aura donc plusieurs. Aujourd’hui,la technique :

La Prius, une hybride

Hybride. C’est le mot important. Une question qu’un possesseur de Prius entend souvent et à laquelle “répondent” souvent les journalistes, c’est “quelle est l’autonomie en électrique ?”.

La réponse est “cela n’a pas d’importance !” — Certes la documentation de Toyota dit 2,6km avec une batterie chargée. Mais bon, on s’en fout.

Ce sera différent lorsque la Plug-In sortira. Celle-ci se branchant sur le secteur pour récupérer de l’énergie l’autonomie en plus électrique sera une vraie question. Et elle sera beaucoup plus importante, 40km, il me semble.

Pour la Prius actuelle, l’énergie électrique est principalement obtenue depuis le moteur à essence (le thermique). Le reste de l’énergie électrique est obtenue par le freinage récuperatif. Cela veut dire que rouler en électrique pur, c’est consommer de l’énergie qui provient de l’essence, convertie en électricité, stockée dans la batterie, puis renvoyée au moteur électrique et envoyé aux roues. Autant dire qu’il y a de la perte en ligne.

Capture d’écran 2010-04-27 à 10.58.12.png

La vraie force du HSD (Hybrid Synergy Drive, le système hybride utilisé par Toyota et Lexus), c’est de combiner deux motorisations avec des caractéristiques différentes et de choisir chaque motorisation en fonction des conditions.

Le moteur à essence a une plage de rendement optimale à moyen régime. Au dessus et en dessous, il n’est pas aussi performant, et consomme “trop” et l’autonomie en prend un coup.

Le moteur électrique a un couple disponible immédiatement, et il reste constant jusqu’à ce qu’il tombe brusquement.

Les moteurs électriques (il y en a en effet deux dans le HSD) peuvent aussi fonctionner en générateurs d’électricité. Dans la terminologie, ils s’appellent MG1 et MG2 pour “Moteur-Générateur”.

Vous voyez probablement où je veux en venir … L’idée sous-jacente est de maintenir le thermique dans sa plage de rendement optimale — ou qu’il ne tourne pas du tout !

L’énergie produite en trop par le thermique sera transformée en électricité et stockée dans la batterie. Et alternativement, la batterie peut fournir un supplément de puissance au moteur thermique.

Le thermique ne tourne jamais au ralenti. Soit il tourne à un régime efficace, et transmets du couple au roue et/ou recharge la batterie soit il ne tourne pas. Même le démarrage est optimisé. Il n’y a pas de démarreur, l’un des moteurs électrique lance le moteur à 1500 tours/minute avant que l’injection ne soit déclenchée. Ce qui permet de limiter la consommation au maximum lors du démarrage. Heureusement, car le moteur démarre et se coupe souvent.

Sous le capot, comment ça se passe ?

L’élément important, c’est le train épicycloïdal, ou planétaire. Les deux moteurs électriques et le thermique sont reliés par ce train.

Je ne vais pas rentrer dans le détail, les membres du Prius Touring Club expliquent ça très bien.

Mais tout résumer au planétaire, c’est réducteur. Le thermique est optimisé pour une basse consommation. Cycle Atkinson, VVT-I, gaz d’échappement renvoyés sur le moteur pour le chauffer plus rapidement. Toutes les techniques pour améliorer la consommation sont présentes.

Une maintenance réduite

Un effet de bord d’avoir une grosse batterie dans le coffre, c’est qu’il y a assez de puissance pour alimenter par exemple les pompes et la climatisation directement par des moteurs électriques. Cela veut dire qu’il n’y a pas de courroie d’accessoire. Et que la clim fonctionne même quand le thermique ne tourne pas.

Et comme tous les moteurs VVTi de Toyota, la Prius a une chaîne de distribution. [Update : merci à Axone d'avoir corrigé mon erreur]

De plus, il n’y a pas d’embrayage et de boîte de vitesses, pas de démarreur, pas d’alternateur, encore des pièces qui ne risquent pas de tomber en panne. Et pas de turbo. Malheureusement, il y en a d’autres, comme cette petite batterie de 12V qui est tombé en panne (anecdote à suivre … ).

Le freinage régénératif utilise les moteurs électriques pour ralentir la voiture et l’énergie est récupérée dans la batterie. Lorsque l’on freine légèrement, les freins à disque ne sont pas utilisés du tout. Donc avec une conduite adaptée et un freinage anticipé, il est possible de ne presque jamais utiliser/user ses freins.

A venir

  • Comment ça se conduit ?
  • La conso ?
  • L’entretien ?
  • Quels acronymes ? (GPS, HUD, SKS, DVD, HD …)
  • Est ce qu’on arrive à se faire au look de la voiture ?
  • Le toit solaire ? A quoi ça sert ?
  • Crevaison, problème de batterie, rayures.
  • Les autres soucis

Ohm Studio announced !

Finally, we unveil a bit of the project Ohm Force has been recently working on: Ohm Studio

That’s collaborative music composition in a fully featured sequencer, with some innovative features.

My part is the real-time stuff and storage, and that’s where ejabberd comes in with some custom OTP applications and redis. Amazon Web Services are also an important part of the setup.

I’ll certainly write more on the topic regarding the technical stuff.

So now the cat is out of the bag, hope you like it.

Lettre envoyée au support d’amazon

Une fois de plus, Chronopost a frappé par l’idiotie de ses procédures !

Bonjour,

Une fois de plus, Chronopost refuse de livrer les paquets chez moi ou à mon gardien ou même reprogrammer une livraison en mon absence (supposé) contrairement à toutes les autres sociétés de livraison.
Le livreur m’a laissé un papier avec un numéro de suivi sans d’ailleurs préciser si c’était à la poste ou à l’agence Chronopost de je-ne-sais-où.

Je n’irai pas chercher ce colis. Si Chronopost ne me le re-livre pas, il vous sera retourné, et je vous demande le remboursement de ce produit.
Je commande en ligne pour que ça arrive chez moi ou chez mon gardien. Pas pour aller à la Poste et subir une expérience pire que si j’avais été physiquement dans un magasin concurrent.

Les autres transporteurs (UPS, TNT et DHL) bien qu’ayant leurs défauts, ne *vous* font jamais cet affront.

S’il vous plaît, si vous (encore) voulez améliorer votre service, n’utilisez plus Chronopost. Je vous écris à vous, car je sais que vous prenez en compte votre qualité de service client.

Cordialement,

riak_redis_backend : thoughts

Post Mortem

riak_redis_backend has migrated from a gist to a full size github project.

Finally, my code passes all tests I throw at it. It’s been a fun ride up to now. I still have a few ideas to implement but the bulk of the work is done — and it’s not even a 100 LOCs …

I recently spent some quality time with redis and the erldis erlang library for a project.

And last week I decided that Riak would be my “week-end sized tech”. In the wee hours of Monday morning, I decided that writing a Redis backend for Riak should be fun and easy.

It was easy — in hindsight. But I hit a few roadblocks.

The riak_backend_tests passed quite quickly but it was not enough. My own riak test code tendend to be slow and mapreduce jobs would timeout.

At first I thought about improving the performance of erldis (the erlang Redis library). With the help of Jacob Perkins, the erldis maintainer, we identified where to improve performance. Basically it consisted in moving from strings/lists to binaries. Performance was improved and 50% better.

Code available here

I also removed many useless checks on keys belonging to sets. Just write every time as data in that case is very short and redis has very good write performance.

But my code still had mapreduce failures.

It all came from a misconception about that Partition argument in the start function … I ignored it and I was wrong. All the riak_redis_backends would connect to the same key space and exchange uselessly information until timeout.

I tried to have partitions connect to different redis databases. Not good as a Redis server can only have 16 databases. [update : this is by default. Redis can be configured to handle way more in redis.conf]

So I prefixed the key name by node()Partition

Also, using the synchronous version of erldis also certainly slowed a bit. A put/delete operation is four Redis operations :

– adding to the bucket/key to the world set.

– setting the bucket/key to the binary_to_term‘ed Value.

– adding the key to the specific Bucket set.

– adding the Bucket to the buckets set.

An incoming improvement will be to rollback if one of these operation fail (that’s an important one).

I sped up things by starting a process for each operation and wait for the result. The four operations are done in parallel for better efficiency.

Code is still a bit slower on insert/delete than DETS reference code, but consistently faster on mapreduce operations. (see the riak-playground escript)

The future

Will this code be useful ?

I hope it can help. Both Riak and Redis are great and are great complements to each other. Redis is very fast while Riak handles masterless replication redundancy and mapreduce. So I do find them being a great match together.

For the time being the problem is that Redis is limited to RAM sized data sets. But it won’t last. antirez is committed to releasing to a virtual memory version of redis this year.

So that should not be an issue soon.

And is it really a problem ? I see my code as mitigating this temporary issue !

I taught RDBMS for several years. I’m sorry Dr. Codd, but database systems never have been this fun.

riak_redis_backend is now passing all tests

See here !

I am a bit disappointed on insert times (twice slower than dets), but I could have a plan.

It’s been great fun and I learnt a lot on both Riak and Redis.

The gist is here — though it now deserves to migrate to a full size github project.

Later, after foie gras, salmon and fine French wine I might dissect the approach to the code, and my plan !

Merry Christmas !

A redis backend for riak.

Awesome + Awesome = AWESOMER

Riak is AWESOME.

redis is AWESOME.

Why not marry them and keep the babies ?

The riak_redis_backend is exactly the point. Data stuffed into riak is stored on a redis running on localhost on the standard port. (Having non-local data would kind of miss the point, right ?)
An added trick is that the redis database index is different for each riak nodes — if you happen to run all your Riak nodes on the same machine.

Warnings :

Implementation sucks big time, and though it passes the riak_test_util:standard_backend_test, I made it timeout on some MapRed jobs. And MapRed tasks also runs slower than dets ones.

[Update] performance has been improved by using a better encoding (meaning I removed that base64 horror … fprof told me that). My test code went down from 25 seconds to 15 seconds.

Can it be useful — one day ?

Not sure. Given that redis cannot currently have a dataset bigger than memory (but plans to have virtual memory), it kind of limit the data size.

Performance is currently worse than riak_dets_backend, but given that Redis is *fast*, one can hope for enhancements. I think that most of the improvement should come from the erldis library which could need some tweaking for better handling binaries.

Where is it ?

It’s over there !

How can I use it

Install the erldis (binary branch) application in your lib/ Riak node directory.
Compile and hurl in the riak/ebin directory. Restart riak node, make sure redis is running, and off you go.

Follow

Get every new post delivered to your Inbox.