{"id":1674,"date":"2023-04-17T13:07:04","date_gmt":"2023-04-17T11:07:04","guid":{"rendered":"https:\/\/www.loicmathieu.fr\/wordpress\/?p=1674"},"modified":"2023-04-17T13:09:47","modified_gmt":"2023-04-17T11:09:47","slug":"devoxx-fr-2023-foundation-db-le-secret-le-mieux-garde-des-nouvelles-architectures-distribuees-par-pierre-zemb-et-steven-le-roux","status":"publish","type":"post","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/devoxx-fr-2023-foundation-db-le-secret-le-mieux-garde-des-nouvelles-architectures-distribuees-par-pierre-zemb-et-steven-le-roux\/","title":{"rendered":"Devoxx FR 2023 &#8211; FoundationDB : le secret le mieux gard\u00e9 des nouvelles architectures distribu\u00e9es ! par Pierre Zemb et Steven Le Roux"},"content":{"rendered":"<p>Il existe pr\u00e8s de 900 BDD (cf <a href=\"https:\/\/dbdb.io\/\"><a href=\"https:\/\/dbdb.io\/\">https:\/\/dbdb.io\/<\/a><\/a>) et chacune a ses particularit\u00e9s : mod\u00e8le de requ\u00eatage, mod\u00e9lisation de la donn\u00e9e, moteur de stockage, &#8230;.<\/p>\n<p>Existe-t-il une de ces trois caract\u00e9ristiques que l&rsquo;on peut mutualiser ?<\/p>\n<p>Oui, toutes les bases de donn\u00e9es stockent de la donn\u00e9e, on doit donc pouvoir mutualiser le stockage.<\/p>\n<p>Avec un moteur de stockage s\u00e9par\u00e9, les BDD deviennent stateless !<\/p>\n<p>Ce moteur doit \u00eatre performant, scallable, fournir une abstraction pour construire des BDD, et faciliter les op\u00e9rations et la maintenance.<\/p>\n<p><strong>FoundationDB<\/strong> r\u00e9pond \u00e0 tout \u00e7a !<\/p>\n<p>Les concepts :<\/p>\n<ul><li>Moteur transactionnel scallable aux performances du NoSQL (forte volum\u00e9trie de lecture \/ \u00e9criture)<\/li>\n\n<li>Fonctionnalit\u00e9s r\u00e9duites<\/li>\n\n<li>Cl\u00e9 \/ Valeur (get, put, scan)<\/li>\n\n<li>Les cl\u00e9s sont ordonn\u00e9es<\/li>\n\n<li>Transaction de type \u00ab\u00a0strict serializability\u00a0\u00bb<\/li>\n<\/ul>\n<p>FoundationDB est un projet cr\u00e9\u00e9 en 2009, achet\u00e9 par Apple en 2015, et mis en OSS en 2018 sous licence Apache v2. Utilis\u00e9 aussi par Snowflake qui est un important contributeur.<\/p>\n<p>Apple l&rsquo;utilise entre autre dans iCloud.<\/p>\n<p>Architecture macro :<\/p>\n<ul><li>Architecture bas\u00e9e sur des acteurs qui ont un r\u00f4le<\/li>\n\n<li>Pour scaller, on ajoute des acteurs sur le r\u00f4le qui est \u00e0 la limite<\/li>\n\n<li>La base de donn\u00e9es diagnostique automatiquement les r\u00f4les qui manquent d&rsquo;acteurs : facilite les op\u00e9rations !<\/li>\n\n<li>S\u00e9pare lecture et \u00e9criture qui peuvent \u00eatre scall\u00e9es s\u00e9par\u00e9ment<\/li>\n<\/ul>\n<p>Gr\u00e2ce \u00e0 ce mod\u00e8le : scallabilit\u00e9 quasi lin\u00e9aire ! Jusqu&rsquo;\u00e0 10 millions d&rsquo;op\u00e9rations par seconde avec 400 c\u0153urs.<\/p>\n<p>Debugger un syst\u00e8me distribu\u00e9 en production est un enfer, FoundationDB a cr\u00e9\u00e9 un simulateur pour pouvoir simuler et injecter des fautes pour tester sa base de donn\u00e9es d&rsquo;une mani\u00e8re d\u00e9terministe. Permets d&rsquo;injecter des fautes dans les I\/O disque ou r\u00e9seau, dans le temps, sur un r\u00f4le \/ un acteur donn\u00e9.\nApple et Snowflake font tourner des scenarii de simulation qui correspondent, par an, \u00e0 4000 ans de chaos testing.<\/p>\n<p>Clever Cloud travail sur une solution de BDD serverless bas\u00e9 sur FoundationDB cod\u00e9e en Rust.<\/p>\n<p>Rentrons en d\u00e9tail dans FoundationDB :<\/p>\n<ul><li>API Java Cl\u00e9 \/ Valeur simple avec rejeux infini en cas d&rsquo;erreur, transactionnelle par d\u00e9faut.<\/li>\n\n<li>Cl\u00e9 et valeur sont des tableaux de bytes.<\/li>\n\n<li>Les transactions sont rejou\u00e9es automatiquement en cas de conflit transactionnel.<\/li>\n\n<li>Par d\u00e9faut, les mutations sont gard\u00e9es en m\u00e9moire 5s, les transactions ne peuvent donc pas durer plus de 5s. FoundationDB ne peut donc pas \u00eatre utilis\u00e9 pour de l&rsquo;analytics.<\/li>\n\n<li>Les cl\u00e9s ne peuvent d\u00e9passer 10Ko et la valeur 100Ko. Pour stocker plus, il faut d\u00e9couper la donn\u00e9e \u00e0 stocker en plusieurs cl\u00e9s \/ valeurs.<\/li>\n<\/ul>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Il existe pr\u00e8s de 900 BDD (cf <a href=\"https:\/\/dbdb.io\/\">https:\/\/dbdb.io\/<\/a>) et chacune a ses particularit\u00e9s : mod\u00e8le de requ\u00eatage, mod\u00e9lisation de la donn\u00e9e, moteur de stockage, &#8230;. Existe-t-il une de ces trois caract\u00e9ristiques que l&rsquo;on peut mutualiser ? Oui, toutes les bases de donn\u00e9es stockent de la donn\u00e9e, on doit donc pouvoir mutualiser le stockage. Avec un moteur de stockage s\u00e9par\u00e9, les BDD deviennent stateless ! Ce moteur doit \u00eatre performant, scallable, fournir une abstraction pour construire des BDD, et faciliter les&#8230;<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/devoxx-fr-2023-foundation-db-le-secret-le-mieux-garde-des-nouvelles-architectures-distribuees-par-pierre-zemb-et-steven-le-roux\/\">Lire la suite<span class=\"screen-reader-text\"> Lire la suite<\/span><\/a><\/p><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9],"tags":[203,166,217],"class_list":["post-1674","post","type-post","status-publish","format-standard","hentry","category-informatique","tag-database","tag-devoxx","tag-foundationdb"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":566,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/chti-jug-lili-et-cassandra\/","url_meta":{"origin":1674,"position":0},"title":"Ch&rsquo;ti JUG : Lili et Cassandra","author":"admin","date":"jeudi 15 d\u00e9cembre 2011","format":false,"excerpt":"Le 12 d\u00e9cembre s'est tenu dans les locaux de l'IUT A de Lille une session du Ch'ti JUG sur Lili et Cassandra deux outils autour des bases de donn\u00e9es NoSql. La pr\u00e9sentation de Lili a \u00e9t\u00e9 faite par Stevens Noel et celle sur Cassandra par J\u00e9r\u00e9my Sevellec. Ayant d\u00e9j\u00e0 \u00e9crit\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":419,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/chti-jug-nosql\/","url_meta":{"origin":1674,"position":1},"title":"Ch&rsquo;ti JUG : NoSQL","author":"admin","date":"lundi 20 d\u00e9cembre 2010","format":false,"excerpt":"Le 2 d\u00e9cembre s'est tenu dans les locaux de l'IUT A de Lille une session du Ch'ti JUG sur les technologie NoSQL anim\u00e9 par Olivier Mallassi. L'intervenant a commenc\u00e9 la conf\u00e9rence par un bref historique de la mani\u00e8re dont les donn\u00e9es on \u00e9t\u00e9 stock\u00e9es dans le monde de l'informatique: Au\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":391,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/chti-jug-drools-v5-et-drools-planner\/","url_meta":{"origin":1674,"position":2},"title":"Ch&rsquo;ti Jug: Drools v5 et Drools Planner","author":"admin","date":"samedi 13 f\u00e9vrier 2010","format":false,"excerpt":"Jeudi 21 janvier s'est tenu dans les locaux de l'Universit\u00e9 de Lille 1 une session du Ch'ti Jug sponsoris\u00e9e par Cylande sur Drools:\u00a0 Drools, avec Cylande et l'Universit\u00e9 Lille 1 Pour ceux qui ne savent pas ce qu'est le Ch'ti Jug ou ce qu'est un Jug, voir l'introduction de mon\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1677,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/devoxx-fr-2023-lincheck-testing-concurrency-on-the-jvm-par-maria-sokolova\/","url_meta":{"origin":1674,"position":3},"title":"Devoxx FR 2023 &#8211;  Lincheck: Testing concurrency on the JVM par Maria Sokolova","author":"admin","date":"lundi 17 avril 2023","format":false,"excerpt":"Maria Sokolova est une des d\u00e9veloppeuses de l'\u00e9quipe des coroutines de Kotlin et de Lincheck et elle va nous pr\u00e9senter Lincheck, une librairie permettant de valider les algorithmes concurrents. On prend comme exemple une bounded queue bas\u00e9e sur ConcurrentLinkedList dont l'impl\u00e9mentation a \u00e9t\u00e9 faite par ChatGTP en Kotlin. L'impl\u00e9mentation propos\u00e9e\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1668,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/devoxx-fr-2023-hidden-security-features-of-th-jvm-everything-you-didnt-know-and-more-par-steve-poole\/","url_meta":{"origin":1674,"position":4},"title":"Devoxx FR 2023 &#8211; Hidden security features of the JVM &#8211; everything you didn&rsquo;t know and more par Steve Poole","author":"admin","date":"vendredi 14 avril 2023","format":false,"excerpt":"Premi\u00e8re conf\u00e9rence \u00e0 laquelle je vais pour cette session de Devoxx France parle de s\u00e9curit\u00e9 dans le JVM par Steve Poole. Le Security Manager est d\u00e9pr\u00e9ci\u00e9 mais la JVM a un design fantastique pour la s\u00e9curit\u00e9. Tout d'abord, pourquoi se soucier de la s\u00e9curit\u00e9 ? Premi\u00e8re conf\u00e9rence \u00e0 laquelle je\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":923,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/devoxx-france-2019\/","url_meta":{"origin":1674,"position":5},"title":"Devoxx France 2019","author":"admin","date":"lundi 13 mai 2019","format":false,"excerpt":"Cette ann\u00e9e, j'ai eu la chance d'assister \u00e0 Devoxx France, j'ai m\u00eame eu la chance d'\u00eatre speaker et de donner deux talks (Mes premiers pas en deeplearning avec Keras et Arthas - Alibaba Java Diagnostic Tool ), mais \u00e7a je vous en parlerais plus tard ;) Voici un petit compte\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/1674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/comments?post=1674"}],"version-history":[{"count":2,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/1674\/revisions"}],"predecessor-version":[{"id":1676,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/1674\/revisions\/1676"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/media?parent=1674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/categories?post=1674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/tags?post=1674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}