{"id":399,"date":"2014-01-30T12:42:58","date_gmt":"2014-01-30T11:42:58","guid":{"rendered":"http:\/\/e3mag.com\/?p=399"},"modified":"2019-04-01T10:50:27","modified_gmt":"2019-04-01T08:50:27","slug":"gestion-des-strategies-de-stockage","status":"publish","type":"post","link":"https:\/\/e3mag.com\/fr\/gestion-des-strategies-de-stockage\/","title":{"rendered":"Strat\u00e9gies et gestion du stockage"},"content":{"rendered":"<p>N\u00e9anmoins, les techniques utilis\u00e9es pour am\u00e9liorer les performances dans les syst\u00e8mes Numa et dans les paysages distribu\u00e9s se ressemblent.<\/p>\n<p>Puisque <span id=\"urn:local-text-annotation-f2fypxcbj6o3cz62blbyyv86edax6fwb\" class=\"textannotation disambiguated wl-organization\">SAP<\/span>-Comme les applications g\u00e8rent souvent des centaines de gigaoctets, voire des t\u00e9raoctets de donn\u00e9es, un acc\u00e8s efficace \u00e0 la m\u00e9moire principale est essentiel.  C'est sur cet aspect que se concentre cet article :<\/p>\n<p><span id=\"urn:local-text-annotation-hdiyp7310q4frrwtzg8gcpf0s4dz25dk\" class=\"textannotation disambiguated wl-organization\">SAP<\/span> a pr\u00e9sent\u00e9 au salon Sapphire 2012 \u00e0 Orlando un syst\u00e8me qui permet d'effectuer des requ\u00eates analytiques sur une plateforme distribu\u00e9e. <span id=\"urn:local-text-annotation-rnloivynygijnie9ftbbxnixqi5yk4tj\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-La base de donn\u00e9es de 100 n\u0153uds est trait\u00e9e avec un total de 100 To de m\u00e9moire principale agr\u00e9g\u00e9e.<\/p>\n<p>Typique de l'utilisation distribu\u00e9e <span id=\"urn:local-text-annotation-hi2694i59id99hrbfrl44kekf9nggfp1\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-Les environnements de serveurs utilisent plut\u00f4t cinq \u00e0 dix n\u0153uds de serveurs. Il est toutefois \u00e9vident que dans un environnement de serveurs distribu\u00e9s, l'accent est mis sur une distribution efficace des donn\u00e9es et des requ\u00eates, ainsi que sur une communication r\u00e9seau efficace, plut\u00f4t que sur un acc\u00e8s efficace \u00e0 la m\u00e9moire principale.<\/p>\n<h3>Qu'est-ce que Numa ?<\/h3>\n<p>Les syst\u00e8mes de serveur modernes ont plusieurs processeurs (ou CPU) sur leur carte \u00e9lectronique - typiquement, une \u00e0 quatre CPU dans les syst\u00e8mes de bureau de <span id=\"urn:local-text-annotation-b4msdqgg8b9hc5yho0y87dd4m7v24hdd\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>alors que dans <span id=\"urn:local-text-annotation-pb82q0yovtegoifi2lxpufko3ma4rnea\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-on trouve de deux \u00e0 huit CPU sur les serveurs. Les processeurs sont reli\u00e9s \u00e0 la carte via un socket.<\/p>\n<p>Chacune de ces unit\u00e9s centrales contient g\u00e9n\u00e9ralement plusieurs c\u0153urs dans lesquels les calculs sont effectu\u00e9s. Les CPU Intel modernes contiennent entre deux et dix c\u0153urs. Au total, les grands serveurs disposent ainsi de jusqu'\u00e0 80 c\u0153urs pour le traitement des donn\u00e9es.<\/p>\n<p>Comme il n'est plus possible d'augmenter la fr\u00e9quence d'horloge dans les c\u0153urs, notamment pour des raisons thermiques, le nombre de c\u0153urs dans les serveurs va encore augmenter dans les ann\u00e9es \u00e0 venir. Les unit\u00e9s centrales et la m\u00e9moire principale sont reli\u00e9es entre elles par un syst\u00e8me de bus.<\/p>\n<p>Si les calculs pour une requ\u00eate peuvent \u00eatre r\u00e9partis sur de nombreux c\u0153urs, la question se pose de savoir comment les donn\u00e9es sont transport\u00e9es vers les c\u0153urs. En principe, il existe ici deux alternatives au niveau de l'architecture du processeur (Hennessy &amp; Patterson, 2012) :<\/p>\n<ol>\n<li><strong><em>Multiprocessus sym\u00e9trique (<span id=\"urn:local-text-annotation-ih9ig0q4anxb79q4jlhsclacegifkl3f\" class=\"textannotation disambiguated wl-thing\">SMP<\/span>): <\/em><\/strong><br \/>\nDans cette architecture, le temps d'acc\u00e8s \u00e0 une adresse m\u00e9moire est le m\u00eame pour toutes les adresses et pour tous les c\u0153urs. Cette architecture est repr\u00e9sent\u00e9e dans la figure 2. Des caches sont attribu\u00e9s localement \u00e0 chaque processeur. L'acc\u00e8s \u00e0 la m\u00e9moire principale se fait via un <span id=\"urn:local-text-annotation-k9ah2jl8udhlzx68r5i6ntrqng0udcmm\" class=\"textannotation disambiguated wl-thing\">Bus<\/span>que tous les processeurs se partagent. Dans cette architecture, le <span id=\"urn:local-text-annotation-iy6howhmf0qsitpx5fbryh5speb2larn\" class=\"textannotation disambiguated wl-thing\">Bus de m\u00e9moire<\/span> devient un goulot d'\u00e9tranglement, car les op\u00e9rations de lecture qui ne peuvent pas \u00eatre servies par le cache local et toutes les op\u00e9rations d'\u00e9criture sont effectu\u00e9es sur le cache commun. <span id=\"urn:local-text-annotation-9lnf6x65wu8f893m8seir6dp6spyrr7v\" class=\"textannotation disambiguated wl-thing\">Bus de m\u00e9moire<\/span> doivent acc\u00e9der.<\/li>\n<li><strong><em>Acc\u00e8s \u00e0 la m\u00e9moire non uniforme :<\/em><\/strong><br \/>\nDans cette architecture (figure 3), les processeurs se voient attribuer localement \u00e0 la fois les caches et la m\u00e9moire. Pour un processeur, l'acc\u00e8s \u00e0 la m\u00e9moire locale est plus rapide que l'acc\u00e8s \u00e0 la m\u00e9moire d'un autre processeur, car les acc\u00e8s distants se font via un <span id=\"urn:local-text-annotation-lzpvp6drjbf7ly5yugh37fea62pdemzj\" class=\"textannotation disambiguated wl-thing\">Bus de m\u00e9moire<\/span> doivent \u00eatre trait\u00e9s. Pour les programmes d'application, l'affectation de la m\u00e9moire physique aux diff\u00e9rents processeurs n'est pas directement perceptible - ils fonctionnent comme dans un <span id=\"urn:local-text-annotation-vxdlmsjolu22olxlewk0ie5a0t1iw9mj\" class=\"textannotation disambiguated wl-thing\">SMP<\/span> avec un espace d'adressage homog\u00e8ne.<\/li>\n<\/ol>\n<p>Comme dans les <span id=\"urn:local-text-annotation-ppspobbi8zezxa3l0gtqn8q22d9qafe1\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Si un processeur contient plusieurs c\u0153urs, il en r\u00e9sulte une architecture Numa au niveau des processeurs, mais un <span id=\"urn:local-text-annotation-c43yv4d1a8eqvqs8xcw4d4witfs9qzrt\" class=\"textannotation disambiguated wl-thing\">SMP<\/span>-au niveau de chaque processeur.<\/p>\n<p>Ce dernier est \u00e9galement appel\u00e9 Chip-Multi-Processor (CMP). Exemples de <span id=\"urn:local-text-annotation-u08v9lx05ho02to1m47l78zyo3yzthd9\" class=\"textannotation disambiguated wl-thing\">SMP<\/span>-Les syst\u00e8mes Intel Pentium D et Intel Itanium sont les plus r\u00e9pandus, <span id=\"urn:local-text-annotation-ffi144beyoqcnjswq8a8hd386vw1hx0k\" class=\"textannotation disambiguated wl-thing\">IBM Power<\/span>Sun UltraSparc T2 ou SGI MIPS, tandis que les exemples d'architectures Numa sont les CPU Intel Nehalem ou les <span id=\"urn:local-text-annotation-y754idknh3qlgkrfqpusni7xipo4af63\" class=\"textannotation disambiguated wl-organization\">AMD<\/span> Les CPU Opteron (et leurs successeurs) sont<\/p>\n<h3>Numa est-il pertinent pour Hana ?<\/h3>\n<p>Le site <span id=\"urn:local-text-annotation-tcuotcnou55q7u85avx28ksa8z8cq3a4\" class=\"textannotation disambiguated wl-organization\">SAP<\/span>-<span id=\"urn:local-text-annotation-ft4c6z2mflackwvvd2bbrb9j0vuk79dw\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB a \u00e9t\u00e9 cr\u00e9\u00e9e en collaboration avec <span id=\"urn:local-text-annotation-x0wbyxmbhk9xu1myu04nwidlr8mg7k57\" class=\"textannotation disambiguated wl-organization\">Intel<\/span> pour l'ex\u00e9cution sur des supports actuels <span id=\"urn:local-text-annotation-0hsvp0hjdhxk1naz2u9c71bnox8ijeby\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Xeon sont optimis\u00e9s. Par exemple, la <span id=\"urn:local-text-annotation-kz7h4zwroxhac20cek42ikv9txlabhj2\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB la <span id=\"urn:local-text-annotation-2v5986zi78jd6fndflw748zvrdlakr18\" class=\"textannotation disambiguated wl-thing\">SSE<\/span>-extensions de <span id=\"urn:local-text-annotation-zoewwx1vza046sfk9brfy2rbbzyckd8p\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Les processeurs de la s\u00e9rie C permettent de traiter plusieurs \u00e9l\u00e9ments en parall\u00e8le dans une instruction machine.<\/p>\n<p>Comme ces <span id=\"urn:local-text-annotation-7jfa3lgz2j3ixrwai3jvfke5ft6hsx9k\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-\u00e9tant bas\u00e9s sur une architecture Numa, le code des processeurs Numa doit \u00e9galement \u00eatre modifi\u00e9. <span id=\"urn:local-text-annotation-lg1zf3fxz4jcrrf9i9bjbx11rh9p6w9u\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-BDD pour cette architecture. Nous allons maintenant nous int\u00e9resser \u00e0 quelques sc\u00e9narios o\u00f9 les effets Numa sont pr\u00e9sents dans la <span id=\"urn:local-text-annotation-25s3bgjlrwaa49fbe1u9z639n0ez6o57\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB sont pertinentes et comment les <span id=\"urn:local-text-annotation-dibuhnmm4yt8h45dgzjik2sc9u5f61f7\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB sait s'en servir.<\/p>\n<p>Lorsqu'une demande concerne la <span id=\"urn:local-text-annotation-gwu0d1say9o212ed8i2mm0wgn6ujtodu\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-cette requ\u00eate est d'abord attribu\u00e9e \u00e0 un thread. En g\u00e9n\u00e9ral, les threads permettent un traitement parall\u00e8le l\u00e9ger de plusieurs requ\u00eates (par rapport aux processus du syst\u00e8me d'exploitation).<\/p>\n<p>Les threads actifs sont affich\u00e9s \u00e0 un moment donn\u00e9 sur un seul et m\u00eame \u00e9cran. <span id=\"urn:local-text-annotation-ur255x9qatiwqdg922qbe97xsbenzs8e\" class=\"textannotation disambiguated wl-thing\">Core<\/span> est ex\u00e9cut\u00e9e.  Pendant le traitement d'une requ\u00eate, la base de donn\u00e9es doit dans la plupart des cas allouer de la m\u00e9moire, par exemple pour collecter le r\u00e9sultat de la requ\u00eate pour l'application de la base de donn\u00e9es. La m\u00e9moire doit alors \u00eatre allou\u00e9e dans la zone de m\u00e9moire allou\u00e9e au processeur et \u00e0 l'application. <span id=\"urn:local-text-annotation-pdb1mn67n1qgpn5b1nyxim1g9zhblwdl\" class=\"textannotation disambiguated wl-thing\">Core<\/span> afin que les acc\u00e8s \u00e0 la m\u00e9moire ne soient pas retard\u00e9s par des acc\u00e8s \u00e0 la m\u00e9moire distante.<\/p>\n<p>Les syst\u00e8mes d'exploitation modernes tiennent d\u00e9j\u00e0 compte des architectures Numa : tant les <span id=\"urn:local-text-annotation-smx7lqagi491xnm45eh69z4e5rypv47k\" class=\"textannotation disambiguated wl-thing\">Microsoft Windows<\/span> 7 ou Windows Server 2008R2 ainsi que de <span id=\"urn:local-text-annotation-u0ippugwefdlfsqevc3re8pc84c27o4j\" class=\"textannotation disambiguated wl-thing\">Linux<\/span> (\u00e0 partir du noyau 2.5) tentent d'allouer la m\u00e9moire dans la zone attribu\u00e9e au processeur du thread ou au processus du syst\u00e8me d'exploitation. Les applications profitent ainsi automatiquement des optimisations du syst\u00e8me d'exploitation.<\/p>\n<p>Il convient de noter ici que les solutions de virtualisation telles que VMware ESX font abstraction du mat\u00e9riel physique. Comme le logiciel fonctionne avec des CPU logiques et une couche de virtualisation pour la m\u00e9moire, les optimisations pour une architecture Numa sur un syst\u00e8me virtualis\u00e9 peuvent m\u00eame avoir des effets n\u00e9gatifs.<\/p>\n<p>La gestion automatique de la m\u00e9moire par le syst\u00e8me d'exploitation peut avoir des effets ind\u00e9sirables lorsqu'une application g\u00e8re elle-m\u00eame la m\u00e9moire afin d'\u00e9viter des appels syst\u00e8me co\u00fbteux lors de l'allocation et de la lib\u00e9ration de la m\u00e9moire. La m\u00e9moire peut alors se trouver dans la mauvaise zone lors de la r\u00e9utilisation de la m\u00e9moire. Presque chaque base de donn\u00e9es met en \u0153uvre sa propre gestion de la m\u00e9moire, qui fonctionne au niveau de l'application.<\/p>\n<p>Un autre effet est qu'un thread alloue de la m\u00e9moire (localement), mais que de nombreux autres threads veulent travailler avec cette m\u00e9moire.<\/p>\n<p>Prenons l'exemple de la m\u00e9moire d'une colonne : Cette m\u00e9moire est allou\u00e9e une fois dans la m\u00e9moire principale lors du chargement de la colonne, mais de nombreuses requ\u00eates lisent les donn\u00e9es de la colonne.<\/p>\n<p>Dans les deux sc\u00e9narios mentionn\u00e9s, la gestion de la m\u00e9moire au niveau de l'application et l'acc\u00e8s \u00e0 la m\u00e9moire par de nombreux threads, un ordonnancement efficace des threads peut aider. Ici aussi, les syst\u00e8mes d'exploitation modernes mettent en \u0153uvre des strat\u00e9gies visant \u00e0 ex\u00e9cuter les threads l\u00e0 o\u00f9 les donn\u00e9es utilis\u00e9es sont allou\u00e9es.<\/p>\n<p>Cela peut aller jusqu'\u00e0 la cr\u00e9ation d'un fil de discussion par un <span id=\"urn:local-text-annotation-s6aws8tftkf3cmq1g5nnnq2ddtss8jwp\" class=\"textannotation disambiguated wl-thing\">Core<\/span> est d\u00e9plac\u00e9 vers un autre afin que les acc\u00e8s m\u00e9moire puissent \u00eatre trait\u00e9s \u00e0 partir de la m\u00e9moire locale. Le syst\u00e8me d'exploitation se heurte toutefois \u00e0 des limites o\u00f9, par exemple, les connaissances du syst\u00e8me de base de donn\u00e9es peuvent conduire \u00e0 de meilleurs r\u00e9sultats d\u00e9cisionnels.<\/p>\n<h3>Support de Numa en <span id=\"urn:local-text-annotation-fjpmuzm2u1kbl9mulfzhfoflo1w77qsd\" class=\"textannotation disambiguated wl-thing\">Hana<\/span><\/h3>\n<p>Dans la section pr\u00e9c\u00e9dente, nous avons abord\u00e9 les strat\u00e9gies bas\u00e9es sur les architectures Numa, qui sont disponibles pour chaque application sur les serveurs modernes et les syst\u00e8mes d'exploitation modernes.<\/p>\n<p>Toutefois, ces techniques seules conduisent \u00e0 des d\u00e9cisions sous-optimales, car les caract\u00e9ristiques sp\u00e9cifiques d'un syst\u00e8me de base de donn\u00e9es ne peuvent pas \u00eatre prises en compte. Les possibilit\u00e9s d'optimisation sp\u00e9cifiques aux bases de donn\u00e9es dans la <span id=\"urn:local-text-annotation-nk9ppv1ektrnlkrvlarevlux242zuap4\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-Cette section aborde la question de l'utilisation de la base de donn\u00e9es.<\/p>\n<h3>Gestion de la m\u00e9moire<\/h3>\n<p>Comme nous l'avons vu plus haut, l'application de la <span id=\"urn:local-text-annotation-uj43lcphcbg7v6ukf8p96jdr21zimu12\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB, pour des raisons d'efficacit\u00e9, une gestion de la m\u00e9moire qui s'appuie sur la gestion de la m\u00e9moire du syst\u00e8me d'exploitation. Dans ce contexte, la m\u00e9moire n'est normalement pas restitu\u00e9e au syst\u00e8me d'exploitation lorsqu'elle est lib\u00e9r\u00e9e dans le code de la base de donn\u00e9es.<\/p>\n<p>En m\u00eame temps, la m\u00e9moire d\u00e9j\u00e0 allou\u00e9e est r\u00e9utilis\u00e9e. Cela doit permettre de r\u00e9duire la fragmentation de la m\u00e9moire principale, mais aussi le nombre d'appels du syst\u00e8me au syst\u00e8me d'exploitation. C'est ici que s'ouvrent les possibilit\u00e9s d'exploiter les propri\u00e9t\u00e9s sp\u00e9cifiques d'une architecture Numa :<\/p>\n<p>1. lorsqu'un thread demande de la m\u00e9moire, la m\u00e9moire locale du processeur est allou\u00e9e au thread afin que les acc\u00e8s \u00e0 cette m\u00e9moire soient effectu\u00e9s par la m\u00e9moire locale du processeur.<span id=\"urn:local-text-annotation-4jrzcf1oenrzmr55fvznre5mk3ran70l\" class=\"textannotation disambiguated wl-thing\">Contr\u00f4leur<\/span> sont trait\u00e9es et que les bus de m\u00e9moire entre les processeurs sont d\u00e9charg\u00e9s. Cette strat\u00e9gie semble particuli\u00e8rement judicieuse dans les sc\u00e9narios o\u00f9 la m\u00e9moire est utilis\u00e9e par des threads sur le m\u00eame processeur.<\/p>\n<p>2. dans certains cas, il semble en revanche plus judicieux de r\u00e9partir la m\u00e9moire demand\u00e9e sur plusieurs processeurs. Dans les syst\u00e8mes actuels, il semble que, dans certains sc\u00e9narios, les ressources de m\u00e9moire<span id=\"urn:local-text-annotation-uc3mxmu1nyntc8vzzvhi4onufovw4xa7\" class=\"textannotation disambiguated wl-thing\">Contr\u00f4leur<\/span> constituer un goulot d'\u00e9tranglement. Dans ce cas, il est plus judicieux de r\u00e9partir la m\u00e9moire et les threads qui utilisent la m\u00e9moire sur diff\u00e9rents processeurs. De cette mani\u00e8re, le goulot d'\u00e9tranglement peut \u00eatre \u00e9vit\u00e9, par exemple lors de l'acc\u00e8s \u00e0 de grandes colonnes fr\u00e9quemment utilis\u00e9es.<\/p>\n<h3>Planification des t\u00e2ches<\/h3>\n<p>Dans de nombreux cas, un syst\u00e8me d'exploitation moderne prend une bonne d\u00e9cision quant au choix des threads et de leur emplacement. <span id=\"urn:local-text-annotation-2w770t8j32kpdxuxf1thjg78txxoek5y\" class=\"textannotation disambiguated wl-thing\">Core<\/span> doivent \u00eatre ex\u00e9cut\u00e9s.<\/p>\n<p>Lors de la d\u00e9cision, il est tenu compte du fait qu'il existe encore des c\u0153urs sur un processeur qui n'effectuent actuellement aucun calcul, de l'\u00e9tat d'activit\u00e9 de certains c\u0153urs et processeurs (pour \u00e9conomiser de l'\u00e9nergie, il vaut la peine de concentrer le travail sur certains processeurs et de d\u00e9sactiver d'autres processeurs), du fait que certains processeurs fonctionnent actuellement en \"overclocking\" (TurboBoost en cas de <span id=\"urn:local-text-annotation-i52lu96x5wbxzu69jm81h9vu4sejj4lc\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>) ainsi que les donn\u00e9es auxquelles un thread acc\u00e8de.<\/p>\n<p>Outre cette d\u00e9cision automatique du syst\u00e8me d'exploitation, un d\u00e9veloppeur d'applications peut influencer l'affectation des threads aux processeurs ou aux c\u0153urs.<\/p>\n<p>En fait, les possibilit\u00e9s d'optimisation qui en d\u00e9coulent pour l'ordonnancement des threads dans le syst\u00e8me sont \u00e0 consid\u00e9rer en fonction de la gestion de la m\u00e9moire :<\/p>\n<ol>\n<li>Si les donn\u00e9es utilis\u00e9es par un thread sont affect\u00e9es localement \u00e0 un processeur, le thread devrait \u00e9galement \u00eatre ex\u00e9cut\u00e9 sur ce processeur.  De mani\u00e8re assez surprenante, il est parfois int\u00e9ressant d'ex\u00e9cuter plus de threads sur un processeur que ce dernier ne peut en traiter (nombre de c\u0153urs, th\u00e9oriquement deux fois le nombre de c\u0153urs avec l'hyperthreading). C'est notamment le cas lorsque ces threads acc\u00e8dent \u00e0 une m\u00e9moire partag\u00e9e et que cette m\u00e9moire est alors d\u00e9j\u00e0 disponible dans les caches.<\/li>\n<li>Certaines op\u00e9rations complexes de la base de donn\u00e9es lisent et \u00e9crivent de grandes quantit\u00e9s de donn\u00e9es, ce qui surcharge la m\u00e9moire.<span id=\"urn:local-text-annotation-35vy1eul437h3051m12h6jh9ypxkl11t\" class=\"textannotation disambiguated wl-thing\">Contr\u00f4leur<\/span> Si les donn\u00e9es pour ces op\u00e9rations sont d\u00e9j\u00e0 r\u00e9parties sur la m\u00e9moire locale de plusieurs processeurs, les threads pour l'acc\u00e8s aux donn\u00e9es doivent \u00eatre r\u00e9partis sur plusieurs processeurs. Cela permet d'\u00e9viter les probl\u00e8mes de m\u00e9moire individuelle.<span id=\"urn:local-text-annotation-nav5rfskkgjzreheedh42fmchd2oltwv\" class=\"textannotation disambiguated wl-thing\">Contr\u00f4leur<\/span> et la charge de travail est r\u00e9partie sur plusieurs connexions de stockage et de m\u00e9moire.<span id=\"urn:local-text-annotation-ljnxkvg5e8d838gvlvj84ev82d28vudb\" class=\"textannotation disambiguated wl-thing\">Contr\u00f4leur<\/span> distribu\u00e9s.<\/li>\n<li>Dans certains cas, les op\u00e9rations de base de donn\u00e9es telles que les op\u00e9rations de jointure devraient \u00eatre impl\u00e9ment\u00e9es en accordant une attention particuli\u00e8re \u00e0 l'architecture Numa. Les premi\u00e8res \"directives\" pour de telles impl\u00e9mentations sont discut\u00e9es dans la litt\u00e9rature de recherche (Albutiu, Kemper &amp; Neumann, 2012).<\/li>\n<\/ol>\n<h3>Avenir de Numa<\/h3>\n<p>Pendant plusieurs d\u00e9cennies, les logiciels de base de donn\u00e9es n'ont pas \u00e9t\u00e9 les seuls \u00e0 \u00eatre cr\u00e9\u00e9s en partant du principe que la vitesse de traitement augmenterait avec la prochaine g\u00e9n\u00e9ration de processeurs, notamment parce que la fr\u00e9quence d'horloge augmentait. Pour des raisons techniques, cet automatisme n'est plus valable depuis le d\u00e9but du mill\u00e9naire.<\/p>\n<p>Des fournisseurs comme Intel ou <span id=\"urn:local-text-annotation-ytbqv8rhcvk40ky5g9ewdg19axkqkmwv\" class=\"textannotation disambiguated wl-organization\">AMD<\/span> propagent des syst\u00e8mes dans lesquels le travail est r\u00e9parti sur plusieurs processeurs, chacun avec plusieurs c\u0153urs. Comme il en est question dans l'article, une architecture semble s'imposer, dans laquelle l'acc\u00e8s \u00e0 la m\u00e9moire est plus ou moins complexe - en fonction de l'endroit o\u00f9 la m\u00e9moire a \u00e9t\u00e9 physiquement allou\u00e9e (d\u00e9sign\u00e9 par Numa).<\/p>\n<p>Les logiciels d'application doivent donc \u00eatre revus afin de pouvoir exploiter le parall\u00e9lisme qui a accompagn\u00e9 la disponibilit\u00e9 des architectures multic\u0153urs. Corollairement, les logiciels doivent prendre en compte les sp\u00e9cificit\u00e9s de l'architecture Numa et optimiser l'allocation et l'acc\u00e8s \u00e0 la m\u00e9moire.<\/p>\n<p>Alors que les syst\u00e8mes d'exploitation modernes fournissent certaines optimisations dans ce domaine, les applications critiques en termes de performance, comme les <span id=\"urn:local-text-annotation-edct38rmmo7lp89spja4zjz37vt610gf\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB permet de r\u00e9aliser des am\u00e9liorations allant bien au-del\u00e0.<\/p>\n<p>Dans la <span id=\"urn:local-text-annotation-4h0rnn6c59g09t7q7fjfhomg0lzvnpvu\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-La base de donn\u00e9es Numa int\u00e8gre d\u00e9j\u00e0 un certain nombre de ces am\u00e9liorations. N\u00e9anmoins, l'impl\u00e9mentation de bases de donn\u00e9es sur les architectures Numa n'en est qu'\u00e0 ses d\u00e9buts et d'autres am\u00e9liorations sont attendues.<\/p>","protected":false},"excerpt":{"rendered":"<p>Lorsque les donn\u00e9es d'une application Hana ne peuvent plus \u00eatre trait\u00e9es par un seul n\u0153ud de serveur (scale-up), les donn\u00e9es doivent \u00eatre r\u00e9parties sur plusieurs n\u0153uds (scale-out). \u00c9tant donn\u00e9 que Numa concerne l'acc\u00e8s \u00e0 la m\u00e9moire principale locale, cet article n'aborde pas plus en d\u00e9tail les aspects des syst\u00e8mes distribu\u00e9s.<\/p>","protected":false},"author":41,"featured_media":882,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","footnotes":""},"categories":[5],"tags":[65,67,59,352,353],"coauthors":[22374],"class_list":["post-399","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-management","tag-hana","tag-linux","tag-microsoft","tag-orlando","tag-sapphire","pmpro-has-access"],"acf":[],"featured_image_urls_v2":{"full":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"thumbnail":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-150x150.jpg",150,150,true],"medium":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",400,225,false],"medium_large":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-768x432.jpg",768,432,true],"large":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"image-100":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-100x56.jpg",100,56,true],"image-480":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-480x270.jpg",480,270,true],"image-640":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-640x360.jpg",640,360,true],"image-720":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-720x405.jpg",720,405,true],"image-960":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-960x540.jpg",960,540,true],"image-1168":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"image-1440":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"image-1920":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"1536x1536":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"2048x2048":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"trp-custom-language-flag":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",18,10,false],"bricks_large_16x9":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"bricks_large":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"bricks_large_square":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",1000,563,false],"bricks_medium":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",600,338,false],"bricks_medium_square":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428.jpg",600,338,false],"profile_24":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-24x24.jpg",24,24,true],"profile_48":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-48x48.jpg",48,48,true],"profile_96":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-96x96.jpg",96,96,true],"profile_150":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-150x150.jpg",150,150,true],"profile_300":["https:\/\/e3mag.com\/wp-content\/uploads\/2014\/01\/2shutterstock_313779428-300x300.jpg",300,300,true]},"post_excerpt_stackable_v2":"<p>Wenn die Daten einer Hana-Anwendung nicht mehr von einem einzelnen Serverknoten verarbeitet werden k\u00f6nnen (Scale-up), dann m\u00fcssen die Daten auf mehrere Knoten verteilt werden (Scale-out). Da Numa den Zugriff auf den lokalen Hauptspeicher betrifft, geht dieser Artikel nicht genauer auf Aspekte von verteilten Systemen ein.<\/p>\n","category_list_v2":"<a href=\"https:\/\/e3mag.com\/fr\/categorie\/gestion-de-linformatique\/\" rel=\"category tag\">IT-Management<\/a>","author_info_v2":{"name":"Norman May, SAP","url":"https:\/\/e3mag.com\/fr\/author\/norman-may\/"},"comments_num_v2":"0 commentaire","_links":{"self":[{"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/posts\/399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/comments?post=399"}],"version-history":[{"count":0,"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/posts\/399\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/media\/882"}],"wp:attachment":[{"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/media?parent=399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/categories?post=399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/tags?post=399"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/e3mag.com\/fr\/wp-json\/wp\/v2\/coauthors?post=399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}