SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Comment se consoler quand on n’a pas d’ami mais qu’on
  veut faire comme si on en avait plein en faisant genre les
 amis de mes amis, même s’ils n’ont jamais vu ma tronche,
 on va dire que c’est mes amis quand même ou même que
   leurs amis le sont aussi dès fois que quelqu’un dont j’ai
   vaguement entendu parler ait dans ses amis un ami qui
  connaisse une amie qui a un jour ajouté une top-modèle
sur un site de réseau social et la top-modèle a accepté par
erreur l’invitation comme Louise Attaque et du coup je vais
pouvoir frimer en ayant peut-être le nom de la top-modèle
affiché sur ma fiche sur le site, sauf que sans ami je sais pas
 qui va le voir, sauf un autre type désespéré car les réseaux
    sociaux permettent de socialiser les réseaux. Ou pas.
                          Et vice-versa.
Leçons tirées de LinkedIn, Mixi et Friendster :

•Des outils permettant de mémoriser des réseaux sociaux
existent, mais en dehors d’outils développés en interne, il
ne semble pas y en avoir susceptibles de prendre en charge
de gros réseaux dynamiques.
•Les développeurs de ces sites sont des tronches. Il a
pourtant fallu 6 mois à l’équipe de développement de
Friendster pour créer la version actuelle de son “graph
server”, malgré son expérience précédente.
•Bref, c’est pas gagné.
LinkedIn :

“Only way to get the performance needed is to run the
         algorithms on data stored in RAM!”
Application


               Serveurs SQL (“slaves”)



Serveur de graphs Serveur de graphs Serveur de graphs
Application


               Serveurs SQL (“slaves”)


                   Relai / tampon
             getChangesSince(timestamp)

Serveur de graphs Serveur de graphs Serveur de graphs
Boost Graph Library
Parallel Boost Graph Library
Les allocations / libérations de mémoire :

•Elles seront très fréquentes.
•Les structures seront très petites.
•L’espace requis peut excéder la taille de la
mémoire physique.
•Tout risque de fragmentation est à éviter.
•Essayons de profiter des systèmes actuels
(caches et plusieurs coeurs).
•Ces contraintes existent déjà dans les noyaux
des systèmes d’exploitation.
•mmap() et allocations par slabs.
Un utilisateur : environ 24 octets




    •UID
    •Nombre de liens
    •Nombre de rétroliens
    •Liste de liens
    •Liste de rétroliens
Un lien : 20 octets


   762 Mo suffisent à stocker 40 millions de liens

Un lien connaît la référence du rétrolien réciproque.

Un rétrolien connaît la référence du lien réciproque.
Pour la suppression d’un lien, on peut tirer profit des
informations dont on dispose pour trouver le moyen le
plus rapide de localiser ce lien et le rétrolien :

•La cardinalité des liens et des rétroliens d’un
utilisateur
•La référence entre un lien et son rétrolien réciproque
(et inversement)
Les splay-tree




Un splay-tree est un arbre de recherche qui s’auto-
optimise.

Les noeuds les plus fréquemment recherchés deviennent
les plus rapides d’accès.
Le marquage :
un système bien pratique pour parcourir un graphe.
Un marqueur simple ne permet pas de parcours sans
verrou.

Un marqueur sous forme d’une liste associée à chaque
utilisateur a un coût important (mémoire) et ne permet pas
de savoir de façon simple quels sont les goulots
d’engorgement.
Un splay-tree crée au fur et à mesure du parcours :

•Permet des parcours sans utiliser de verrou
•Nécessite très peu de mémoire
•Permet de connaître les goulots d’engorgement, pour
les mémoriser sous forme compressée dans un cache
partagé.
Code préliminaire

             Générateur de graphs denses :
Chaque utilisateur a entre 8 et 128 amis directs, qui ont 1
  chance sur 16 d’avoir l’utilisateur en ami réciproque.

  Création du graphe jusqu’à 1000000 d’amis : 373 000
                insertions par seconde.

  Parcours du graphe (sérialisé), sur 3 niveaux : 79 000
               recherches par seconde.
La distribution
•Les adresses virtuelles pourraient désigner plusieurs
machines physiques.
•Peer 2 Peer ?




    http://qdbm.sourceforge.net/mikio/he-sigmodj.pdf
   http://hyperestraier.sourceforge.net/nguide-en.html

Contenu connexe

En vedette

Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du Luxe
 Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du Luxe Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du Luxe
Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du LuxeCustomer Insight
 
2 clairmont-ecosystemopensourcebigdata-130228095712-phpapp02
2 clairmont-ecosystemopensourcebigdata-130228095712-phpapp022 clairmont-ecosystemopensourcebigdata-130228095712-phpapp02
2 clairmont-ecosystemopensourcebigdata-130228095712-phpapp02gtll_systematic
 
Ceps le recrutement_des_seniors
Ceps le recrutement_des_seniorsCeps le recrutement_des_seniors
Ceps le recrutement_des_seniorsLuxemburger Wort
 
Agosto Somos Monos
Agosto Somos MonosAgosto Somos Monos
Agosto Somos MonosAdalberto
 
CléMent Oualid Voile
CléMent Oualid VoileCléMent Oualid Voile
CléMent Oualid Voilesandrine
 
4 picavet-datatuesdayvincentpicavet-130228100952-phpapp02
4 picavet-datatuesdayvincentpicavet-130228100952-phpapp024 picavet-datatuesdayvincentpicavet-130228100952-phpapp02
4 picavet-datatuesdayvincentpicavet-130228100952-phpapp02gtll_systematic
 
Proposta de Reactivació Econòmica
Proposta de Reactivació EconòmicaProposta de Reactivació Econòmica
Proposta de Reactivació Econòmicasocialistes_ cat
 
Bienvenidoalmundodelosanimales 090320125937 Phpapp01
Bienvenidoalmundodelosanimales 090320125937 Phpapp01Bienvenidoalmundodelosanimales 090320125937 Phpapp01
Bienvenidoalmundodelosanimales 090320125937 Phpapp01Adalberto
 
Paradigmas Y Modelos Educativos Ii 27799
Paradigmas Y Modelos Educativos Ii 27799Paradigmas Y Modelos Educativos Ii 27799
Paradigmas Y Modelos Educativos Ii 27799Adalberto
 
Maestria Curriculum 4 De La EducacióN Superior AnáLisis De Dilemas
Maestria Curriculum 4  De La EducacióN Superior AnáLisis De DilemasMaestria Curriculum 4  De La EducacióN Superior AnáLisis De Dilemas
Maestria Curriculum 4 De La EducacióN Superior AnáLisis De DilemasAdalberto
 
Police note technique b1_30.01.2013 wort.lu
Police note technique b1_30.01.2013 wort.luPolice note technique b1_30.01.2013 wort.lu
Police note technique b1_30.01.2013 wort.luLuxemburger Wort
 
contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de...
 contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de... contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de...
contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de...AGELLID Bucama
 
MaesrtíA Diversidad DidáCtica
MaesrtíA Diversidad DidáCticaMaesrtíA Diversidad DidáCtica
MaesrtíA Diversidad DidáCticaAdalberto
 

En vedette (20)

Compte-rendu journée d'étude du 24mars 2015
Compte-rendu journée d'étude du 24mars 2015 Compte-rendu journée d'étude du 24mars 2015
Compte-rendu journée d'étude du 24mars 2015
 
Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du Luxe
 Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du Luxe Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du Luxe
Conference Mediapost Publicité - Le Home Média au coeur des Stratégies du Luxe
 
2 clairmont-ecosystemopensourcebigdata-130228095712-phpapp02
2 clairmont-ecosystemopensourcebigdata-130228095712-phpapp022 clairmont-ecosystemopensourcebigdata-130228095712-phpapp02
2 clairmont-ecosystemopensourcebigdata-130228095712-phpapp02
 
Ceps le recrutement_des_seniors
Ceps le recrutement_des_seniorsCeps le recrutement_des_seniors
Ceps le recrutement_des_seniors
 
Eoliennes nouveau cadre
Eoliennes nouveau cadreEoliennes nouveau cadre
Eoliennes nouveau cadre
 
Agosto Somos Monos
Agosto Somos MonosAgosto Somos Monos
Agosto Somos Monos
 
CléMent Oualid Voile
CléMent Oualid VoileCléMent Oualid Voile
CléMent Oualid Voile
 
09 le-vieux-sage-et-le-bonheur
09 le-vieux-sage-et-le-bonheur09 le-vieux-sage-et-le-bonheur
09 le-vieux-sage-et-le-bonheur
 
4 picavet-datatuesdayvincentpicavet-130228100952-phpapp02
4 picavet-datatuesdayvincentpicavet-130228100952-phpapp024 picavet-datatuesdayvincentpicavet-130228100952-phpapp02
4 picavet-datatuesdayvincentpicavet-130228100952-phpapp02
 
Luis
LuisLuis
Luis
 
Proposta de Reactivació Econòmica
Proposta de Reactivació EconòmicaProposta de Reactivació Econòmica
Proposta de Reactivació Econòmica
 
Carières
CarièresCarières
Carières
 
Bienvenidoalmundodelosanimales 090320125937 Phpapp01
Bienvenidoalmundodelosanimales 090320125937 Phpapp01Bienvenidoalmundodelosanimales 090320125937 Phpapp01
Bienvenidoalmundodelosanimales 090320125937 Phpapp01
 
Paradigmas Y Modelos Educativos Ii 27799
Paradigmas Y Modelos Educativos Ii 27799Paradigmas Y Modelos Educativos Ii 27799
Paradigmas Y Modelos Educativos Ii 27799
 
Maestria Curriculum 4 De La EducacióN Superior AnáLisis De Dilemas
Maestria Curriculum 4  De La EducacióN Superior AnáLisis De DilemasMaestria Curriculum 4  De La EducacióN Superior AnáLisis De Dilemas
Maestria Curriculum 4 De La EducacióN Superior AnáLisis De Dilemas
 
Police note technique b1_30.01.2013 wort.lu
Police note technique b1_30.01.2013 wort.luPolice note technique b1_30.01.2013 wort.lu
Police note technique b1_30.01.2013 wort.lu
 
Moisès
MoisèsMoisès
Moisès
 
contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de...
 contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de... contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de...
contribution-a-l-etude-de-la-toponymie-berbere-en-afrique-du-nord-memoire-de...
 
MaesrtíA Diversidad DidáCtica
MaesrtíA Diversidad DidáCticaMaesrtíA Diversidad DidáCtica
MaesrtíA Diversidad DidáCtica
 
LYON!
LYON!LYON!
LYON!
 

Similaire à Graphs

Système de recommandations de films
Système de recommandations de filmsSystème de recommandations de films
Système de recommandations de filmsIbn Tofail University
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
Bureaux portables sur clé usb version 2017
Bureaux portables sur clé usb version 2017Bureaux portables sur clé usb version 2017
Bureaux portables sur clé usb version 2017URFIST de Paris
 
Croisière sur le data lake
Croisière sur le data lakeCroisière sur le data lake
Croisière sur le data lakeDavid Morel
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxLaurent Broudoux
 
Dans l'esprit du Pagerank: regards croisés sur les algorithmes,
Dans l'esprit du Pagerank: regards croisés sur les algorithmes,Dans l'esprit du Pagerank: regards croisés sur les algorithmes,
Dans l'esprit du Pagerank: regards croisés sur les algorithmes,Fabien Gandon
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsChristopheTricot
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBRomain Cambien
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO Technology
 
Culture numérique - Révision.pdf
Culture numérique - Révision.pdfCulture numérique - Révision.pdf
Culture numérique - Révision.pdfMedBechir
 
Web sémantique et Web de données, et si on passait à la pratique ?
Web sémantique et Web de données, et si on passait à la pratique ?Web sémantique et Web de données, et si on passait à la pratique ?
Web sémantique et Web de données, et si on passait à la pratique ?Antidot
 
Social network metrics and trust based recommendation
Social network metrics and trust based recommendationSocial network metrics and trust based recommendation
Social network metrics and trust based recommendationJimmy Siméon
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchBesoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchfrancelabs
 

Similaire à Graphs (20)

Hackerspace jan-2013
Hackerspace jan-2013Hackerspace jan-2013
Hackerspace jan-2013
 
Système de recommandations de films
Système de recommandations de filmsSystème de recommandations de films
Système de recommandations de films
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performances
 
Bureaux portables 2018
Bureaux portables 2018Bureaux portables 2018
Bureaux portables 2018
 
Bureaux portables sur clé usb version 2017
Bureaux portables sur clé usb version 2017Bureaux portables sur clé usb version 2017
Bureaux portables sur clé usb version 2017
 
Croisière sur le data lake
Croisière sur le data lakeCroisière sur le data lake
Croisière sur le data lake
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
 
Dans l'esprit du Pagerank: regards croisés sur les algorithmes,
Dans l'esprit du Pagerank: regards croisés sur les algorithmes,Dans l'esprit du Pagerank: regards croisés sur les algorithmes,
Dans l'esprit du Pagerank: regards croisés sur les algorithmes,
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informations
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gc
 
Culture numérique - Révision.pdf
Culture numérique - Révision.pdfCulture numérique - Révision.pdf
Culture numérique - Révision.pdf
 
Web sémantique et Web de données, et si on passait à la pratique ?
Web sémantique et Web de données, et si on passait à la pratique ?Web sémantique et Web de données, et si on passait à la pratique ?
Web sémantique et Web de données, et si on passait à la pratique ?
 
Scratch
ScratchScratch
Scratch
 
Social network metrics and trust based recommendation
Social network metrics and trust based recommendationSocial network metrics and trust based recommendation
Social network metrics and trust based recommendation
 
Neo4j
Neo4jNeo4j
Neo4j
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchBesoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
 
Base de données
Base de donnéesBase de données
Base de données
 

Plus de Frank Denis

El Passo - Privacy-preserving single sign on
El Passo - Privacy-preserving single sign onEl Passo - Privacy-preserving single sign on
El Passo - Privacy-preserving single sign onFrank Denis
 
Improving password-based authentication
Improving password-based authenticationImproving password-based authentication
Improving password-based authenticationFrank Denis
 
This domain name will self-destruct tomorrow
This domain name will self-destruct tomorrowThis domain name will self-destruct tomorrow
This domain name will self-destruct tomorrowFrank Denis
 
Malware vs Big Data
Malware vs Big DataMalware vs Big Data
Malware vs Big DataFrank Denis
 
Abusing Javascript to speedup mobile web sites
Abusing Javascript to speedup mobile web sitesAbusing Javascript to speedup mobile web sites
Abusing Javascript to speedup mobile web sitesFrank Denis
 
An introduction to Pincaster
An introduction to PincasterAn introduction to Pincaster
An introduction to PincasterFrank Denis
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Frank Denis
 

Plus de Frank Denis (7)

El Passo - Privacy-preserving single sign on
El Passo - Privacy-preserving single sign onEl Passo - Privacy-preserving single sign on
El Passo - Privacy-preserving single sign on
 
Improving password-based authentication
Improving password-based authenticationImproving password-based authentication
Improving password-based authentication
 
This domain name will self-destruct tomorrow
This domain name will self-destruct tomorrowThis domain name will self-destruct tomorrow
This domain name will self-destruct tomorrow
 
Malware vs Big Data
Malware vs Big DataMalware vs Big Data
Malware vs Big Data
 
Abusing Javascript to speedup mobile web sites
Abusing Javascript to speedup mobile web sitesAbusing Javascript to speedup mobile web sites
Abusing Javascript to speedup mobile web sites
 
An introduction to Pincaster
An introduction to PincasterAn introduction to Pincaster
An introduction to Pincaster
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2)
 

Graphs

  • 1. Comment se consoler quand on n’a pas d’ami mais qu’on veut faire comme si on en avait plein en faisant genre les amis de mes amis, même s’ils n’ont jamais vu ma tronche, on va dire que c’est mes amis quand même ou même que leurs amis le sont aussi dès fois que quelqu’un dont j’ai vaguement entendu parler ait dans ses amis un ami qui connaisse une amie qui a un jour ajouté une top-modèle sur un site de réseau social et la top-modèle a accepté par erreur l’invitation comme Louise Attaque et du coup je vais pouvoir frimer en ayant peut-être le nom de la top-modèle affiché sur ma fiche sur le site, sauf que sans ami je sais pas qui va le voir, sauf un autre type désespéré car les réseaux sociaux permettent de socialiser les réseaux. Ou pas. Et vice-versa.
  • 2. Leçons tirées de LinkedIn, Mixi et Friendster : •Des outils permettant de mémoriser des réseaux sociaux existent, mais en dehors d’outils développés en interne, il ne semble pas y en avoir susceptibles de prendre en charge de gros réseaux dynamiques. •Les développeurs de ces sites sont des tronches. Il a pourtant fallu 6 mois à l’équipe de développement de Friendster pour créer la version actuelle de son “graph server”, malgré son expérience précédente. •Bref, c’est pas gagné.
  • 3. LinkedIn : “Only way to get the performance needed is to run the algorithms on data stored in RAM!”
  • 4. Application Serveurs SQL (“slaves”) Serveur de graphs Serveur de graphs Serveur de graphs
  • 5. Application Serveurs SQL (“slaves”) Relai / tampon getChangesSince(timestamp) Serveur de graphs Serveur de graphs Serveur de graphs
  • 6. Boost Graph Library Parallel Boost Graph Library
  • 7. Les allocations / libérations de mémoire : •Elles seront très fréquentes. •Les structures seront très petites. •L’espace requis peut excéder la taille de la mémoire physique. •Tout risque de fragmentation est à éviter. •Essayons de profiter des systèmes actuels (caches et plusieurs coeurs). •Ces contraintes existent déjà dans les noyaux des systèmes d’exploitation. •mmap() et allocations par slabs.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Un utilisateur : environ 24 octets •UID •Nombre de liens •Nombre de rétroliens •Liste de liens •Liste de rétroliens
  • 15. Un lien : 20 octets 762 Mo suffisent à stocker 40 millions de liens Un lien connaît la référence du rétrolien réciproque. Un rétrolien connaît la référence du lien réciproque.
  • 16.
  • 17. Pour la suppression d’un lien, on peut tirer profit des informations dont on dispose pour trouver le moyen le plus rapide de localiser ce lien et le rétrolien : •La cardinalité des liens et des rétroliens d’un utilisateur •La référence entre un lien et son rétrolien réciproque (et inversement)
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Les splay-tree Un splay-tree est un arbre de recherche qui s’auto- optimise. Les noeuds les plus fréquemment recherchés deviennent les plus rapides d’accès.
  • 23. Le marquage : un système bien pratique pour parcourir un graphe.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. Un marqueur simple ne permet pas de parcours sans verrou. Un marqueur sous forme d’une liste associée à chaque utilisateur a un coût important (mémoire) et ne permet pas de savoir de façon simple quels sont les goulots d’engorgement.
  • 29. Un splay-tree crée au fur et à mesure du parcours : •Permet des parcours sans utiliser de verrou •Nécessite très peu de mémoire •Permet de connaître les goulots d’engorgement, pour les mémoriser sous forme compressée dans un cache partagé.
  • 30. Code préliminaire Générateur de graphs denses : Chaque utilisateur a entre 8 et 128 amis directs, qui ont 1 chance sur 16 d’avoir l’utilisateur en ami réciproque. Création du graphe jusqu’à 1000000 d’amis : 373 000 insertions par seconde. Parcours du graphe (sérialisé), sur 3 niveaux : 79 000 recherches par seconde.
  • 31. La distribution •Les adresses virtuelles pourraient désigner plusieurs machines physiques. •Peer 2 Peer ? http://qdbm.sourceforge.net/mikio/he-sigmodj.pdf http://hyperestraier.sourceforge.net/nguide-en.html