{"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":"speicherstrategien-management","status":"publish","type":"post","link":"https:\/\/e3mag.com\/de\/speicherstrategien-management\/","title":{"rendered":"Speicherstrategien &#038;  -management"},"content":{"rendered":"<p>Dennoch \u00e4hneln sich die Techniken zur Verbesserung der Performance in Numa-Systemen und in verteilten Landschaften.<\/p>\n<p>Da <span id=\"urn:local-text-annotation-f2fypxcbj6o3cz62blbyyv86edax6fwb\" class=\"textannotation disambiguated wl-organization\">SAP<\/span>-Anwendungen oft mehrere Hundert Gigabyte oder auch Terabyte an Daten verwalten, ist ein effizienter Zugriff auf den Hauptspeicher von wesentlicher Bedeutung.\u00a0 Auf diesen Aspekt konzentriert sich der Artikel:<\/p><div class=\"great-fullsize-content-de great-entity-placement\" style=\"float: left;\" id=\"great-3993736841\"><div id=\"great-221496575\" style=\"margin-bottom: 20px;\"><a data-no-instant=\"1\" href=\"https:\/\/www.youtube.com\/watch?v=3sfeY6CxpaQ\" rel=\"noopener\" class=\"a2t-link\" target=\"_blank\" aria-label=\"banner_26_06_24_1200x150\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150.jpg\" alt=\"\"  srcset=\"https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150.jpg 1200w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-400x50.jpg 400w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-768x96.jpg 768w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-100x13.jpg 100w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-480x60.jpg 480w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-640x80.jpg 640w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-720x90.jpg 720w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-960x120.jpg 960w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-1168x146.jpg 1168w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-18x2.jpg 18w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_06_24_1200x150-600x75.jpg 600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" width=\"1200\" height=\"150\"  style=\" max-width: 100%; height: auto;\" \/><\/a><\/div><\/div>\n<p><span id=\"urn:local-text-annotation-hdiyp7310q4frrwtzg8gcpf0s4dz25dk\" class=\"textannotation disambiguated wl-organization\">SAP<\/span> hat auf der Sapphire 2012 in Orlando ein System pr\u00e4sentiert, das analytische Anfragen auf einer verteilten <span id=\"urn:local-text-annotation-rnloivynygijnie9ftbbxnixqi5yk4tj\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB mit 100 Knoten mit insgesamt 100 TB aggregiertem Hauptspeicher verarbeitet.<\/p>\n<p>Typische verteilte <span id=\"urn:local-text-annotation-hi2694i59id99hrbfrl44kekf9nggfp1\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-Landschaften verwenden eher f\u00fcnf bis zehn Serverknoten. Es ist jedoch klar, dass in einer verteilten Serverlandschaft der Schwerpunkt eher auf einer effektiven Verteilung der Daten und Anfragen sowie einer effizienten Netzwerkkommunikation beruht als auf einem effizienten Zugriff auf den Hauptspeicher.<\/p>\n<h3>Was ist Numa?<\/h3>\n<p>Moderne Serversysteme haben auf ihrer Platine mehrere Prozessoren (oder CPUs) \u2013 typisch sind ein bis vier CPUs in Desktop-Systemen von <span id=\"urn:local-text-annotation-b4msdqgg8b9hc5yho0y87dd4m7v24hdd\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>, w\u00e4hrend hingegen in <span id=\"urn:local-text-annotation-pb82q0yovtegoifi2lxpufko3ma4rnea\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Servern zwei bis acht CPUs anzutreffen sind. Prozessoren sind \u00fcber einen Socket mit der Platine verbunden.<\/p>\n<p>In jeder dieser CPUs stecken normalerweise mehrere Cores, in denen die Berechnungen ausgef\u00fchrt werden. Moderne Intel CPUs enthalten zwei bis zehn Cores. Insgesamt stehen damit gro\u00dfen Servern bis zu 80 Cores f\u00fcr die Datenverarbeitung zur Verf\u00fcgung.<\/p>\n<p>Da unter anderem aus thermischen Gr\u00fcnden die Taktfrequenz in den Cores nicht mehr weiter erh\u00f6ht werden kann, wird in den kommenden Jahren die Anzahl der Cores in Servern noch weiter zunehmen. Die CPUs und der Hauptspeicher sind \u00fcber ein Bussystem miteinander verbunden.<\/p>\n<p>Wenn die Berechnungen f\u00fcr eine Anfrage \u00fcber viele Cores verteilt werden kann, stellt sich die Frage, wie die Daten zu den Cores transportiert werden. Grunds\u00e4tzlich gibt es hier auf der Ebene der Prozessorarchitektur zwei Alternativen (Hennessy &amp; Patterson, 2012):<\/p>\n<ol>\n<li><strong><em>Symmetric Multiprocessing (<span id=\"urn:local-text-annotation-ih9ig0q4anxb79q4jlhsclacegifkl3f\" class=\"textannotation disambiguated wl-thing\">SMP<\/span>): <\/em><\/strong><br \/>\nIn dieser Architektur ist die Zugriffszeit auf eine Speicheradresse f\u00fcr alle Adressen und f\u00fcr alle Cores gleich. Diese Architektur ist in Abbildung 2 dargestellt. Jedem Prozessor sind Caches lokal zugeordnet. Der Zugriff auf den Hauptspeicher erfolgt \u00fcber einen <span id=\"urn:local-text-annotation-k9ah2jl8udhlzx68r5i6ntrqng0udcmm\" class=\"textannotation disambiguated wl-thing\">Bus<\/span>, den sich alle Prozessoren teilen. In dieser Architektur kann der <span id=\"urn:local-text-annotation-iy6howhmf0qsitpx5fbryh5speb2larn\" class=\"textannotation disambiguated wl-thing\">Speicherbus<\/span> zum Flaschenhals werden, weil Leseoperationen, die nicht vom lokalen Cache bedient werden k\u00f6nnen, und alle Schreiboperationen auf den gemeinsamen <span id=\"urn:local-text-annotation-9lnf6x65wu8f893m8seir6dp6spyrr7v\" class=\"textannotation disambiguated wl-thing\">Speicherbus<\/span> zugreifen m\u00fcssen.<\/li>\n<li><strong><em>Non-Uniform Memory Access:<\/em><\/strong><br \/>\nIn dieser Architektur (Abbildung 3) werden Prozessoren sowohl Caches als auch Speicher lokal zugewiesen. F\u00fcr einen Prozessor ist der Zugriff auf den lokalen Speicher schneller als der Zugriff auf Speicher eines anderen Prozessors, weil entfernte Zugriffe \u00fcber einen <span id=\"urn:local-text-annotation-lzpvp6drjbf7ly5yugh37fea62pdemzj\" class=\"textannotation disambiguated wl-thing\">Speicherbus<\/span> verarbeitet werden m\u00fcssen. F\u00fcr Anwendungsprogramme ist die Zuordnung von physischem Speicher zu einzelnen Prozessoren nicht direkt erkennbar \u2013 sie arbeiten wie in einem <span id=\"urn:local-text-annotation-vxdlmsjolu22olxlewk0ie5a0t1iw9mj\" class=\"textannotation disambiguated wl-thing\">SMP<\/span> mit einem homogenen Adressraum.<\/li>\n<\/ol>\n<p>Da in modernen <span id=\"urn:local-text-annotation-ppspobbi8zezxa3l0gtqn8q22d9qafe1\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Systemen in einem Prozessor mehrere Cores enthalten sind, ergibt sich eine Numa-Architektur auf der Ebene der Prozessoren, aber ein <span id=\"urn:local-text-annotation-c43yv4d1a8eqvqs8xcw4d4witfs9qzrt\" class=\"textannotation disambiguated wl-thing\">SMP<\/span>-System auf der Ebene jedes Prozessors.<\/p>\n<p>Letzteres wird auch als Chip-Multi-Processor bezeichnet (CMP). Beispiele f\u00fcr <span id=\"urn:local-text-annotation-u08v9lx05ho02to1m47l78zyo3yzthd9\" class=\"textannotation disambiguated wl-thing\">SMP<\/span>-Systeme sind Intel Pentium D, Intel Itanium, <span id=\"urn:local-text-annotation-ffi144beyoqcnjswq8a8hd386vw1hx0k\" class=\"textannotation disambiguated wl-thing\">IBM Power<\/span>, Sun UltraSparc T2 oder SGI MIPS, w\u00e4hrend Beispiele f\u00fcr Numa-Architekturen Intel Nehalem CPUs oder <span id=\"urn:local-text-annotation-y754idknh3qlgkrfqpusni7xipo4af63\" class=\"textannotation disambiguated wl-organization\">AMD<\/span> Opteron CPUs (und deren Nachfolger) sind.<\/p>\n<h3>Ist Numa relevant f\u00fcr Hana?<\/h3>\n<p>Die <span id=\"urn:local-text-annotation-tcuotcnou55q7u85avx28ksa8z8cq3a4\" class=\"textannotation disambiguated wl-organization\">SAP<\/span>&#8211;<span id=\"urn:local-text-annotation-ft4c6z2mflackwvvd2bbrb9j0vuk79dw\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB wurde in Zusammenarbeit mit <span id=\"urn:local-text-annotation-x0wbyxmbhk9xu1myu04nwidlr8mg7k57\" class=\"textannotation disambiguated wl-organization\">Intel<\/span> f\u00fcr die Ausf\u00fchrung auf aktuellen <span id=\"urn:local-text-annotation-0hsvp0hjdhxk1naz2u9c71bnox8ijeby\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Xeon-Prozessoren optimiert. Beispielsweise nutzt die <span id=\"urn:local-text-annotation-kz7h4zwroxhac20cek42ikv9txlabhj2\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB die <span id=\"urn:local-text-annotation-2v5986zi78jd6fndflw748zvrdlakr18\" class=\"textannotation disambiguated wl-thing\">SSE<\/span>-Erweiterungen von <span id=\"urn:local-text-annotation-zoewwx1vza046sfk9brfy2rbbzyckd8p\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Prozessoren, um in einer Maschineninstruktion mehrere Elemente parallel zu verarbeiten.<\/p>\n<p>Da diese <span id=\"urn:local-text-annotation-7jfa3lgz2j3ixrwai3jvfke5ft6hsx9k\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>-Prozessoren auf einer Numa-Architektur basieren, muss auch der Code der <span id=\"urn:local-text-annotation-lg1zf3fxz4jcrrf9i9bjbx11rh9p6w9u\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB f\u00fcr diese Architektur optimiert werden. Im Folgenden wird auf einige Szenarien eingegangen, wo Numa-Effekte in der <span id=\"urn:local-text-annotation-25s3bgjlrwaa49fbe1u9z639n0ez6o57\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB relevant sind und wie die <span id=\"urn:local-text-annotation-dibuhnmm4yt8h45dgzjik2sc9u5f61f7\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB damit umgehen kann.<\/p>\n<p>Wenn eine Anfrage die <span id=\"urn:local-text-annotation-gwu0d1say9o212ed8i2mm0wgn6ujtodu\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB erreicht, wird diese Anfrage zun\u00e4chst einem Thread zugewiesen. Generell erlauben Threads eine leichtgewichtige nebenl\u00e4ufige Verarbeitung mehrerer Anfragen (im Vergleich zu Prozessen im Betriebssystem).<\/p>\n<p>Aktive Threads werden zu einem Zeitpunkt auf genau einem <span id=\"urn:local-text-annotation-ur255x9qatiwqdg922qbe97xsbenzs8e\" class=\"textannotation disambiguated wl-thing\">Core<\/span> ausgef\u00fchrt.\u00a0 W\u00e4hrend der Verarbeitung einer Anfrage muss die Datenbank in den meisten F\u00e4llen Speicher allokieren, zum Beispiel um das Ergebnis der Anfrage f\u00fcr die Datenbankanwendung aufzusammeln. Der Speicher sollte dann in dem Speicherbereich allokiert werden, der dem Prozessor und <span id=\"urn:local-text-annotation-pdb1mn67n1qgpn5b1nyxim1g9zhblwdl\" class=\"textannotation disambiguated wl-thing\">Core<\/span> zugewiesen wurde, damit Speicherzugriffe nicht durch Zugriffe auf entfernten Speicher verz\u00f6gert werden.<\/p>\n<p>Moderne Betriebssysteme ber\u00fccksichtigen bereits Numa-Architekturen: Sowohl <span id=\"urn:local-text-annotation-smx7lqagi491xnm45eh69z4e5rypv47k\" class=\"textannotation disambiguated wl-thing\">Microsoft Windows<\/span> 7 bzw. Windows Server 2008R2 als auch <span id=\"urn:local-text-annotation-u0ippugwefdlfsqevc3re8pc84c27o4j\" class=\"textannotation disambiguated wl-thing\">Linux<\/span> (ab Kernel 2.5) versuchen, den Speicher in dem Bereich zu allokieren, der dem Prozessor des Threads oder Betriebssystemprozess zugeordnet ist. Damit profitieren Anwendungen automatisch von Optimierungen im Betriebssystem.<\/p>\n<p>Hier ist zu beachten, dass Virtualisierungsl\u00f6sungen wie VMware ESX von der physischen Hardware abstrahieren. Da die Software mit logischen CPUs und einer Virtualisierungsschicht f\u00fcr den Speicher arbeitet, k\u00f6nnen Optimierungen f\u00fcr eine Numa-Architektur auf einem virtualisierten System sogar zu negativen Effekten f\u00fchren.<\/p>\n<p>Das automatische Speichermanagement des Betriebssystems kann zu unerw\u00fcnschten Effekten f\u00fchren, wenn eine Anwendung Speicher selbst verwaltet, um teure Systemaufrufe beim Allokieren und Freigeben von Speicher zu vermeiden. Dann kann Speicher beim Wiederverwenden des Speichers im falschen Bereich vorliegen. Quasi jede Datenbank implementiert ein eigenes Speichermanagement, das auf der Anwendungsebene arbeitet.<\/p>\n<p>Ein weiterer Effekt besteht darin, dass ein Thread Speicher (lokal) allokiert, aber viele andere Threads mit diesem Speicher arbeiten wollen.<\/p>\n<p>Als Beispiel sei der Speicher einer Spalte genannt: Dieser Speicher wird einmal beim Laden der Spalte in den Hauptspeicher allokiert, aber viele Anfragen lesen die Daten der Spalte.<\/p>\n<p>In beiden genannten Szenarien, Speichermanagement auf Anwendungsebene und Speicherzugriff durch viele Threads, kann ein effektives Scheduling der Threads helfen. Auch hier implementieren moderne Betriebssysteme Strategien, Threads dort auszuf\u00fchren, wo die verwendeten Daten allokiert sind.<\/p>\n<p>Das kann so weit f\u00fchren, dass ein Thread von einem <span id=\"urn:local-text-annotation-s6aws8tftkf3cmq1g5nnnq2ddtss8jwp\" class=\"textannotation disambiguated wl-thing\">Core<\/span> auf einen anderen verschoben wird, damit Speicherzugriffe von lokalem Speicher bearbeitet werden k\u00f6nnen. Das Betriebssystem st\u00f6\u00dft jedoch an Grenzen, wo beispielsweise Wissen des Datenbanksystems zu besseren Ergebnissen Entscheidungen f\u00fchren kann.<\/p>\n<h3>Numa-Unterst\u00fctzung in <span id=\"urn:local-text-annotation-fjpmuzm2u1kbl9mulfzhfoflo1w77qsd\" class=\"textannotation disambiguated wl-thing\">Hana<\/span><\/h3>\n<p>Im vorherigen Abschnitt wurden Strategien auf Numa-Architekturen besprochen, die jeder Anwendung auf modernen Servern und modernen Betriebssystemen zur Verf\u00fcgung stehen.<\/p>\n<p>Diese Techniken allein f\u00fchren jedoch zu suboptimalen Entscheidungen, weil die speziellen Eigenschaften eines Datenbanksystems nicht ber\u00fccksichtigt werden k\u00f6nnen. Auf Datenbank-spezifische Optimierungsm\u00f6glichkeiten in der <span id=\"urn:local-text-annotation-nk9ppv1ektrnlkrvlarevlux242zuap4\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB geht dieser Abschnitt ein.<\/p>\n<h3>Speichermanagement<\/h3>\n<p>Wie oben angedeutet, implementiert die <span id=\"urn:local-text-annotation-uj43lcphcbg7v6ukf8p96jdr21zimu12\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB aus Effizienzgr\u00fcnden ein Speichermanagement, das auf der Speicherverwaltung des Betriebssystems aufbaut. Dabei wird Speicher normalerweise nicht an das Betriebssystem zur\u00fcckgegeben, wenn er im Datenbank-Code freigegeben wird.<\/p>\n<p>Gleichzeitig wird bereits allokierter Speicher wiederverwendet. Dadurch soll zum einen die Fragmentierung des Hauptspeichers, aber auch die Anzahl der System-Aufrufe an das Betriebssystem reduziert werden. An dieser Stelle er\u00f6ffnen sich M\u00f6glichkeiten, die spezifischen Eigenschaften einer Numa-Architektur auszunutzen:<\/p>\n<p>1. Wenn ein Thread Speicher anfordert, so wird dem Thread lokaler Speicher des Prozessors bereitgestellt, damit Zugriffe auf diesen Speicher durch den lokalen Speicher-<span id=\"urn:local-text-annotation-4jrzcf1oenrzmr55fvznre5mk3ran70l\" class=\"textannotation disambiguated wl-thing\">Controller<\/span> verarbeitet werden und die Speicherbusse zwischen den Prozessoren entlastet werden. Diese Strategie erscheint besonders in Szenarien sinnvoll, wo der Speicher von Threads auf demselben Prozessor verwendet wird.<\/p>\n<p>2. In einigen F\u00e4llen erscheint es hingegen sinnvoller, den angeforderten Speicher auf mehrere Prozessoren zu verteilen. In aktuellen Systemen scheinen in bestimmten Szenarien die Speicher-<span id=\"urn:local-text-annotation-uc3mxmu1nyntc8vzzvhi4onufovw4xa7\" class=\"textannotation disambiguated wl-thing\">Controller<\/span> einen Flaschenhals darzustellen. In diesen F\u00e4llen ist es sinnvoller, sowohl den Speicher also auch die Threads, die den Speicher verwenden, auf verschiedene Prozessoren zu verteilen. Auf diese Weise kann, zum Beispiel beim Zugriff auf gro\u00dfe und h\u00e4ufig verwendete Spalten, der Flaschenhals vermieden werden.<\/p>\n<h3>Job Scheduling<\/h3>\n<p>Ein modernes Betriebssystem trifft in vielen F\u00e4llen eine gute Entscheidung, welche Threads auf welchem <span id=\"urn:local-text-annotation-2w770t8j32kpdxuxf1thjg78txxoek5y\" class=\"textannotation disambiguated wl-thing\">Core<\/span> ausgef\u00fchrt werden sollen.<\/p>\n<p>Bei der Entscheidung wird ber\u00fccksichtigt, ob es auf einem Prozessor noch Cores gibt, die aktuell keine Berechnungen durchf\u00fchren, in welchem Aktivit\u00e4tszustand einzelne Cores und Prozessoren sind (um Energie zu sparen, lohnt es sich, Arbeit auf einzelne Prozessoren zu b\u00fcndeln und andere Prozessoren zu deaktivieren), ob einzelne Prozessoren aktuell \u201e\u00fcbertaktet\u201c laufen (TurboBoost bei <span id=\"urn:local-text-annotation-i52lu96x5wbxzu69jm81h9vu4sejj4lc\" class=\"textannotation disambiguated wl-organization\">Intel<\/span>) sowie auf welche Daten ein Thread zugreift.<\/p>\n<p>Neben dieser automatischen Entscheidung des Betriebssystems kann ein Anwendungsentwickler die Zuordnung von Threads zu Prozessoren oder Cores beeinflussen.<\/p>\n<p>Im Grunde sind die damit verbundenen Optimierungsm\u00f6glichkeiten beim Scheduling der Threads im System abh\u00e4ngig vom Speichermanagement zu sehen:<\/p>\n<ol>\n<li>Wenn Daten, die ein Thread benutzt, lokal einem Prozessor zugeordnet sind, dann sollte der Thread auch auf diesem Prozessor abgearbeitet werden.\u00a0 Etwas \u00fcberraschend ist es manchmal lohnend, mehr Threads auf einem Prozessor ausf\u00fchren zu lassen, als der Prozessor verarbeiten kann (Anzahl Cores, mit Hyperthreading theoretisch zweimal Anzahl der Cores).Das ist insbesondere der Fall, wenn diese Threads auf gemeinsamen Speicher zugreifen und dieser Speicher dann bereits in den Caches verf\u00fcgbar ist.<\/li>\n<li>Manche komplexe Datenbankoperationen lesen und schreiben gro\u00dfe Datenmengen und lasten damit den Speicher-<span id=\"urn:local-text-annotation-35vy1eul437h3051m12h6jh9ypxkl11t\" class=\"textannotation disambiguated wl-thing\">Controller<\/span> eines Prozessors aus.Wenn die Daten f\u00fcr diese Operationen bereits auf den lokalen Speicher mehrerer Prozessoren verteilt sind, dann sollten die Threads f\u00fcr den Zugriff auf die Daten auf mehrere Prozessoren verteilt sein. Dadurch werden einzelne Speicher-<span id=\"urn:local-text-annotation-nav5rfskkgjzreheedh42fmchd2oltwv\" class=\"textannotation disambiguated wl-thing\">Controller<\/span> entlastet, und die Arbeitslast wird auf mehrere Speicherverbindungen und Speicher-<span id=\"urn:local-text-annotation-ljnxkvg5e8d838gvlvj84ev82d28vudb\" class=\"textannotation disambiguated wl-thing\">Controller<\/span> verteilt.<\/li>\n<li>In einigen F\u00e4llen sollten Datenbank-Operationen wie Join-Operationen mit einem besonderen Augenmerk auf die Numa-Architektur implementiert werden. Erste \u201eRichtlinien\u201c f\u00fcr derartige Implementierungen werden in der Forschungsliteratur diskutiert (Albutiu, Kemper &amp; Neumann, 2012).<\/li>\n<\/ol>\n<h3>Zukunft von Numa<\/h3>\n<p>Nicht nur Datenbank-Software wurde mehrere Jahrzehnte unter der Pr\u00e4misse erstellt, dass die Verarbeitungsgeschwindigkeit mit der n\u00e4chsten Prozessor-Generation zunimmt, unter anderem deshalb, weil sich die Taktfrequenz erh\u00f6ht. Aus technischen Gr\u00fcnden gilt dieser Automatismus seit Beginn des Jahrtausends nicht mehr.<\/p>\n<p>Anbieter wie Intel oder <span id=\"urn:local-text-annotation-ytbqv8rhcvk40ky5g9ewdg19axkqkmwv\" class=\"textannotation disambiguated wl-organization\">AMD<\/span> propagieren Systeme, in denen die Arbeit auf mehrere Prozessoren mit jeweils mehreren Cores verteilt wird. Wie in dem Artikel diskutiert, scheint sich eine Architektur durchzusetzen, in der der Speicherzugriff unterschiedlich aufw\u00e4ndig ist \u2013 abh\u00e4ngig davon, wo der Speicher physisch allokiert wurde (mit Numa bezeichnet).<\/p>\n<p>Anwendungssoftware muss daher \u00fcberarbeitet werden, damit sie die Parallelit\u00e4t ausnutzen kann, die mit der Verf\u00fcgbarkeit von Mehrkern-Architekturen einherging. Damit verbunden, muss die Software die Eigenheiten der Numa-Architektur ber\u00fccksichtigen und die Allokation von Speicher und den Zugriff darauf optimieren.<\/p>\n<p>W\u00e4hrend moderne Betriebssysteme einige Optimierungen in dem Bereich bereitstellen, m\u00fcssen Performance-kritische Anwendungen wie die <span id=\"urn:local-text-annotation-edct38rmmo7lp89spja4zjz37vt610gf\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-DB deutlich dar\u00fcber hinausgehende Verbesserungen realisieren.<\/p>\n<p>In der <span id=\"urn:local-text-annotation-4h0rnn6c59g09t7q7fjfhomg0lzvnpvu\" class=\"textannotation disambiguated wl-thing\">Hana<\/span>-Datenbank ist bereits eine Reihe dieser Verbesserungen integriert. Dennoch steht die Implementierung von Datenbanken auf Numa-Architekturen erst am Anfang, und weitere Verbesserungen sind zu erwarten.<\/p>\n","protected":false},"excerpt":{"rendered":"<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","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\/de\/category\/it-management\/\" rel=\"category tag\">IT-Management<\/a>","author_info_v2":{"name":"Norman May, SAP","url":"https:\/\/e3mag.com\/de\/author\/norman-may\/"},"comments_num_v2":"0 comments","_links":{"self":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/posts\/399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/comments?post=399"}],"version-history":[{"count":0,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/posts\/399\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/media\/882"}],"wp:attachment":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/media?parent=399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/categories?post=399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/tags?post=399"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/coauthors?post=399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}