Publications de Sébastian Méric de Bellefon

Archi & techno

Le multithreading zen

La mémoire transactionnelle (ou STM) est un mécanisme de concurrence alternatif au locking classique. Ce mécanisme permet de réaliser en mémoire des transactions atomiques, cohérentes et isolées. Ces transactions ne sont évidemment pas durables. Par nature, la STM ne connait ni deadlock ni race condition. Elle ouvre la porte au multithreading zen.   STM is to shared-memory concurrency as Garbage Collection is to memory management. -- Dan Grossman

Lire la suite
Archi & techno

Design Patterns : Saison 2

  Design Patterns are signs of weakness in programming languages -- Mark Dominus Our patterns assume Smalltalk/C++-level language features, and that choice determines what can and cannot be implemented easily -- Design Patterns, Gang Of Four Face aux lacunes de chaque langage, les programmeurs ont inventé des mécanismes réutilisables pour faire face à un certain nombre de problèmes récurrents. Au travers de plusieurs exemples concrets, cet article va montrer comment un programmeur peut rendre son code plus compact en choisissant un langage de programmation qui…

Lire la suite
Archi & techno

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…

Lire la suite
Archi & techno

Une base de données purement fonctionnelle

Le modèle relationnel est né à une époque où l'espace était rare, et fut donc conçu pour minimiser le niveau de redondance des données: il était plus économique de stocker une indirection vers une chaine de caractères que de stocker cette chaine deux fois. Aujourd'hui, cette contrainte d'espace ne tient plus. On achète un Teraoctet pour 100 dollars, la RAM est abondante, et les disques flash aux performances élevées vont bientôt rejoindre le prix des disques durs rotatifs. Deux limitations fondamentales du stockage ont donc…

Lire la suite
Archi & techno

Le filtre de Bloom

Nous allons présenter dans cet article le filtre de Bloom, une structure de données méconnue mais appréciée, tant pour sa simplicité d’utilisation que pour les gains de performance qu’elle permet d’apporter. Elle a été choisie par l’équipe de Google Chrome pour implémenter la fonctionnalité « Safe Browsing » qui protège les utilisateurs contre des attaques de fishing et contre certains types de malware. Avec Safe Browsing, le navigateur effectue une validation avant de commencer le chargement d’une page. Si l’URL en question est identifiée parmi une vaste…

Lire la suite