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 08:44] – Trad premier paragraphe osquallofr:ryzom_data [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-FIXME **Cette page n'est pas encore traduite entièrement. Merci de terminer la traduction**\\ //(supprimez ce paragraphe une fois la traduction terminée)// 
- 
 ====== 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é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. Beaucoups voient la procédure de création and 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 "WebIGles comptes utilisateurs.
   * Georges Sheets pour les données statiques.   * Georges Sheets pour les données statiques.
   * Primitives pour le contenu du monde et sa disposition.   * Primitives pour le contenu du monde et sa disposition.
   * PDR pour la persistance.   * PDR pour la persistance.
  
-==== The MySQL Data Store ====+==== Le stockage des données MySQL ====
  
-The MySQL databases are solely used by the services for general shard administration. This is where the shard services and domains are defined and how AS (Admin Service) knows what should be running and where. MySQL is also typically where any Ryzom API apps will stored their persistent data that isn't directly related to in-game dataFor example a 'mailbox' app would store mail in a MySQL database more than likely.When you sign up for a Ryzom Core account either through a custom signup form or through the user auto-generation that's enabled by default your user account and account privileges are stored in MySQL. This is just basic information like username and passwordwhat shards you have access to and what privileges you have (such as GM or 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 jeuPar 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 Ryzom, soit 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 nom, le mot de passele serveur auquel vous avez accès et avec quels privilèges (tel que GM ou CSR).
  
 ==== Georges Sheets ==== ==== Georges Sheets ====
  
-To understand what Georges Sheets are you have to understand what Ryzom Core means by "static dataversus world contentWhile primitives, discussed nextdon't contain any persistent information they lay the world out in its base initial formThe Georges Sheets (which are compiled into packed sheetsa more complicated topic but essentially a compressed binary variation of the sheets) contain all of the static data that define things such as faunaitemsspellsand so onThese sheets define the characteristics that make up a mob or NPC but do not actually define a specific mob or NPCThis is the base data that you use to begin laying your world out.Sheets also contain other static objects such as lists of titlesdefining animations and animation sets, continents, starting player characteristicsand moreAll of these are located in code/ryzom/common/data_leveldesign/leveldesign. You edit these sheets with the Georges Editor tool and they're essentially XML files with a parent/inheritance relationship capability.+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 mondeAlors que les primitives, expliquées ensuitene contiennent pas d'informations persistantes et forment le monde dans sa forme initialeLes "[[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 fauneles objetsles sortset tous les autres éléments de ce genreCes "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 PNJCe sont les données de base utilisées pour mettre le monde en placeLes "Sheets" contiennent également les autres objets statiques tels que des listes de titresdes éléments définissant les animations et les ensembles d'animations, les continents, les caractéristiques de départ des joueurset bien plusToutes 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 ====
  
-While you can go into Georges Editor and create an NPC creature sheet that doesn't put that NPC anywhere on the mapIn fact it doesn't necessary describe a specific NPC. Primitivesedited by the World Editor tooldefine what the base version of the world, untouched by playerslooks likeThe layout defined in the primitives is what the world will look like when the shard is first startedTo illustrate the differences between primitives and sheets when you add a new NPC you provide all of the details regarding that NPC including the ability to change its equipment and colorOne of the things you do when defining an NPC is choose the sheet that defines themThis means that you create one NPC creature sheet as a template and then are able to layout actual NPCs with defined characteristics throughout the world.In Ryzom Core you cannot place a specific mob (fauna- as mobs and NPCs are distinctly different thingsInstead you define what their patterns are and let the AI take over spawningmigration and so onIn the primitive you can configure this behavior but your primitive content will always reference a sheet which defines the basic characteristcs of the fauna as a template.You can see the pattern now - Georges sheets provide the template, primitives provide the layout and structure and players provide the evolutionBut since neither Georges or primitives store the world state that brings us to the next part.All of these are located in code/ryzom/common/data_leveldesign/primitives. You edit these sheets with the World Editor tool and they're essentially an XML format (called 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 mondenon altérée par les joueursLa 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 couleurUne des choses que vous faites en définissant un PNJ est de choisir le "sheet" qui le définitCela 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 mondeDans 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 placerle déplacer et le resteDans 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èleles primitives, le positionnement et la structure, et le joueur fournit son évolutionMais puisque ni George ni les primitives ne stockent l'état du monde cela nous amène à la partie suivanteLes 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 ==== 
 + 
 +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 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 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 MySQL, Ryzom Core est capable de simplement passer l'objet du personnage à un fichier objet NeL, le sauvegarder et le lire depuis le disque. 
  
-==== PDR Data Stores ====+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. 
  
-So if MySQL, Georges and Primitives aren't keeping track of characters, equipment, guilds and other such things that persist through shard reboots what is? The Ryzom Core supporting framework, NeL (Nevrax Library) has a rich and sophisticated serialization system. Nearly any object in Ryzom Core can be serialized into a stream to be transmitted over the wire or saved to a file. This means instead of having to translate a character object into MySQL insert/update statements Ryzom Core is able to simple pass the character object to a NeL file object and save it to disk or read it from disk.The Ryzom Core service infrastructure takes this one step further with the PDR or Persistent Data Record system. This sophisticated system is able to replicate changes to other services in the shard and is maintained to disk through a master/slave backup service. This is the real source of runtime persistence in Ryzom Core. Where the data is stored is in the shards saveshard folder and depends on the type of data.For example lets use characters. Characters are stored in code/ryzom/server/saveshard/characters in a pattern that the services determine. The actual file names are something like code/ryzom/server/saveshard/characters/001/account10pdr.bin where the 001 is simply a mechanism the services use to break up accounts into multiple folders (so you don't end up with 100k files in a single folder), the other two numbers (1 and 0) refer to account ID and character slot, respectively.You can view the contents of the PDR bins using the pdr_util. While not encouraged as this is typically internal Ryzom Core data you can extract a PDR into XML, modify it and then re-assemble it using this toolThis would be helpful if you werefor examplewriting a script to mass update characters for some reason.+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 personnageVous 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 outilCela peut être utilisé pourpar 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_/|Text from Matt Raykowski (sfb) on ryzomcore.org]]+Source: [[http://ryzomcore.org/ryzom_core_the_data_is_everywhere_/|Texte original anglais de Matt Raykowski (sfb) sur ryzomcore.org]]
  
-{{tag>Tag_a_ajouter}}+{{tag>Data George PDR primitives MySQL Bdd}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/ryzom_data.1485762262.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact