Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:ryzom_data [2017/01/30 11:05] – suppression du fixme de trad osquallofr:ryzom_data [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Ryzom Data ====== ====== Ryzom Data ======
 <WRAP info> <WRAP info>
-Parce que je trouve que ce texte est une bonne introduction à la compréhension des donnée dans RyzomCore jet que je ne l'ai vu nul part (et aucun lien vers lui) avant de tomber dessus par accident je le met ici et le traduit en français par la même occasion.+Parce que je trouve que ce texte est une bonne introduction à la compréhension des donnée dans RyzomCore et que je ne l'ai vu nul part (et aucun lien vers lui) avant de tomber dessus par accident je le met ici et le traduit en français par la même occasion. 
 + --- //[[user:osquallo|Osquallo]] 2017/01/30 07:24//
  
-Osquallo 
  
 [[http://ryzomcore.org/ryzom_core_the_data_is_everywhere_/|Texte de Matt Raykowski (sfb) sur ryzomcore.org]] [[http://ryzomcore.org/ryzom_core_the_data_is_everywhere_/|Texte de Matt Raykowski (sfb) sur ryzomcore.org]]
 </WRAP> </WRAP>
  
-(Note du traducteur: les termes tel que "Shard", "domains", "George sheets",.. sont laissé en anglais car ils seronttrès souventutilisés en anglais et je les considèrent donc comme des termes techniques et ne souhaite pas  embrouillé les lecteurs en utilisant des mots fr qui n'auront plus aucun lien avec les éléments concrets utiliser ensuite.)+//Note du traducteur: les termes tel que "Shard", "domains", "George sheets",.. sont laissés en anglais car ils seront très souvent utilisés en anglais et je les considèrent donc comme des termes techniques et ne souhaite pas  embrouiller les lectrices en utilisant des mots français qui n'auront plus aucun lien avec les éléments concrets utiliser ensuite.//
  
 ===== Ryzom Core: Les données sont partout!  ====== ===== Ryzom Core: Les données sont partout!  ======
 (05 Février 2013) (05 Février 2013)
  
-Ryzom Core possède  une énorme quantité de données pour faciliter le monde et son fonctionnement général. Cependant la nature des données de Ryzom Core embrouille souvent les nouveau utilisateur de la plateforme. Beaucoup voient la procédure de création MySQL et sans faute supposent que tout est contenu ici. En réalité les très peu de données sont vraiment contenue dans MySQL  puisque la plateforme Ryzom Core a été développé à une époque avant que MySQL puissent été utiliséde manière sure, pour une charge directe de travail tel que requis pour Ryzom.+Ryzom Core possède une énorme quantité de données pour faciliter le monde et son fonctionnement général. Cependant la nature des données de Ryzom Core embrouille souvent les nouveaux utilisateurs de la plateforme. Beaucoup voient la procédure de création MySQL et supposent que tout est contenu ici. En réalité très peu de données sont vraiment contenues dans MySQL puisque la plateforme Ryzom Core a été développée à une époque avant que MySQL puisse être utilisé de manière sûre pour une charge directe de travail tel que requis pour Ryzom.
  
  
-Alors où les donnée sont-elles stockées dans RyzomCore ? Il y à une multitude de type et d'endroits. Il y à beaucoup de scénario unique également mais les éléments principaux sont:+Alors où les données sont-elles stockées dans RyzomCore ? Il y une multitude de types et d'endroits. Il y beaucoup de scénario unique également mais les éléments principaux sont:
  
   * MySQL pour l'administration du "shard", les applications "WebIG" les comptes utilisateurs.   * MySQL pour l'administration du "shard", les applications "WebIG" les comptes utilisateurs.
Ligne 25: Ligne 25:
 ==== Le stockage des données MySQL ==== ==== Le stockage des données MySQL ====
  
-La base de données MySQL est uniquement utilisé par les services d'administration générale du shard. C'est la que les services du "shard" et les "domains" sont définis et comment AS (Admin Service / Service d'administrationsais ce qui dois être lancé et où. MySQL est aussi typiquement l'endroit ou toutes les application "Ryzom API" vont stocker leurs données persistantes qui ne sont pas directement lié aux données en jeu. Par exemple une application "boite mail" stockera très probablement les emails dans une base de données MySQL. Quand vous créer un compte pour Ryzom soit par un formulaire d'enregistrement personnalisé ou via la génération automatique activé par défaut votre compte utilisateur et vos privilèges sont stocké dans une base de données MySQL. Ce sont uniquement les informations de base comme le nom le mot de passe, le serveur auquel vous avez accès et avec quels privilèges ( tel que GM ou CSR ).+La base de données MySQL est uniquement utilisée par les services d'administration générale du shard. C'est là que les services du "shard" et les "domains" sont définis et comment AS (Admin Service / Service d'Administrationsait ce qui doit être lancé et où. MySQL est aussi typiquement l'endroit où toutes les application "Ryzom API" vont stocker leurs données persistantes qui ne sont pas directement liées aux données en jeu. Par exemple une application "boite mail" stockera très probablement les e-mails dans une base de données MySQL. Quand vous créez un compte pour Ryzomsoit par un formulaire d'enregistrement personnalisé, soit via la génération automatique (activé par défaut), votre compte utilisateur et vos privilèges sont stockés dans une base de données MySQL. Ce sont uniquement les informations de base comme le nomle mot de passe, le serveur auquel vous avez accès et avec quels privilèges (tel que GM ou CSR).
  
 ==== Georges Sheets ==== ==== Georges Sheets ====
  
-Pour comprendre ce que sont les "[[Georges Sheets]]" il faut comprendre ce que Ryzom définit comme "données statiques" à  l'opposé du contenu du monde. Alors que les primitives, expliqués ensuite, ne contiennent pas d'informations persistantes et déposent le monde dans sa forme initiale. Les "[[Georges Sheets]]" ( qui sont compilé en "[[packed sheet]]" un sujet plus complexe mais essentiellement une version binaire compressée des "sheets") contiennent toutes les données statiques qui définissent des choses comme la faunes, les objets, les sort, et toutes les autre éléments de ce genre. Ces "sheets" définissent les caractéristiques qui mette en place une créatures ou un PNJ mais ne contiennent en fait aucune données spécifiques concernent cette créature ou ce PNJ. Ce sont les données de bases utiliser pour mettre le monde en place. Les "Shhets" contiennent également les autre objets statiques tel que des listes de titres, des éléments définissants les animations et les ensembles d'animation, les continents, les caractèristique de départs des joueurs, et bien plus. Toutes ses données sont contenues dans le dossier code/ryzom/common/data_leveldesign/leveldesign. On modifie ces "sheets" avec l'outil "[[George Editor]]et sont essentiellement des fichier XML avec une capacité de relation parent/héritage.+Pour comprendre ce que sont les "[[Georges Sheets]]"il faut comprendre ce que Ryzom définit comme "données statiques"à l'opposé du contenu du monde. Alors que les primitives, expliquées ensuite, ne contiennent pas d'informations persistantes et forment le monde dans sa forme initiale. Les "[[Georges Sheets]]" (qui sont compilées en "[[packed_sheet]]"un sujet plus complexe mais essentiellement une version binaire compressée des "sheets") contiennent toutes les données statiques qui définissent des choses comme la faune, les objets, les sorts, et tous les autres éléments de ce genre. Ces "sheets" définissent les caractéristiques qui mettent en place une créature ou un PNJ mais ne contiennent en fait aucune donnée spécifique concernant cette créature ou ce PNJ. Ce sont les données de base utilisées pour mettre le monde en place. Les "Sheets" contiennent également les autres objets statiques tels que des listes de titres, des éléments définissant les animations et les ensembles d'animations, les continents, les caractéristiques de départ des joueurs, et bien plus. Toutes ces données sont contenues dans le dossier ''code/ryzom/common/data_leveldesign/leveldesign''. On modifie ces "sheets" avec l'outil [[fr:georges_editor]] et ce sont essentiellement des fichier XML avec une capacité de relation parent/héritage.
  
 ==== Primitives ==== ==== Primitives ====
  
-Tandis que vous pouvez utiliser l’éditeur "[[George Editor]]et créer une "sheets" de "créature PNJ"  qui ne place ce PNJ nul part sur la carte, en fait qui ne décrit pas forcément un PNJ spécifiqueLes primitives, éditées par l'outil "[[World Editor]]", définissent ce à quoi la version initial du monde, non altéré par les joueurs, ressemblera. La disposition définie par les primitives est ce à quoi le monde ressemblera quand le serveur sera lancé pour la première fois. Pour illustrer les différences entre els primitives et les "sheets", quand vous ajouter un nouveau PNJ vous fournissez tous les détails à propos de ce PNj incluant la possibilité de modifier sont équipement et sa couleur. Une des choses que vous faites en définissant un PNJ est de choisir le "sheet" qui le défini. Cela signifie que vous créer une "Sheet" de "créature PNJ" comme un modèle et ensuite êtes capable de déposer des PNJ, avec des caractéristiques définies, à travers le monde. Dans Ryzom Core vous ne pouvez pas placer  une créature spécifique (faune), sachant que les mob et les PNJ sont deux choses distincte, à la place vous définissez ce que sera leur modèle et laisser  l'IA se charger de le placer, le déplacer et le reste. Dans les primitives vous pouvez configurer ce comportement mais le contenu de votre primitive fera toujours référence à une "sheet" qui définit les caractéristiques de base de la faune en temps que modèle. Vous pouvez voir ce schéma maintenant, les "[[George Sheet]] fournissent le modèle, les primitives le positionnement et la structure, et le joueur fournit son évolution. Mais puisque ni George ni les primitive ne stocke l'état du monde cela nous amène la partie suivante. Les données des primitives sont situées dans le répertoire code/ryzom/common/data_leveldesign/primitives. Vous pouvez les éditer avec le "[[World Editor]]" et sont essentiellement un format XML (appelé LIGO).+Vous pouvez utiliser l’éditeur [[fr:georges_editor]] et créer une "sheet" de "créature PNJ"qui ne place ce PNJ nulle part sur la carte, en fait qui ne décrit pas forcément un PNJ spécifiqueLes primitives, éditées par l'outil "[[World Editor]]", définissent ce à quoi ressemblera la version initiale du monde, non altérée par les joueurs. La disposition définie par les primitives est ce à quoi le monde ressemblera quand le serveur sera lancé pour la première fois.  
 + 
 +Pour illustrer les différences entre les primitives et les "sheets", quand vous ajouter un nouveau PNJ vous fournissez tous les détails à propos de ce PNJ, incluant la possibilité de modifier son équipement et sa couleur. Une des choses que vous faites en définissant un PNJ est de choisir le "sheet" qui le définit. Cela signifie que vous créez une "sheet" de "créature PNJ" comme un modèle et ensuite vous êtes capables de déposer des PNJ, avec des caractéristiques définies, à travers le monde. Dans Ryzom Core vous ne pouvez pas placer une créature spécifique (faune), sachant que les mob et les PNJ sont deux choses distinctes. À la place vous définissez ce que sera leur modèle et laissez l'IA se charger de le placer, le déplacer et le reste. Dans les primitives vous pouvez configurer ce comportement mais le contenu de votre primitive fera toujours référence à une "sheet" qui définit les caractéristiques de base de la faune en tant que modèle.  
 + 
 +Si vous regardez ce schéma maintenant, les "[[George Sheet]] fournissent le modèle, les primitivesle positionnement et la structure, et le joueur fournit son évolution. Mais puisque ni George ni les primitives ne stockent l'état du monde cela nous amène à la partie suivante. Les données des primitives sont situées dans le répertoire ''code/ryzom/common/data_leveldesign/primitives''. Vous pouvez les éditer avec le "[[World Editor]]" et elles sont essentiellement dans un format XML (appelé LIGO).
  
  
 ==== PDR Stockage de données ==== ==== PDR Stockage de données ====
  
-donc si MySQL, George et les primitives ne garde pas la trace des personnage, de l'équipement, des guildes et autre chose de ce genre qui persistent à travers les redémarrages du serveur qu'est ce qui le fait ? Le framework supportant Ryzom, NeL (Nevrax Library) possède un système riche et sophistiqué de sérialisation. Presque tous objet de Ryzom Core peux être sérialiser dans un flux pour être transmis à travers le réseau ou sauvegarder dans un fichier. Cela signifie qu'au lieu de devoir traduire un objet de personnage en une requête MySQL Ryzom Core est capable de simplement passer l'objet du personnage à un fichier objet NeL, le sauvegarder et le lire depuis le disque. Le service d'infrastructure de Ryzom Core va plus loin avec les PDR ou "Persistent Data Record system". Ce système sophistiqué permet de répliquer les changements d'autre services du serveur et et maintenu sur le disque via un service de backup maitre/esclave. C'est la véritable source des données persistante en temps réel dans Ryzom Core. Les données sont stockées dans le répertoire saveshard et dépendent du type de donnée. Par exemple prenons les personnages "characters", ils sont stocké dans le répertoire "code/ryzom/server/saveshard/charactersdans un schéma que le service détermine. Les fichiers actuel ressemble à quelque chose comme "code/ryzom/server/saveshard/characters/001/account10pdr.bin" où le 001 est simplement un mécanisme destiné à séparer les comptes dans plusieurs  répertoires (de sorte que l'ont est pas 100k de fichier dans un seul répertoire. ), les deux autre chiffres ( 1 et 0) font référence, respectivement, à l'ID du compte et le slot du personnage. Vous pouvez voir le contenu des binaires PDR en utilisant pdr_util. Bien que cela ne soit pas encouragé puisque c'est typiquement des données interne de Ryzom Core, vous pouvez extraire des PDR au format XML, les éditer et les réassemble en utilisant cet outil. Cela peut être utilise pour, apr exemple, écrire un script d'édition de masse pour mettre à jours les personnages pour une raison ou une autre.+Donc si MySQL, George et les primitives ne gardent pas la trace des personnages, de l'équipement, des guildes et autres choses de ce genre qui persistent à travers les redémarrages du serveurqu'est ce qui le fait ?  
 + 
 +Le framework supportant Ryzom, NeL (Nevrax Library)possède un système riche et sophistiqué de sérialisation.  
 + 
 +Presque tout objet de Ryzom Core peut être sérialisé dans un flux pour être transmis à travers le réseau ou sauvegardé dans un fichier. Cela signifie qu'au lieu de devoir traduire un objet de personnage en une requête MySQLRyzom Core est capable de simplement passer l'objet du personnage à un fichier objet NeL, le sauvegarder et le lire depuis le disque.  
 + 
 +Le service d'infrastructure de Ryzom Core va plus loin avec les PDR ou "Persistent Data Record system". Ce système sophistiqué permet de répliquer les changements d'autres services du serveur et est maintenu sur le disque via un service de backup maître/esclave. C'est la véritable source des données persistantes en temps réel dans Ryzom Core. Les données sont stockées dans le répertoire ''saveshard'' et dépendent du type de données. Par exemple prenons les personnages "characters", ils sont stockés dans le répertoire ''code/ryzom/server/saveshard/characters'' dans un schéma que le service détermine. 
  
 +Les fichiers actuels ressemblent à quelque chose comme "code/ryzom/server/saveshard/characters/001/account10pdr.bin'' où le 001 est simplement un mécanisme destiné à séparer les comptes dans plusieurs répertoires (de sorte que l'on n'aie pas 100k fichiers dans un seul répertoire), les deux autre chiffres (1 et 0) font référence, respectivement, à l'ID du compte et le slot du personnage. Vous pouvez voir le contenu des binaires PDR en utilisant //pdr_util//. Bien que cela ne soit pas encouragé puisque ce sont typiquement des données internes de Ryzom Core, vous pouvez extraire des PDR au format XML, les éditer et les réassembler en utilisant cet outil. Cela peut être utilisé pour, par exemple, écrire un script d'édition de masse pour mettre à jour les personnages pour une raison ou une autre.
  
  
 Source: [[http://ryzomcore.org/ryzom_core_the_data_is_everywhere_/|Texte original anglais de Matt Raykowski (sfb) sur ryzomcore.org]] Source: [[http://ryzomcore.org/ryzom_core_the_data_is_everywhere_/|Texte original anglais de Matt Raykowski (sfb) sur ryzomcore.org]]
  
-{{tag>Data George PDR primitive MySQL Bdd}}+{{tag>Data George PDR primitives MySQL Bdd}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/ryzom_data.1485770707.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact