DE102018108942A1 - System und Verfahren zum Verwalten einer Speichervorrichtung - Google Patents

System und Verfahren zum Verwalten einer Speichervorrichtung Download PDF

Info

Publication number
DE102018108942A1
DE102018108942A1 DE102018108942.2A DE102018108942A DE102018108942A1 DE 102018108942 A1 DE102018108942 A1 DE 102018108942A1 DE 102018108942 A DE102018108942 A DE 102018108942A DE 102018108942 A1 DE102018108942 A1 DE 102018108942A1
Authority
DE
Germany
Prior art keywords
index
requests
storage device
storage
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018108942.2A
Other languages
English (en)
Inventor
YangSeok Ki
Jason MARTINEAU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/686,690 external-priority patent/US20180364937A1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018108942A1 publication Critical patent/DE102018108942A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

In einem Verfahren zum Verwalten einer Speichervorrichtung (104) weist das Verfahren Folgendes auf: ein Empfangen durch einen Hostprozessor, welcher auf einem Hostsystem platziert ist, von Indexanforderungen (122, 122a) für einen Index, wobei die Indexanforderungen (122, 122a) wenigstens eines von Nutzerdienstanforderungen oder Datenzugriffsanforderungen aufweisen; ein Übertragen durch den Hostprozessor zu einem Speicherprozessor, welcher auf einer Speichervorrichtung (104) platziert ist, wenigstens einiger der Indexanforderungen (122, 122a) für den Index; ein Empfangen durch den Hostprozessor von Parametern eines ersten Index, welcher durch den Speicherprozessor unter Verwendung eines Vorrichtungsprofils der Speichervorrichtung (104), welches wenigstens eines von Berechnungsfähigkeiten oder Speicherfähigkeiten der Speichervorrichtung (104) aufweist, und der Indexanforderungen (122, 122a) erzeugt wird; ein Aufbauen durch den Hostprozessor unter Verwendung der Parameter des ersten Index und interagierend mit dem ersten Index eines zweiten Index, welcher die Indexanforderungen (122, 122a) erfüllt.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Diese Anmeldung beansprucht den Vorzug der vorläufigen U.S.-Anmeldung Nr. 62/522 514 mit dem Titel „DEVICE AND SYSTEM FOR A COOPERATIVE INDEX FOR RESOURCE-CONSTRAINED STORAGE SYSTEM“, welche beim Patent- und Markenamt der Vereinigten Staaten am 20. Juni 2017 eingereicht wurde, und deren Gesamtinhalt hierin durch Verweis miteingebunden ist.
  • HINTERGRUND
  • Ein Schlüssel-Wert-Festkörperlaufwerk (SSD = Solid State Drive = Festkörperlaufwerk) ist ein Objektspeicher, welcher mehrere Behälter haben kann, um sie als interne Verwaltungseinheiten zu verwenden. Beispielsweise kann ein Schlüssel-Wert-SSD eine Nutzung von logischen Blockadressen (LBAs = Logical Block Addresses = logische Blockadressen) zum Zugreifen auf Daten, welche darin gespeichert sind, nicht benötigen, sondern kann sich auf einen Schlüssel zum Zugreifen auf Daten, welche mit dem Schlüssel verbunden sind, verlassen.
  • Speichervorrichtungen wie beispielsweise ein SSD haben typischerweise weniger Berechnungsressourcen als der Host (oder Speichersystem), mit dem sie in Verbindung verwendet werden. Dies beschränkt die Funktionalitäten und Leistungsfähigkeit, welche eine Speichervorrichtung für ihre Indizes vorsehen kann. Aufgrund seiner beschränkten Ressourcen kann es wünschenswert sein, Indexlasten eines Schlüssel-Wert-SSD zu verringern.
  • Die obige Information, welche in dieser Hintergrundsektion offenbart ist, ist nur für die Verbesserung des Verständnisses des Hintergrunds der Offenbarung und demnach kann sie Information enthalten, welche keinen Stand der Technik bildet.
  • KURZFASSUNG
  • Aspekte einiger beispielhafter Ausführungsformen der vorliegenden Offenbarung beziehen sich auf ein System und ein Verfahren zum Verwalten einer Speichervorrichtung.
  • Gemäß einigen beispielhaften Ausführungsformen weisen ein System und ein Verfahren zum Verwalten einer Speichervorrichtung einen Mechanismus zum wirksamen Einsetzen der Ressourcen des Host (oder Speichersystems) auf, um die Funktionalitäten und Leistungsfähigkeit einer Speichervorrichtung, wie einem SSD, zu verbessern, ohne die Vorrichtung mit berechnungsintensiven Indizieroperationen zu überlasten.
  • Gemäß einigen beispielhaften Ausführungsformen der vorliegenden Erfindung weist bei einem Verfahren zum Verwalten einer Speichervorrichtung das Verfahren Folgendes auf: ein Empfangen durch einen Hostprozessor, welcher auf einem Hostsystem platziert ist, von Indexanforderungen für einen Index, wobei die Indexanforderungen wenigstens eine von Nutzerdienstanforderungen oder Datenzugriffanforderungen aufweisen; ein Übertragen durch den Hostprozessor zu einem Speicherprozessor, welcher auf einer Speichervorrichtung platziert ist, wenigstens einiger der Indexanforderungen für den Index; ein Empfangen durch den Hostprozessor von Parametern eines ersten Index, welcher durch den Speicherprozessor unter Verwendung eines Vorrichtungsprofils der Speichervorrichtung erzeugt wird, aufweisend wenigstens eines von Berechnungsfähigkeiten oder Speicherfähigkeiten der Speichervorrichtung und die Indexanforderungen; ein Aufbauen durch den Hostprozessor unter Verwendung der Parameter des ersten Index und interagierend mit dem ersten Index, eines zweiten Index, welcher die Indexanforderungen erfüllt.
  • Gemäß einigen beispielhaften Ausführungsformen weist das Vorrichtungsprofil der Speichervorrichtung wenigstens eines auf von Speicher, Kapazität, Controllerleistungsfähigkeit, Speichermedium oder Leistungsfähigkeit.
  • Gemäß einigen beispielhaften Ausführungsformen weist das Hostsystem einen Personalcomputer oder einen Server auf, welcher konfigurierbar ist, um sich mit einem lokalen oder einem Weitbereichsnetzwerk zu verbinden.
  • Gemäß einigen beispielhaften Ausführungsformen weisen die Indexanforderungen wenigstens eines auf von Dienstqualität für die Speichervorrichtung, Ordnungsanforderungen für die Daten, Abfragestrukturen, Schlüsselverteilung, Werteverteilung, teilweisen Schlüsseln oder Behälterkapazität.
  • Gemäß einigen beispielhaften Ausführungsformen wird eine beständige Kopie des zweiten Index oder Metadaten über den zweiten Index in einem Behälter gespeichert, welcher auf der Speichervorrichtung erzeugt wird.
  • Gemäß einigen beispielhaften Ausführungsformen weist die Speichervorrichtung ein Schlüssel-Wert-Festkörperlaufwerk auf.
  • Gemäß einigen beispielhaften Ausführungsformen ist eine Indexstruktur des ersten Index nur teilweise strukturiert, um eine Berechnungslast auf die Speichervorrichtung zu verringern.
  • Gemäß einigen beispielhaften Ausführungsformen wird wenigstens eine zusätzliche Speichervorrichtung genutzt, welche einen dritten Index hat, welcher in ihr erzeugt wird, welcher kooperativ mit der zweiten Indexstruktur des Hostsystem genutzt werden kann.
  • Gemäß einigen beispielhaften Ausführungsformen ist eine Indexstruktur des zweiten Index dynamisch konstruiert.
  • Gemäß einigen beispielhaften Ausführungsformen ist eine Indexstruktur des zweiten Index teilweise in Antwort auf Zugriffsanforderungen oder Anfragen für die Daten, welche auf der Speichervorrichtung gespeichert sind, konstruiert.
  • Gemäß einigen beispielhaften Ausführungsformen weist das Verfahren weiter ein Identifizieren durch den Prozessor, von Leistungsfähigkeitscharakteristiken der Speichervorrichtung in Antwort auf wenigstens eines von einem Laden eines Speichervorrichtungstreibers, einem Laden einer Bibliothek, einem Öffnens einer Speichervorrichtung, einem Öffnen eines Behälters, einem Datenzugriff oder einer Nutzereingabe auf.
  • Gemäß einigen beispielhaften Ausführungsformen ist eine Indexstruktur des zweiten Index strukturiert, um kooperativ mit Indizes verwendet zu werden, welche mit mehreren unterschiedlichen Behältern, welche konkurrierende Notwendigkeiten haben, verbunden sind.
  • Gemäß einigen beispielhaften Ausführungsformen der vorliegenden Erfindung weist ein Speichersystem Folgendes auf: einen Host, welcher einen Hostprozessor und einen Hostspeicher aufweist; und eine Speichervorrichtung, welche einen Speicherprozessor und einen Speicher aufweist, wobei der Hostprozessor konfiguriert ist, um Indexanforderungen für einen Index zu empfangen, wobei die Indexanforderungen wenigstens eines von Nutzerdienstanforderungen oder Datenzugriffsanforderungen aufweisen, wobei der Hostprozessor konfiguriert ist, um zu dem Speicherprozessor wenigstens einige der Indexanforderungen für den Index zu übertragen, wobei der Speicherprozessor konfiguriert ist, um ein Vorrichtungsprofil zu bestimmen, welches wenigstens eines aufweist von Berechnungsfähigkeiten und Speicherfähigkeiten der Speichervorrichtung, wobei der Speicherprozessor konfiguriert ist, um einen ersten Index aufzubauen unter Verwendung der Indexanforderungen und des Vorrichtungsprofils, wobei der Hostprozessor konfiguriert ist, um Parameter des ersten Index zu empfangen, und wobei der Hostprozessor konfiguriert ist, um unter Verwendung der Parameter des ersten Index und interagierend mit dem ersten Index einen zweiten Index aufzubauen, welcher die Indexanforderungen erfüllt.
  • Gemäß einigen beispielhaften Ausführungsformen weist das Vorrichtungsprofil wenigstens eines auf von Speicher, Kapazität, Controllerleistungsfähigkeit, Speichermedium oder Leistungsfähigkeit.
  • Gemäß einigen beispielhaften Ausführungsformen weist das Hostsystem einen Personalcomputer oder einen Server auf, welcher konfigurierbar ist, um sich mit einem lokalen oder einem Weitbereichsnetzwerk zu verbinden.
  • Gemäß einigen beispielhaften Ausführungsformen weisen die Indexanforderungen wenigstens eines auf von Dienstqualität für die Speichervorrichtung, Ordnungsanforderungen für die Daten, Abfragestrukturen, Schlüsselverteilung, Werteverteilung, teilweisen Schlüsseln oder Behälterkapazität.
  • Gemäß einigen beispielhaften Ausführungsformen werden eine beständige Kopie des zweiten Index oder Metadaten über den zweiten Index in einem Behälter gespeichert, welcher auf der Speichervorrichtung erzeugt wird.
  • Gemäß einigen beispielhaften Ausführungsformen weist die Speichervorrichtung ein Schlüssel-Wert-Festkörperlaufwerk auf.
  • Gemäß einigen beispielhaften Ausführungsformen ist eine Indexstruktur des ersten Index nur teilweise strukturiert, um eine Berechnungslast auf die Speichervorrichtung zu verringern.
  • Gemäß einigen beispielhaften Ausführungsformen der vorliegenden Erfindung ist in einer Speichervorrichtung, welche einen Speicherprozessor und einen Speicher aufweist und konfiguriert ist, um operativ mit einem Host gekoppelt zu werden, der Speicherprozessor konfiguriert um: Indexanforderungen für einen Index zu empfangen, wobei die Indexanforderungen wenigstens eines von Nutzerdienstanforderungen oder Datenzugriffsanforderungen aufweisen; einen ersten Index aufzubauen unter Verwendung wenigstens einiger der Indexanforderungen und eines Vorrichtungsprofils der Speichervorrichtung, wobei das Vorrichtungsprofil wenigstens eines aufweist von Berechnungsfähigkeiten oder Speicherfähigkeiten; Parameter des ersten Index zu dem Host zu übertragen; und mit dem Host zu interagieren, um einen zweiten Index zu erzeugen, welcher die Indexanforderungen erfüllt, wobei der erste Index und der zweite Index kooperativ als der Index für ein Speichersystem, welches den Host und die Speichervorrichtung aufweist, verwendet wird.
  • Figurenliste
  • Ein vollständigeres Verständnis der vorliegenden Offenbarung und vieler der anwesenden Merkmale und Aspekte davon wird leichter offensichtlich werden, wenn die Offenbarung durch Bezugnahme auf die folgende detaillierte Beschreibung besser verstanden wird, wenn sie in Verbindung mit den beigefügten Zeichnungen betrachtet wird, in welchen:
    • 1 ein Blockschaltbild ist, welches Aspekte einer kooperativen Indexstruktur, welche als Teil eines Speichersystems gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung arbeitet, veranschaulicht;
    • 2 ein Blockschaltbild ist, welches weitere Details des kooperativen Indexverwalters veranschaulicht, welcher in 1 gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung veranschaulicht ist;
    • 3 ein Blockschaltbild ist, welches Aspekte der Speichervorrichtung veranschaulicht, welche einen kooperativen Index gemäß einigen beispielhaften Ausführungsformen verwendet; und
    • 4 ein Flussdiagramm ist, welches einen beispielhaften Prozess zum Erzeugen eines kooperativen Index gemäß einigen beispielhaften Ausführungsformen veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Es wird nun im Detail auf die Ausführungsformen des vorliegenden allgemeinen erfinderischen Konzepts Bezug genommen, von welchem Beispiele in den beigefügten Zeichnungen veranschaulicht sind, wobei gleiche Bezugszeichen sich durchgehend auf gleiche Elemente beziehen. Die Ausführungsformen sind untenstehend beschrieben, um das vorliegende allgemeine erfinderische Konzept zu erklären, während auf die Figuren Bezug genommen wird.
  • Aspekte und Merkmale der vorliegenden Erfindung und Verfahren zum Erreichen derselben können leichter durch Bezugnahme auf die folgende detaillierte Beschreibung von Ausführungsformen und die beigefügten Zeichnungen verstanden werden. Das vorliegende allgemeine erfinderische Konzept kann jedoch in vielen unterschiedlichen Formen ausgeführt sein und sollte nicht als auf die Ausführungsformen, welche hierin erläutert sind, beschränkt betrachtet werden. Vielmehr sind diese Ausführungsformen vorgesehen, sodass diese Offenbarung gewissenhaft und vollständig ist und das Konzept des allgemeinen erfinderischen Konzepts Fachleuten vollständig übermitteln wird, und das gegenwärtige allgemeine erfinderische Konzept wird nur durch die beigefügten Ansprüche definiert werden.
  • Die Verwendung der Begriffe „einer/eine/eines“ und „der/die/das“ und ähnlicher Bezugnahmen in dem Zusammenhang des Beschreibens der Erfindung (insbesondere in dem Zusammenhang der folgenden Ansprüche) müssen angesehen werden, sowohl den Singular als auch den Plural zu umfassen, solange nicht anderweitig angezeigt oder deutlich durch den Zusammenhang widersprochen ist. Die Begriffe „aufweisend“, „habend“, „einschließlich“ und „enthaltend“ müssen als offenendige Begriffe (das heißt „einschließlich, jedoch nicht beschränkt auf“ bedeutend) betrachtet werden, solang nicht anderweitig festgehalten.
  • Solange nicht anderweitig definiert, haben alle technischen und wissenschaftlichen Begriffe, welche hierin verwendet werden, die Bedeutung, wie sie allgemein durch einen Fachmann, zu dessen Fachgebiet diese Erfindung gehört, verstanden werden. Es wird festgehalten, dass die Verwendung von einem beliebigen und allen Beispielen oder beispielhaften Begriffen, welche hierin vorgesehen sind, lediglich beabsichtigt ist, um die Erfindung besser zu beleuchten und nicht eine Beschränkung für den Umfang der Erfindung ist, solange nicht anderweitig spezifiziert. Ferner dürfen, solang nicht anderweitig definiert, alle Begriffe, welche in allgemein verwendeten Wörterbüchern definiert sind, nicht übermäßig interpretiert werden.
  • Um Objekte effizient zu verwalten kann jeder Behälter einen Index haben, um Objekte in diesem Behälter zu finden. Der Index kann ein beliebiger geeigneter Typ von Index sein und kann ein oder mehrere Merkmale haben einschließlich jedoch nicht beschränkt auf Punktanfrage, Bereichsanfrage und geordneten Zugriff. Gemäß einer oder mehrerer beispielhafter Ausführungsformen ist eine Indexstruktur eine Datenstruktur für einen Index, welche konfiguriert ist, um eine Erleichterung der Nutzung zu ermöglichen und/oder um die Effizienz oder die Geschwindigkeit von Daten-Auffinde/Abfrage/Zugriffs-Operationen einer Speichervorrichtung zu verbessern. In einem Aspekt können Ausführungsformen der vorliegenden Erfindung die Indexfähigkeiten einer Speichervorrichtung durch ein Erzeugen einer kooperativen Indexstruktur verbessern, welcher in der Form eines präzisen Index (beispielsweise eines zweiten Index) auf dem Host (einem Hostsystem oder einem Speichersystem) implementiert ist, und einem oder mehreren ungefähren Indizes (beispielsweise erste Indizes) zur Verwendung innerhalb von Behältern auf einer oder mehrerer Speichervorrichtungen wie beispielsweise Schlüssel-Wert-Festkörperlaufwerken (SSDs = Solid State Drives = Festkörperlaufwerke). Das Speichersystem gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung bezieht sich auf einen Host, welcher einen Prozessor aufweisen kann, und welcher an Berechnungsressourcen reicher ist als eine Speichervorrichtung (beispielsweise ein Laufwerk wie beispielsweise ein Schlüssel-Wert-SSD). Eine oder mehrere Speichervorrichtungen können operativ mit dem Speichersystem gekoppelt sein. Alternativ kann sich ein Speichersystem auf sowohl einen Host als auch ein oder mehrere Speichervorrichtungen, welche operativ daran gekoppelt sind, beziehen. Die kooperative Indexstruktur erlaubt es, dass berechnungsintensivere Indizieraufgaben durch den ressourcenreicheren Host (Speichersystem) ausgeführt werden, während sie die Indexstrukturen der ungefähren Indizes wirksam einsetzt, um den Nutzer mit einem nützlichen Index, welcher eine erhöhte Effizienz hat, auszustatten.
  • Als ein nicht beschränkendes Beispiel eines Typs von Speichervorrichtung, welche in einer Ausführungsform der vorliegenden Erfindung verwendet werden kann, ist ein Schlüssel-Wert-Festkörperlaufwerk (SSD) eine Objektspeichervorrichtung, welche mehrere Behälter haben kann, um sie als interne Verwaltungseinheiten zu verwenden. Um die Objekte innerhalb eines Behälters effizient zu verwenden, hat jeder Behälter einen Index, welcher verwendet werden kann, um Objekte innerhalb des Behälters zu finden. Es kann viele Typen von Indizes geben, welche verwendet werden können, wie Fachleuten bekannt ist, und ein wohlimplementierter Index kann viele Merkmale haben. Beispielsweise kann ein guter Index den Nutzer mit der Fähigkeit ausstatten, eine Punktanfrage oder eine Bereichsanfrage durchzuführen. Er kann ebenso beispielsweise geordneten Zugriff für den Nutzer für die Objekte, welche innerhalb des Behälters gespeichert sind, vorsehen.
  • Speichervorrichtungen wie beispielsweise SSDs haben typischerweise weniger Berechnungsressourcen als der Host (oder Speichersystem), mit welchem sie in Verbindung verwendet werden. Dies begrenzt die Funktionalitäten und die Leistungsfähigkeit, welche eine Speichervorrichtung für ihre Indizes vorsehen kann. Da es gewöhnlich ist, dass ein Nutzer solch einer Speichervorrichtung oder Vorrichtungen mehr Funktionalität benötigen kann als die Speichervorrichtung oder die Vorrichtungen nativ vorsehen können, ist, was benötigt wird, ein Mechanismus, um nützliche funktionale Indizes für Nutzer vorzusehen, während die Last auf die individuellen Speichervorrichtungen verringert wird.
  • 1 bildet eine Ausführungsform der vorliegenden Erfindung innerhalb eines Systems 100 ab, wobei das Speichersystem 102 den präzisen Index 108 und den Kooperativ-Indexverwalter 106 beherbergt. Das Speichersystem 102 kann einen Prozessor, einen Speicher, eine Nutzerschnittstelle und andere Baugruppen oder Programmierung aufweisen, wie einem Fachmann bekannt ist. Beispielsweise kann das Speichersystem 102 als ein Personalcomputer oder als ein Server für eine Nutzung in Verbindung mit einem lokalen oder Weitbereichsnetzwerk ausgeführt sein. Beispielhaft kann ein Host (oder ein Hostsystem) gemäß einigen beispielhaften Ausführungsformen ein Server sein, welcher sowohl eine Verarbeitungseinheit als auch eine Speichereinheit aufweist. Der Host hat mehr Ressourcen als eine Speichervorrichtung und hat einen präzisen Index, welcher kooperativ mit einem ungefähren Index (beispielsweise einem ersten Index) der Speichervorrichtung arbeiten kann, und hat eine Hostbibliothek, um erweiterte beziehungsweise verbesserte Funktionalitäten für die Speichervorrichtung durch ein wirksames Einsetzen von Fähigkeiten der Vorrichtung zu implementieren. Die Hostbibliothek ist eine Hostsoftware, welche auf der Hostebene arbeitet (beispielsweise Codes), um Operationen zu handhaben, für welche der Host verantwortlich ist. Die Hostbibliothek kann ebenso Hinweise für die Speichervorrichtung vorsehen wie ungefähre Indizes konzeptuell aufgebaut sein können. Die ungefähren Indizes jedoch für die Behälter werden auf der Speichervorrichtungsebene aufgebaut. Gemäß Ausführungsformen der vorliegenden Erfindung muss der Host nicht notwendigerweise eine Endnutzermaschine sein, sondern kann ein beliebiges geeignetes System, Vorrichtung oder Vorrichtungen mit erweiterten Ressourcen (beispielsweise Berechnungsfähigkeiten) sein als die individualen Laufwerke selbst und kann ein Server sein, eine an einem Netzwerk angebrachte Speichervorrichtung und/oder dergleichen. Demnach kann auf den Host auch als ein ressourcenreiches Speichersystem oder ein weniger ressourcenbeschränktes Speichersystem Bezug genommen werden.
  • Eine Speichervorrichtung 104 oder in einer alternativen Ausführungsform eine Mehrzahl von Speichervorrichtungen 104 kann in Verbindung mit dem Speichersystem 102 verwendet werden. Die Speichervorrichtung 104 kann beispielsweise als ein Schlüssel-Wert-Festkörperlaufwerk (KV SSD = Key Value Solid State Drive = Schlüssel-Wert-Festkörperlaufwerk) ausgeführt sein, obwohl andere Typen von Speichervorrichtungen, welche im Stand der Technik als für eine Verwendung als Schlüssel-Wert-Speichermedium geeignet bekannt sind oder ein beliebiges anderes geeignetes Laufwerk, welches Fachleuten bekannt ist, verwendet werden können. Die Speichervorrichtung 104 beherbergt einen Ungefähr-Indexverwalter (AIM = Approximate Index Manager = Ungefähr-Indexverwalter) 114 und kann ebenso einen Behälter 109 beherbergen. Der Behälter 109 (und/oder einer oder mehrere zusätzliche Behälter) gemäß beispielhaften Ausführungsformen werden allgemein auf Anforderung des Nutzers/Host/Systems erzeugt. Der Ungefähr-Indexverwalter 114 gemäß einigen beispielhaften Ausführungsformen sitzt konzeptuell außerhalb des Behälters und verwaltet oder ist konfiguriert um die ungefähren Indizes über alle Behälter auf dem Laufwerk (beispielsweise der Speichervorrichtung 104) hinweg zu verwalten. Innerhalb des Behälters 109 sind ein ungefährer Index 110 und die entsprechende Ungefähr-Indexstruktur 112. In einer alternativen Ausführungsform kann eine Speichervorrichtung 104 eine Mehrzahl von Behältern 109 beherbergen, wovon jeder einen entsprechenden ungefähren Index 110 und möglicherweise unterschiedliche Ungefähr-Indexstrukturen 112 hat. Der Ungefähr-Indexverwalter 114 erzeugt oder baut auf den ungefähren Index 110. Beispielsweise ist der Ungefähr-Indexverwalter 114 durch eine Software (oder Firmware), welche in einem Speicherprozessor, welcher in der Speichervorrichtung 104 platziert ist, läuft, implementiert. Gemäß beispielhaften Ausführungsformen kann der Ungefähr-Indexverwalter 114 vorgeschlagene Indextypen und/oder Indexstrukturen von dem Kooperativ-Indexverwalter 106 empfangen und die Ungefähr-Indexstruktur 112 bestimmen und/oder den ungefähren Index 110 demgemäß aufbauen.
  • Ein ungefährer Index 110 ist ein leichtgewichtiger, möglicherweise teilweise strukturierter Index in einer ressourcenbeschränkten Vorrichtung, wie beispielsweise einer Speichervorrichtung 104. Der ungefähre Index 110 kann beschränkte Funktionalitäten haben und/oder weniger genau oder vollständig sein als der präzise Index 108. Allgemein gesagt kann der ungefähre Index 110 einen Indextyp und eine Ungefähr-Indexstruktur 112 haben, welche keine Menge von Berechnung benötigt, welche übermäßig beschwerlich für die beschränkten Ressourcen einer Speichervorrichtung 104 sein könnte. Ein ungefährer Index 110 kann ein Ordnen unterstützen, obwohl eine Unterstützung für ein Ordnen nicht benötigt wird. Demzufolge kann, wenn der ungefähre Index 110 ein Ordnen unterstützt, er teilweise oder ganz geordnet werden. Ein ungefährer Index 110 kann erzeugt werden, wenn ein Behälter 109 erzeugt wird, und der ungefähre Index 110 verbleibt mit dem Behälter 109 verbunden. Alternativ kann ein ungefährer Index 110 nach der Erzeugung des entsprechenden Behälters erzeugt werden. Ein ungefährer Index 110 ist gemäß einer Ungefähr-Indexstruktur konstruiert, welche durch den Ungefähr-Indexverwalter 114 aufgebaut wird, und wird als ein Führer zum Aufbauen des ungefähren Index verwendet. Dies wird getan unter Berücksichtigung einer oder mehrerer von, jedoch nicht beschränkt auf, Vorrichtungsressourcen, der Natur der Indexdaten, der Natur der Anfragen und der kooperativen Indexbetriebsanforderungen und/oder dergleichen. Nach der Erzeugung des ungefähren Index 110 verbleibt seine Struktur fixiert. Wenn jedoch Änderungen benötigt werden, kann ein ungefährer Index 110 gelöscht oder mit einer neuen Struktur wiedererzeugt (neu aufgebaut) werden. In Ausführungsformen der vorliegenden Erfindung, in denen mehr als ein Behälter 109 verwendet wird, einschließlich Ausführungsformen, in denen eine Mehrzahl von Speichervorrichtungen 104 verwendet werden, kann jeder Behälter 109 einen damit verbundenen ungefähren Index 110 haben und jeder der Indizes kann eine unterschiedliche Ungefähr-Indexstruktur 112 haben.
  • Ein präziser Index 108 ist ein Index in einem ressourcenreichen Speichersystem 102, welches eine erweiterte Funktionalität für einen oder mehrere ungefähre Indizes 110 vorsieht. Allgemein gesprochen ist ein präziser Index 108 ein Index auf Anforderung und wird typischerweise die Indexebene sein, mit welcher ein Nutzer interagieren könnte. Beispielsweise würde, wenn ein Nutzer eine Anfrage an ein System 100 gesendet hat, welches als ein Server mit einer SSD, welche mit ihm als Speichervorrichtung 104 dienend verbunden ist, dann die Nutzeranfrage durch das Speichersystem 102 durch ein Durchsuchen des präzisen Index 108, welcher auf dem Speichersystem 102 platziert ist, bearbeitet werden. Dann, wenn es notwendig wäre, auf den ungefähren Index 110 auf der Speichervorrichtung 104 zuzugreifen, könnte der ungefähre Index 110 genutzt werden, um die Daten, welche angefordert sind, schnell für den präzisen Index 108 vorzusehen. Dieses wirksame Einsetzen des ungefähren Index 110 erlaubt es dem präzisen Index 108, die benötigte Funktionalität vorzusehen, um die Nutzeranforderung zu erfüllen, während die komplexen Indizierungsanforderungen von sowohl der ressourcenlimitierten Speichervorrichtung 104 als auch dem ressourcenreichen Speichersystem 102 beseitigt werden. In anderen Worten gesagt verringert der kooperative Index gemäß beispielhaften Ausführungsformen die Last auf sowohl das Speichersystem 102 als auch die Speichervorrichtung 104. Beispielsweise können in einem rein Host-basierten System viele der Hostressourcen (und/oder viele IO-Anforderungen zu den Laufwerken) für Indizierungszwecke genutzt oder benötigt werden. Alternativ kann es, wenn der Index lediglich auf dem Laufwerk wäre, signifikant mehr Verarbeitungsfähigkeiten benötigen als tatsächlich gegenwärtig sind. Demnach kann die Last zwischen dem Host und dem Laufwerk fair aufgeteilt werden.
  • Ein präziser Index 108 wird obenauf von einem oder mehreren ungefähren Indizes 110 aufgebaut und er ist strukturiert, um die Funktionalität der ungefähren Indizes 110 zu ergänzen, welche teilweise strukturiert sein können, um den Nutzer mit einem funktionalen und nützlichen Index auszustatten, welcher eine erhöhte Effizienz hat. Die erhöhte Effizienz resultiert aus dem präzisen Index 108 und erlaubt es, dass einige der berechnungsintensiven Indizierungsaufgaben unter Verwendung der Ressourcen des Speichersystems 102 ausgeführt werden, welche typischerweise größer sind als diejenigen der Speichervorrichtung 104. Ein präziser Index 108 kann in Antwort auf eine Eingabe von einem Nutzer, dem Speichersystem 102 oder einer Speichervorrichtung 104 erzeugt werden. Demnach kann der präzise Index 108 basierend auf sowohl den Nutzeranforderungen als auch dem ungefähren Index 110 der Speichervorrichtung aufgebaut werden, welche durch die funktionalen und Speicherfähigkeiten der Speichervorrichtung begrenzt wären. Die Erzeugung eines präzisen Index 108 kann ebenso statisch oder dynamisch zu der Treiberladezeit der Speichervorrichtung 104, zu einer Bibliotheksladezeit, zu einer Öffnungszeit der Speichervorrichtung 104, zu einer Öffnungszeit des Behälters 109 und/oder zu einer Objektzugriffszeit durchgeführt werden. Zusätzlich kann ein präziser Index 108 in seiner Gesamtheit oder inkrementell auf Anforderung erzeugt werden, der alle Informationen von dem ungefähren Index 110 oder ungefähren Indizes 110 oder nur einen Abschnitt der Information basierend auf Zugriffsstrukturen lädt. Wie untenstehend in Hinsicht auf den dauerhaften kooperativen Index 124 diskutiert ist, kann ein präziser Index beständig gegenüber entweder dem Speicher des Speichersystems 102 oder der Speichervorrichtung 104 sein. Wenn der präzise Index 108 innerhalb des flüchtigen Speichers eines Speichersystems 102 platziert ist, dann kann ein Erzeugen eines dauerhaften kooperativen Index 124, welcher auf der Speichervorrichtung 104 platziert ist, durchgeführt werden, um die Rekonstruktion oder die Wiederherstellung des präzisen Index 108 zu erlauben, wenn beispielsweise eine Vorrichtung geschlossen wird oder die System 100-Leistung abgeschaltet wird. In einigen Situationen und für einige Ausführungsformen muss der präzise Index 108 nicht im Speicher bestehen bleiben und kann verworfen und wieder erzeugt werden, wenn es notwendig ist.
  • Ebenso ist eine konzeptuelle Repräsentation des kooperativen Index 116 abgebildet, welcher konzeptuell zwischen dem präzisen Index 108 und dem ungefähren Index 110 implementiert ist, seine Beziehung über das Speichersystem 102 und die Speichervorrichtung 104 hinweg anzeigend. Beispielsweise ist der kooperative Index „das Konzept“ des präzisen und des ungefähren Index, welche verwaltet und miteinander verwendet werden, um die endgültige Nutzbarkeit und Eigenschaften gemäß beispielhaften Ausführungsformen der vorliegenden Erfindung vorzusehen. Der kooperative Index 116 ist eine Indexstruktur, welche einen präzisen Index 108, welcher auf dem berechnungsressourcenreichen Speichersystem 102 platziert ist, nutzt, um eine erweiterte Funktionalität für den einen oder die mehreren ungefähren Indizes 110 vorzusehen, welche darauf aufgebaut sind. Diese Struktur wird durch den Kooperativ-Indexverwalter 106 wie detaillierter untenstehend diskutiert ist, informiert.
  • 2 bildet einen beispielhaften Betrieb des Kooperativ-Indexverwalters 106 ab. Beim Bestimmen, welcher Typ von Indexstruktur für den präzisen Index 108 benutzt werden sollte, berücksichtigt der Kooperativ-Indexverwalter 106 die Indexaufbauoptionen 118, die unterstützten Indextypen 120, die Indexanforderungen 122 und die Ungefähr-Indexstruktur 112a, welche er von der Speichervorrichtung 104 empfängt. Beispielsweise empfängt der Kooperativ-Indexverwalter 106 Information betreffend die unterstützten Indextypen 120, welche beispielsweise einen Baum (beispielsweise einen AVL-Baum), eine Liste (beispielsweise eine Skipliste) und einen Hash aufweisen können. Ein Fachmann wird erkennen, dass es viel mehr Datenstrukturen gibt, welche für Indizierzwecke benutzt werden könnten, welche nicht explizit hierin offenbart sind, aber innerhalb des Umfangs des erfinderischen Konzepts sind. Der Kooperativ-Indexverwalter 106 berücksichtigt dann die Indexanforderungen 122, um in dem kooperativen Index gemäß einem unterstützten Indextyp implementiert zu sein, dessen Anforderungen ein oder mehrere von, jedoch nicht beschränkt auf Qualität des Dienstes (QoS), Ordnungsanforderungen, Zugriffsstruktur, Anfragestruktur, Schlüsselverteilung, Werteverteilung, teilweises Schlüsselsuchen und lokale Speicherkapazität aufweisen kann. Hier können QoS, Ordnungsanforderungen, Zugriffsstruktur, teilweise Schlüsselsuche und Anfragestruktur Nutzeranforderungen sein, wohingegen Schlüsselverteilung, Werteverteilung und Behälterkapazität physikalische oder logische Anforderungen sind. Die Indexaufbauoptionen 118 können ein oder mehrere von dynamisch/statisch, gesamt/teilweise etc. aufweisen, sind aber nicht darauf beschränkt. Der Kooperativ-Indexverwalter 106 empfängt ebenso Information über die Ungefähr-Indexstruktur 112a und bestimmt einen entsprechenden Indextyp, eine Indexstruktur und einen Aufbauplan. Basierend auf dem unterstützen Indextyp und anderen Informationen, welche durch den Kooperativ-Indexverwalter wie obenstehend genannt empfangen werden, kann der präzise Index einem spezifischen Typ und einer Struktur von Index entsprechen, welche am besten die verschiedenen Anforderungen wie beispielsweise einen Baum, eine Liste oder einen Hash erfüllt. In einigen Ausführungsformen kann der Kooperativ-Indexverwalter 106 in Kommunikation mit einer Mehrzahl von Ungefähr-Indexverwaltern 114 sein, welche innerhalb einer Mehrzahl von Speichervorrichtungen 104 ausgeführt sein kann.
  • Ein Paar von Indexaufbauoptionen 118 ist als nicht beschränkende Beispiele der Typen von Optionen vorgesehen, welche durch den Kooperativ-Indexverwalter 106 berücksichtigt werden können. Beispielsweise kann der Index, wie obenstehend beschrieben, optional dynamisch oder statisch sein, und der Index kann ebenso gesamt oder teilweise sein, ist jedoch nicht darauf beschränkt. Ähnlich sind einige Beispiele der Typen von Indizes, welche verwendet werden können, innerhalb des unterstützten Indextyps 120 vorgesehen. Beispielsweise können die Typen von Indizes, welche unterstützt werden, wie obenstehend beschrieben ist einen AVL-Baum (beispielsweise einen Baum), eine Skipliste (beispielsweise eine Liste) oder einen Hash aufweisen, sind aber nicht darauf beschränkt. Diese beispielhaften Indextypen sind vorgesehen, um nicht beschränkend zu sein, und andere Indextypen, wie sie Fachleuten bekannt sind, können innerhalb des Umfangs der vorliegenden Erfindung verwendet werden. Eine nicht erschöpfende Liste der Typen von Anforderungen, welche innerhalb der Indexanforderungen 122 enthalten sind, ist ebenso vorgesehen.
  • Ebenso sind die Indexanforderungen 122a, der ungefähre Index 110, die Ungefähr-Indexstruktur 112 und der dauerhafte kooperative Index 124, welche innerhalb des Behälters 109 gespeichert sind, abgebildet. Die Indexanforderungen 122a werden von dem Kooperativ-Indexverwalter 106 zu dem Ungefähr-Indexverwalter 114 auf der Speichervorrichtung 104, welche den Behälter 109 und die Inhalte, welche innerhalb dieses abgebildet sind, erzeugt, kommuniziert. Die Indexanforderung kann ein oder mehreres aufweisen von, ist jedoch nicht beschränkt auf QoS, Ordnungsanforderung, Zugriffsstruktur, Anfragestruktur, Schlüsselverteilung, Werteverteilung, teilweiser Schlüssel und lokale Speicherkapazität. Eine Mehrzahl von Behältern 109 in der Speichervorrichtung 104 kann jeweils ihren eigenen ungefähren Index 110 und eine ungefähre Indexstruktur 112 enthalten. In einer alternativen Ausführungsform kann es eine Mehrzahl von Speichervorrichtungen 102 geben, welche innerhalb des Umfangs der vorliegenden Erfindung verwendet werden können.
  • Der dauerhafte kooperative Index 124 kann als entweder eine Kopie eines präzisen Index 108, welcher mit einem ungefähren Index 110 innerhalb eines Behälters 109 verbunden ist, welcher vollständig für die Speichervorrichtung 104 besteht, konstruiert sein, oder als eine Metadatendatei oder eine andere Datenstruktur innerhalb eines Behälters 109, welche verwendet werden kann, um einen kooperativen Index 116 schnell zu rekonstruieren, sollte solch eine Rekonstruktion notwendig oder erwünscht sein.
  • Als ein nicht beschränkendes Beispiel einer Situation, in welcher solch eine Rekonstruktion wünschenswert sein könnte, würde, wenn die Speichervorrichtung 104 von dem Speichersystem 102 getrennt würde, und dann mit einem anderen System 100, welches ein anderes Speichersystem 102 hat, verbunden würde, der dauerhafte kooperative Index 124 die beschleunigte Erzeugung eines kooperativen Index 116 innerhalb des neuen Systems 100 erlauben. Dies könnte erreicht werden entweder durch ein Duplizieren der vollständig fortbestehenden Kopie des kooperativen Index 116 innerhalb des neuen Speichersystems 104 oder durch ein Verwenden des Metadatenfiles, um den Kooperativ-Indexverwalter 106 des neuen Speichersystems 102 darüber zu informieren, welcher Typ von Index verwendet werden könnte, ohne den Prozess des Bestimmens des geeigneten Indextyps nochmal durchzuführen.
  • 3 bildet eine beispielhafte Operation des Ungefähr-Indexverwalters 114 ab. In einigen Ausführungsformen und wie in 3 veranschaulicht kann der Ungefähr-Indexverwalter 114 auf der Speichervorrichtung 104 betrieben werden. Wie in 3 gezeigt ist, empfängt der Ungefähr-Indexverwalter 114 Information betreffend ein Vorrichtungsprofil 126, welches ein oder mehrere eines Vorrichtungsspeichers, einer Vorrichtungskapazität, einer Controllerleistungsfähigkeit, von Speichermedien und anderen performancebezogenen Metriken aufweisen kann, jedoch nicht darauf beschränkt ist. Ferner empfängt der Ungefähr-Indexverwalter 114 ebenso Indexanforderungen 122a, welche eines oder mehrere von QoS, Ordnungsanforderungen, Zugriffsstruktur, Anfragestruktur, Schlüsselverteilung, Werteverteilung, teilweisem Schlüssel und Behälterkapazität aufweisen können, jedoch nicht darauf beschränkt sind. Durch ein Nutzen des Vorrichtungsprofils und der Indexanforderungen, welche demnach vorgesehen sind, bestimmt der Ungefähr-Indexverwalter oder ist konfiguriert, um zu bestimmen die Form des spezifischen ungefähren Index, welche zu verwenden ist. Einige Ausführungsformen der vorliegenden Erfindung können eine Mehrzahl von Ungefähr-Indexverwaltern 104 haben, welche auf einer Mehrzahl von Speichervorrichtungen 104 arbeiten.
  • Wie gezeigt ist, kann der Ungefähr-Indexverwalter 114 das Vorrichtungsprofil 126 der Speichervorrichtung 104 und die Indexanforderungen 122a, wie durch den Kooperativ-Indexverwalter 106 gesendet, berücksichtigen, wenn er entscheidet, welche Behälter zu indizieren sind und/oder welche Ungefähr-Indexstrukturen 112, 112b und ungefähre Indizes 110 zu konstruieren sind. Der Ungefähr-Indexverwalter 114 kann ebenso einen sortierten Satz von Typen und Parametern und/oder einen unsortierten Schlüsselsatz von Typen und Parametern bestimmen. Der optionale dauerhafte kooperative Index 124 ist innerhalb eines der Behälter 109 abgebildet, um zu veranschaulichen, dass er für eine Verwendung wie benötigt konstruiert werden kann. Innerhalb des Umfangs der vorliegenden Erfindung jedoch kann der dauerhafte kooperative Index 124 woanders platziert sein, beispielsweise innerhalb eines separaten Behälters 109 auf der Speichervorrichtung 104.
  • Innerhalb der Indexanforderungen 122a ist eine nicht erschöpfende Liste der Typen von Anforderungen präsentiert, welche durch den Ungefähr-Indexkoordinator 114 berücksichtigt werden können. Wie obenstehend diskutiert ist, können die Indexanforderungen 122a ein oder mehrere von QoS, Ordnungsanforderung, Zugriffsstruktur, Anfragestruktur, Schlüsselverteilung, Werteverteilung, teilweisem Schlüssel und Behälterkapazität aufweisen, sind jedoch nicht darauf beschränkt. Ähnlich ist eine nicht erschöpfende Liste der Vorrichtungscharakteristiken, welche berücksichtigt werden können, innerhalb der Abbildung des Vorrichtungsprofils 126 vorgesehen, welches wie obenstehend diskutiert ein oder mehrere von dem Vorrichtungsspeicher, der Vorrichtungskapazität, der Controllerleistungsfähigkeit, Speichermedien und der Leistungsfähigkeit aufweisen kann, jedoch nicht darauf beschränkt ist. Innerhalb des Speichersystems 102 werden die unterstützten Indextypen 120, Indexanforderungen 122 und die Indexaufbauoptionen 118 durch den Kooperativ-Indexverwalter 106 beim Bestimmen berücksichtigt, welche Befehle zu dem Ungefähr-Indexverwalter 114 zu kommunizieren sind und beim Bestimmen, welche Indexstruktur beim Konstruieren des präzisen Index 108 zu verwenden ist. Beispielsweise können die Indexaufbauoptionen 118 eines oder mehrere von dynamisch/statisch, gesamt/teilweise und/oder dergleichen aufweisen, sind aber nicht darauf beschränkt. Ferner können die unterstützten Indextypen eines oder mehrere eines Baums (beispielsweise einen AVL-Baum), einer Liste (beispielsweise eine Skipliste) und eines Hash aufweisen, sind jedoch nicht darauf beschränkt. Die Indexanforderungen 122 können eines oder mehrere von QoS, Ordnungsanforderung, einer Zugriffsstruktur, einer Abfragestruktur, einer Schlüsselverteilung, einer Werteverteilung und eines teilweisen Schlüssels und einer lokalen Speicherkapazität aufweisen, sind jedoch nicht darauf beschränkt. Wie gezeigt ist, kann der präzise Index 108 für eine Verwendung in Verbindung mit mehreren Behältern 109 konstruiert sein, wovon jeder einen separaten ungefähren Index 110 enthält. Zusätzlich können die mehreren Behälter 109 innerhalb einer Mehrzahl von Speichervorrichtungen 104 in Kommunikation mit dem Speichersystem 102 platziert sein.
  • 4 ist ein Flussdiagramm, welches ein Beispiel eines Prozesses 200 veranschaulicht, welcher durch ein Speichersystem 102 in Kommunikation mit einer Speichervorrichtung 104 zum Erzeugen eines kooperativen Index 116 implementiert ist. In einigen Implementierungen wird der Prozess 200 den kooperativen Index 116 als einen präzisen Index 108 aufweisend erzeugen, welcher auf einem Speichersystem 102 platziert ist, welches in Kommunikation mit einer Speichervorrichtung 104 ist, welche wenigstens einen Behälter 109 enthält, welcher einen ungefähren Index 110 hat. In anderen Implementierungen kann der Prozess 200 den kooperativen Index 116 über einen präzisen Index 108 hinweg, welcher auf einem Speichersystem und einer Mehrzahl von Speichervorrichtungen 104 platziert ist, konstruieren oder über mehrere Behälter 109 hinweg, welche auf einer einzelnen Speichervorrichtung 104 platziert sind. Demzufolge beschreibt die folgende Sektion den Prozess 200 als durch Komponenten des Systems 100 durchgeführt werdend. Der Prozess 200 kann jedoch durch andere alternative Ausführungsformen oder Konfigurationen der vorliegenden Erfindung durchgeführt werden.
  • In einigen Implementierungen des Prozesses 200 gemäß einigen beispielhaften Ausführungsformen können bei 204 die unterstützten Indextypen 120, Indexaufbauoptionen 118 und die Indexanforderungen 122 optional durch den Kooperativ-Indexverwalter 106 angefordert werden. In einigen Ausführungsformen kann der Prozess einfach mit dem Empfang der obigen Information starten. Alternativ und innerhalb des Umfangs der vorliegenden Erfindung kann in einigen Ausführungsformen die Anforderung für die Information, um zu dem obenstehenden Kooperativ-Indexverwalter 106 gesendet zu werden, von einer unterschiedlichen Komponente des Systems 100 stammen, beispielsweise dem Ungefähr-Indexverwalter 110, welcher auf einer Speichervorrichtung 104 platziert ist. Diese Anforderungen können durch eine Vielzahl von Ereignissen ausgelöst werden. Beispielsweise können, während nicht auf diese Ereignisse beschränkt, Ereignisse wie beispielsweise eine Eingabeaufforderung beziehungsweise Kommandozeilevon einem Nutzer, eine Installation einer neuen Speichervorrichtung 104 oder eines Speichervorrichtungstreibers oder ein Anschalten des Systems 100 die Anforderung für die Information, welche obenstehend gelistet ist, um zu dem Kooperativ-Indexverwalter 106 gesendet zu werden, auslösen.
  • Bei 220 empfängt der Kooperativ-Indexverwalter 106 die Anforderung für den kooperativen Index 116, welcher obenstehend beschrieben ist. Diese Operation wird typischerweise innerhalb des Speichersystems 102 durchgeführt, und die Operationen, welche innerhalb des Speichersystems 102 ausgeführt werden, sind innerhalb Sektion 208 abgebildet.
  • Zusätzlich analysiert bei 220 der Kooperativ-Indexverwalter 106 die unterstützten Indextypen 120, die Indexaufbauoptionen 118 und die Indexanforderungen 122. Der Kooperativ-Indexverwalter 106 kann ebenso Indexanforderungen zu einer Speichervorrichtung 104 als funktionale Anforderungen weiterleiten. In einigen Ausführungsformen, in denen mehr als eine Speichervorrichtung verwendet wird, kann der Kooperativ-Indexverwalter 106 Indexanforderungen zu jeder der Speichervorrichtungen 104, welche verwendet werden, weiterleiten. Beispielsweise kann es wenigstens zwei Typen von Aufbauplänen gemäß Ausführungsform der vorliegenden Erfindung geben. Wenigstens ein Aufbauplan kann für einen präzisen Index sein und wenigstens ein anderer Aufbauplan kann für einen oder mehrere ungefähre Indizes sein. Beispielsweise können die Ebenen oder jeweilige Pläne Pläne füreinander nicht diktieren.
  • Im Allgemeinen diktiert der kooperative Index Dinge für den ungefähren Index nicht strikt oder stark. Der kooperative Index kann Indexanforderungen anbieten, diese können jedoch funktionale Anforderungen sein und müssen nicht notwendigerweise Anforderungen für einen spezifischen Typ von Index sein. Der Ungefähr-Indexverwalter kann selbst bestimmen, welcher spezifische Typ von Index zu verwenden ist, angesichts der Beschränkungen der Indexanforderungen und seiner eigenen Vorrichtungscharakteristiken. In einigen Fällen kann, sobald die ungefähren Indizes entscheiden, welche Indextypen sie verwenden werden, der präzise Indextyp basierend auf der Rückmeldung ausgewählt werden. Es sollte festgehalten werden, dass physikalische Fähigkeiten des Laufwerks sich nicht ändern können. Demnach sollte, wenn ein bestimmter Typ von Index verwendet werden muss, um die Anforderungen des Laufwerks zu erfüllen, der präzise Index ausgewählt werden, um am besten zu der Auswahl des ungefähren Index zu „passen“.
  • Eine beispielhafte Entscheidungstabelle zum Auswählen von präzisen und ungefähren Indizes gemäß beispielhaften Ausführungsformen der vorliegenden Erfindung ist untenstehend vorgesehen.
    Index -Anforderung SuchGeschwindigkeit beste gut angemessen
    Such-Konsistenz beste gut angemessen
    Ordnung geordnet willkürlich
    Zugriffsstruktur sequenziell zufällig:
    Hostspeicher 8GB
    Aufbau-Option Dynamik statisch dynamisch
    Vollständigkeit teilweise vollständig
    VorrichtungsProfil Speicher (memory) 1GB
    Speicher (storage) 1TB
    unterstützter Index präziser Index AVL-Baum Skipliste Hash-Tab elle
    ungefährer Index Gespreizt (Splay) Skipliste Monotone Hash-Tabelle
  • Mittels eines nicht beschränkenden Beispiels würde, wenn es notwendig ist, dass der Index ein Ordnen und einen sequenziellen Zugriff durch einen Nutzer unterstützt, dann, um die beste Suchgeschwindigkeit und Konsistenz vorzusehen, ein Verwenden einer Splay-Indexstruktur als der ungefähre Index 110 kooperativ mit einem präzisen Index 108 unter Verwendung einer AVL-Baumstruktur einen besten Aufbauplan konstituieren. Hier kann der Ungefähr-Indexverwalter 114 zuerst Indexanforderungen sowie optional vorgeschlagene Indextypen und/oder Indexstrukturen von dem Kooperativ-Indexverwalter 106 empfangen, den ungefähren Index 110 basierend auf den Indexanforderungen und optional in Hinsicht auf die vorgeschlagenen Indextypen und/oder Indexstrukturen bestimmen, und sie als Rückmeldung für den Kooperativ-Indexverwalter 106 für die Erzeugung eines entsprechenden präzisen Index 108 vorsehen.
  • Alternativ können, wenn die Zugriffsstruktur des Nutzers zufällig ist und die Ordnung der Objektdaten beliebig sein kann, dann beide des präzisen Index 108 und des ungefähren Index 110 als Skiplisten strukturiert sein, um einen Aufbauplan zu bilden. Oder als ein anderes Beispiel kann, wenn der Behälter 109 eine kleine Anzahl von großen, sich relativ nicht ändernden Datengegenständen beziehungsweise Dateneinträgen hat und die Anfragen nach den Daten, welche basierend auf einer kleinen Anzahl von Variablen punkt- und bereichs-orientiert zu sein tendieren, der ungefähre Index 110 eine Trie-Datenstruktur beziehungsweise Präfixbaumdatenstruktur nutzen, und der präzise Index kann ebenso eine Trie-Struktur beziehungsweise Präfixbaumdatenstruktur verwenden. Als solches kann es eine Struktur dem präzisen Index 108 erlauben, die wesentliche Reihenfolge, welche den Daten durch den ungefähren Index 110 gegeben ist, wirksam einzusetzen.
  • In noch einer anderen alternativen Ausführungsform kann ein präziser Index 108 eine Skiplisten-Struktur haben, und ein ungefährer Index 110 kann eine monotone Hash-Tabellenstruktur haben, um einen Aufbauplan zu bilden. Solch eine monotone Hash-Tabelle kann ein schnelles und konsistentes Suchen mit einer teilweisen Reihenfolgenunterstützung unterstützen. Die Skiplisten-Struktur des präzisen Index 108 kann die teilweise Reihenfolge, welche durch die monotone Hash-Tabellenstruktur des ungefähren Index 110 vorgesehen ist, durch ein Anfordern sortierter Gruppen wirksam einsetzen, wenn eine Anforderung getätigt wird. Die Objekte innerhalb einer Gruppe der monotonen Hash-Tabelle sind nicht vollständig sortiert, was eine schnelle Bearbeitung durch die Speichervorrichtung 104 erlaubt, und die unsortierten Objekte können durch das Speichersystem 102 sortiert werden, wenn die Gruppen in den präzisen Skiplisten-Index 108 eingefügt werden.
  • Es gibt viele mögliche Kombinationen von Indexstrukturen, welche Fachleuten bekannt sind, welche innerhalb des Umfangs der vorliegenden Erfindung verwendet werden können, und die obigen Beispiele sind nur vorgesehen, um einige mögliche geeignete Kombinationen, wie sie unter einigen Umständen berücksichtigt werden können, zu veranschaulichen.
  • Bei 232 werden die Indexanforderungen zu einer Speichervorrichtung 104 weitergemeldet. In einer Ausführungsform, in der es mehr als eine Speichervorrichtung gibt, welche benutzt wird, können die Indexanforderungen für jede Speichervorrichtung wie durch 232a veranschaulicht weitergeleitet werden. Da die Erzeugung des präzisen Index 108 in Teilschritten oder als vollständiger Index getätigt werden kann, und da er statisch oder dynamisch erzeugt werden kann, kann in einer Ausführungsform mit mehr als einer Speichervorrichtung 104 das Weitermelden der Information an die Speichervorrichtungen 204, welche in 232 und 232a veranschaulicht sind, in Iterationen oder parallel gemäß der vorliegenden Erfindung durchgeführt werden. Ferner kann gemäß beispielhaften Ausführungsformen der Ungefähr-Indexverwalter 114 eine Rückmeldung betreffend den ungefähren Index 110 und/oder die Ungefähr-Indexstruktur 112 zu dem Kooperativ-Indexverwalter 106 zur Erzeugung eines entsprechenden präzisen Index 108 vorsehen.
  • Bei 236 werden die Indexanforderungen durch die Speichervorrichtung 104 empfangen. In einer Ausführungsform, in der mehr als eine Speichervorrichtung genutzt wird, wie in 236a veranschaulicht, kann der Empfang der Indexanforderungen für eine Mehrzahl von Speichervorrichtungen 104 durchgeführt werden.
  • Folgend auf den Empfang der Indexanforderungen bestimmt bei 240 der Ungefähr-Indexverwalter 114 den angemessenen Indextyp unter Berücksichtigung der empfangenen Information und des Vorrichtungsprofils 126. Das Vorrichtungsprofil 126 weist Information über die Berechnungsressourcen auf, welche für die Speichervorrichtung 104 zur Verfügung stehen und die Typen von Leistungsfähigkeit, die sie vorsehen kann. Beispielsweise kann dies aufweisen, ist jedoch nicht beschränkt auf Information betreffend den Vorrichtungsspeicher, die Speicherkapazität, die Controllerleistungsfähigkeit, Speichermedien und andere relevante Spezifikationen über die Speichervorrichtung 104, wenn sie ihre Leistungsfähigkeit beeinflussen können. In Ausführungsformen, welche mehrere Speichervorrichtungen 104 haben, kann, wie in 240a veranschaulicht ist, jeder Ungefähr-Indexverwalter 114 der Speichervorrichtungen 104 den Ungefähr-Indextyp basierend auf der Information, die er von dem Kooperativ-Indexverwalter 106 empfangen hat, und dem relevanten Vorrichtungsprofil 126 bestimmen.
  • Sobald eine Bestimmung des Ungefähr-Indextyps durch den Ungefähr-Indexverwalter 114 getätigt wurde, wird bei 216 der Ungefähr-Indextyp zurück zu dem Kooperativ-Indexverwalter 106 des Speichersystems 102 weitergemeldet. In Ausführungsformen der vorliegenden Erfindung, welche mehr als eine Speichervorrichtung 104 und mehr als einen Ungefähr-Indexverwalter 114 haben, kann jeder der Ungefähr-Speicherverwalter 114 den Ungefähr-Indextyp für seine jeweilige Speichervorrichtung 104 zurück zu dem Kooperativ-Speicherverwalter 106 weitermelden, wie durch 216 veranschaulicht ist. Dieses Weitermelden von Information von der Mehrzahl von Speichervorrichtungen 104 wie durch 216 repräsentiert, kann gleichzeitig mit dem Weitermelden von 216 stattfinden, es ist jedoch nicht darauf beschränkt, gleichzeitig zu sein. Ähnlich können, wenn es mehrere Ungefähr-Indextypen gibt, welche zu dem Kooperativ-Indexverwalter 106 weiterzumelden sind, die Weitermeldungen in einer Sequenz oder parallel stattfinden.
  • Bei 224 nimmt der Kooperativ-Indexverwalter 106 den Ungefähr-Indextyp oder die Ungefähr-Indextypen, wenn mehr als ein ungefährer Index verwendet wurde, und bestimmt den Präzise-Indextyp. Zusätzliche Information kann durch den Kooperativ-Indexverwalter an diesem Punkt berücksichtigt werden, wie beispielsweise, jedoch nicht beschränkt auf die unterstützten Indextypen, Indexaufbauoptionen und Indexanforderungen.
  • Folgend auf die Bestimmung des Präzise-Indextyps erzeugt bei 228 der Kooperativ-Indexverwalter 106 den präzisen Index 108. Der präzise Index 108 kann mit einem Behälter 109 auf einer Speichervorrichtung 104 verbunden sein oder in einigen Ausführungsformen mehreren Behältern 109 über eine Mehrzahl von Speichervorrichtungen 104 hinweg. Wie obenstehend festgehalten wurde, kann der präzise Index 108 teilweise oder vollständig bei 228 erzeugt werden, und er kann statisch oder dynamisch erzeugt werden.
  • Bei 244 erzeugt der Ungefähr-Indexverwalter 114 einer Speichervorrichtung einen ungefähren Index 110 des Typs, welcher bei 240 bestimmt wird. Optional kann, wenn in einigen beispielhaften Ausführungsformen notwendig, ein neuer Behälter ebenso mit der Indexerzeugung erzeugt werden. In einigen Ausführungsformen der vorliegenden Erfindung, welche mehr als eine Speichervorrichtung 104 haben, welche verwendet wird, können die Ungefähr-Indexverwalter 114 der individuellen Speichervorrichtungen 104 alle ungefähre Indizes 110 erzeugen, welche mit den Behältern 109 verbunden sind. Optional kann, wenn in einigen beispielhaften Ausführungsformen notwendig, die Erzeugung von mehreren Behältern 109 auf mehreren Speichervorrichtungen 104 in einer Sequenz oder parallel stattfinden. Ähnlich kann 244 innerhalb des Umfangs der vorliegenden Erfindung vor, gleichzeitig mit oder nach der Erzeugung des präzisen Index 108 bei 228 stattfinden. Hier ist es wichtig, festzuhalten, dass ein Behälter oder Behälter bereits in der Speichervorrichtung vor der Erzeugung des entsprechenden ungefähren Index oder der entsprechenden ungefähren Indizes existieren kann. Der Behälter oder die Behälter können neu gleichzeitig mit dem entsprechenden ungefähren Index oder den ungefähren Indizes erzeugt werden, wenn sie nicht bereits existieren.
  • Sobald die Erzeugung des ungefähren Index 110 und des präzisen Index 108 vollendet ist, ist der kooperative Index 116 erzeugt worden. In Ausführungsformen der vorliegenden Erfindung mit mehr als einem ungefähren Index 110, der verwendet wird, wird der kooperative Index 116 erzeugt, sobald wenigstens einer der ungefähren Indizes 110 bei 248 vollendet wurde.
  • Gemäß Ausführungsformen der vorliegenden Erfindung kann das System 100, welches das Speichersystem 102 und die Speichervorrichtung 104 aufweist, eine oder mehrere Anforderungen, um Daten zu speichern, von externen elektronischen Vorrichtungen in elektronischer Kommunikation mit dem System 100 empfangen, und die Daten wie obenstehend diskutiert speichern. Ähnlich kann das System 100 einschließlich des Speichersystems 102 und der Speichervorrichtung 104 ein oder mehrere Anforderungen zum Abrufen von Daten von dem System 100 für eine Übertragung zu einer externen Vorrichtung in elektronische Kommunikation mit dem System 100 für eine Ausgabe und/oder Anzeige durch die externe Vorrichtung empfangen.
  • Die elektronischen oder elektrischen Vorrichtungen und/oder jegliche beliebige anderen Vorrichtungen oder Komponenten gemäß Ausführungsformen der vorliegenden Erfindung, welche hierin beschrieben sind, können unter Verwendung einer beliebigen geeigneten Hardware, Firmware (beispielsweise einer anwendungsspezifischen integrierten Schaltung), Software oder einer Kombination von Software, Firmware und Hardware implementiert werden. Beispielsweise können die verschiedenen Komponenten dieser Vorrichtungen auf einem integrierten Schaltungs-Chip (IC-Chip) oder getrennten IC-Chips gebildet sein. Ferner können die verschiedenen Komponenten dieser Vorrichtungen auf einer flexiblen bedruckten beziehungsweise gedruckten Leiterschicht, einem Tape Carrier Package (TCP), einer gedruckten beziehungsweise bedruckten Leiterplatte (PCB) implementiert sein oder auf einem Substrat gebildet sein. Ferner können die verschiedenen Komponenten dieser Vorrichtungen ein Prozess oder Thread sein, welcher auf einem oder mehreren Prozessoren abläuft, in ein oder mehreren Berechnungsvorrichtungen, Computerprogrammbefehle ausführend und mit anderen Systemkomponenten zum Durchführen der verschiedenen Funktionalitäten, welcher hierin beschrieben sind, interagierend. Die Computerprogrammbefehle sind in einem Speicher gespeichert, welcher in einer Berechnungsvorrichtung unter Verwendung einer Standardspeichervorrichtung wie beispielsweise einem Direktzugriffsspeicher (RAM) implementiert sein kann. Die Computerprogrammbefehle können auch in einem anderen nicht vergänglichen computerlesbaren Medium wie beispielsweise einem CD-ROM, einem Flashlaufwerk oder dergleichen gespeichert sein. Ebenso sollte ein Fachmann erkennen, dass die Funktionalität von verschiedenen Berechnungsvorrichtungen in eine einzelne Berechnungsvorrichtung kombiniert oder integriert werden kann, oder die Funktionalität einer bestimmten Berechnungsvorrichtung über eine oder mehrere andere Berechnungsvorrichtungen verteilt werden kann, ohne vom Gedanken und Umfang der beispielhaften Ausführungsformen der vorliegenden Erfindung abzuweichen.
  • Obwohl diese Offenbarung in bestimmten spezifischen Ausführungsformen beschrieben wurde, werden Fachleute keine Schwierigkeit haben, Variationen für die beschriebene Ausführungsform zu ersinnen, welche auf keinem Wege von dem Umfang der vorliegenden Offenbarung abweichen. Ferner wird für Fachleute die Offenbarung hierin selbst Lösungen für andere Aufgaben und Adaptionen oder andere Anwendungen vorschlagen. Es ist des Anmelders Intention, durch Ansprüche all solche Verwendungen der Offenbarung und diese Änderungen und Modifikationen, welche an den Ausführungsformen der Offenbarung hierin getätigt werden können, welche für die Zwecke der Offenbarung ausgewählt ist, ohne von dem Umfang der Offenbarung abzuweichen, zu umfassen. Demnach sollten die vorliegenden Ausführungsformen der Offenbarung in allen Hinsichten als veranschaulichend und nicht beschränkend betrachtet werden, wobei der Umfang der Offenbarung durch die beigefügten Ansprüche und ihre Äquivalente eher als die vorangehende Beschreibung anzuzeigen ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62522514 [0001]

Claims (20)

  1. Verfahren zum Verwalten einer Speichervorrichtung (104), wobei das Verfahren Folgendes aufweist: ein Empfangen durch einen Hostprozessor, welcher auf einem Hostsystem platziert ist, von Indexanforderungen (122, 122a) für einen Index, wobei die Indexanforderungen (122, 122a) wenigstens eines von Nutzerdienstanforderungen oder Datenzugriffsanforderungen aufweisen; ein Übertragen durch den Hostprozessor zu einem Speicherprozessor, welcher auf einer Speichervorrichtung (104) platziert ist, wenigstens einiger der Indexanforderungen (122, 122a) für den Index; ein Empfangen durch den Hostprozessor von Parametern eines ersten Index, welcher durch den Speicherprozessor erzeugt wird unter Verwendung eines Vorrichtungsprofils der Speichervorrichtung (104), aufweisend wenigstens eines von Berechnungsfähigkeiten oder Speicherfähigkeiten der Speichervorrichtung (104), und der Indexanforderungen (122, 122a); und ein Aufbauen durch den Hostprozessor unter Verwendung der Parameter des ersten Index und interagierend mit dem ersten Index eines zweiten Index, welcher die Indexanforderungen (122, 122a) erfüllt.
  2. Verfahren nach Anspruch 1, wobei das Vorrichtungsprofil der Speichervorrichtung (104) wenigstens eines von Speicher, Kapazität, Controllerleistungsfähigkeit, Speichermedien oder Leistungsfähigkeit aufweist.
  3. Verfahren nach Anspruch 1, wobei das Hostsystem einen Personalcomputer oder einen Server aufweist, konfigurierbar, um sich mit einem lokalen oder einem Weitbereichsnetzwerk zu verbinden.
  4. Verfahren nach Anspruch 1, wobei die Indexanforderungen (122, 122a) wenigstens eines von der Qualität des Dienstes für die Speichervorrichtung (104), Ordnungsanforderungen für die Daten, Abfragestrukturen, einer Schlüsselverteilung, einer Werteverteilung, teilweisen Schlüsseln oder einer Behälterkapazität aufweisen.
  5. Verfahren nach Anspruch 1, wobei eine dauerhafte Kopie des zweiten Index oder Metadaten über den zweiten Index in einem Behälter (109) gespeichert werden, welcher auf der Speichervorrichtung (104) erzeugt wird.
  6. Verfahren nach Anspruch 1, wobei die Speichervorrichtung (104) ein Schlüssel-Wert-Festkörperlaufwerk aufweist.
  7. Verfahren nach Anspruch 1, wobei eine Indexstruktur des ersten Index nur teilweise strukturiert ist, um eine Berechnungslast auf die Speichervorrichtung (104) zu verringern.
  8. Verfahren nach Anspruch 1, wobei wenigstens eine zusätzliche Speichervorrichtung (104) verwendet wird, welche einen dritten Index hat, welcher in ihr erzeugt wird, welcher kooperativ mit der zweiten Indexstruktur des Hostsystems verwendet werden kann.
  9. Verfahren nach Anspruch 1, wobei eine Indexstruktur des zweiten Index dynamisch konstruiert wird.
  10. Verfahren nach Anspruch 1, wobei eine Indexstruktur des zweiten Index teilweise in Antwort auf Zugriffsanforderungen oder Anfragen nach den Daten, welche auf der Speichervorrichtung (104) gespeichert sind, konstruiert wird.
  11. Verfahren nach Anspruch 1, ferner aufweisend ein Identifizieren durch den Hostprozessor von Leistungsfähigkeitscharakteristiken der Speichervorrichtung (104) in Antwort auf wenigstens eines von einem Speichervorrichtungstreiber-Laden, einem Bibliothek-Laden, einem Speichervorrichtungs-Öffnen, einem Behälter-Öffnen, einem Datenzugriff oder einer Nutzereingabe.
  12. Verfahren nach Anspruch 1, wobei eine Indexstruktur des zweiten Index strukturiert ist, um kooperativ mit Indizes verwendet zu werden, welche mit mehreren unterschiedlichen Behältern (109) verbunden sind, welche konkurrierende Bedürfnisse haben.
  13. Speichersystem (102), das Folgendes aufweist: einen Host, welcher einen Hostprozessor und einen Hostspeicher aufweist; und eine Speichervorrichtung (104), welche einen Speicherprozessor und einen Speicher aufweist, wobei der Hostprozessor konfiguriert ist, um Indexanforderungen (122, 122a) für einen Index zu empfangen, wobei die Indexanforderungen (122, 122a) wenigstens eines von Nutzerdienstanforderungen oder Datenzugriffsanforderungen aufweisen, wobei der Hostprozessor konfiguriert ist, um zu dem Speicherprozessor wenigstens einige der Indexanforderungen (122, 122a) für den Index zu übertragen, wobei der Speicherprozessor konfiguriert ist, um ein Vorrichtungsprofil zu bestimmen, welches wenigstens eines von Berechnungsfähigkeiten und Speicherfähigkeiten der Speichervorrichtung (104) aufweist, wobei der Speicherprozessor konfiguriert ist, um einen ersten Index unter Verwendung der Indexanforderungen (122, 122a) und des Vorrichtungsprofils aufzubauen, wobei der Hostprozessor konfiguriert ist, um Parameter des ersten Index zu empfangen, und wobei der Hostprozessor konfiguriert ist, um unter Verwendung der Parameter des ersten Index und interagierend mit dem ersten Index einen zweiten Index aufzubauen, welcher die Indexanforderungen (122, 122a) erfüllt.
  14. System nach Anspruch 13, wobei das Vorrichtungsprofil wenigstens eines von Speicher, Kapazität, Controllerleistungsfähigkeit, Speichermedien oder Leistungsfähigkeit aufweist.
  15. System nach Anspruch 13, wobei das Hostsystem einen Personalcomputer oder einen Server aufweist, konfigurierbar, um sich mit einem lokalen oder einem Weitbereichsnetzwerk zu verbinden.
  16. System nach Anspruch 13, wobei die Indexanforderungen (122, 122a) wenigstens eines von der Qualität des Dienstes für die Speichervorrichtung (104), Ordnungsanforderungen für die Daten, Abfragestrukturen, einer Schlüsselverteilung, einer Werteverteilung, teilweisen Schlüsseln oder einer Behälterkapazität aufweisen.
  17. System nach Anspruch 13, wobei eine dauerhafte Kopie des zweiten Index oder Metadaten über den zweiten Index in einem Behälter (109) gespeichert sind, welcher auf der Speichervorrichtung (104) erzeugt ist.
  18. System nach Anspruch 13, wobei die Speichervorrichtung (104) ein Schlüssel-Wert-Festkörperlaufwerk aufweist.
  19. System nach Anspruch 13, wobei eine Indexstruktur des ersten Index nur teilweise strukturiert ist, um eine Berechnungslast auf die Speichervorrichtung (104) zu verringern.
  20. Speichervorrichtung (104), die einen Speicherprozessor und einen Speicher aufweist und konfiguriert ist, um betrieblich mit einem Host gekoppelt zu werden, wobei der Speicherprozessor konfiguriert ist, um: Indexanforderungen (122, 122a) für einen Index zu empfangen, wobei die Indexanforderungen (122, 122a) wenigstens eines von Nutzerdienstanforderungen oder Datenzugriffsanforderungen aufweisen; einen ersten Index aufzubauen unter Verwendung wenigstens einiger der Indexanforderungen (122, 122a) und einem Vorrichtungsprofil der Speichervorrichtung (104), wobei das Vorrichtungsprofil wenigstens eines von Berechnungsfähigkeiten und Speicherfähigkeiten aufweist; Parameter des ersten Index zu dem Host zu übertragen; und mit dem Host zu interagieren, um einen zweiten Index zu erzeugen, welcher die Indexanforderungen (122, 122a) erfüllt, wobei der erste Index und der zweite Index kooperativ als der Index für ein Speichersystem (102) verwendet werden, welches den Host und die Speichervorrichtung (104) aufweist.
DE102018108942.2A 2017-06-20 2018-04-16 System und Verfahren zum Verwalten einer Speichervorrichtung Pending DE102018108942A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762522514P 2017-06-20 2017-06-20
US62/522,514 2017-06-20
US15/686,690 US20180364937A1 (en) 2017-06-20 2017-08-25 System and method for managing memory device
US15/686,690 2017-08-25

Publications (1)

Publication Number Publication Date
DE102018108942A1 true DE102018108942A1 (de) 2018-12-20

Family

ID=64457803

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018108942.2A Pending DE102018108942A1 (de) 2017-06-20 2018-04-16 System und Verfahren zum Verwalten einer Speichervorrichtung

Country Status (1)

Country Link
DE (1) DE102018108942A1 (de)

Similar Documents

Publication Publication Date Title
DE112010004652B4 (de) Zuverlässige Replikation mit hohem Durchsatz von umgewandelten Daten in Datensystemen
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102012215665B4 (de) Dynamische Änderung der TTL-Werte in einem Datencache
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE202015009779U1 (de) Implementierung semistrukturierter Daten als ein Datenbankelement erster Klasse
DE10255128A1 (de) Computer-implementierte PDF-Dokumentenverwaltung
DE102016105526A1 (de) Schnelles mehrschichtiges Indexieren mit Unterstützung für dynamische Aktualisierung
DE202015009260U1 (de) Effiziente Datenlesungen von verteilten Speichersystemen
DE102013200030B4 (de) Hash-basiertes verwalten von speicher-ids
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE112018004222T5 (de) Datenbankaufteilung
DE112013007300T5 (de) Speichersysteme mit adaptiver Löschcode-Generierung
DE112018001789T5 (de) Systeme und verfahren zum durchführen von datenverarbeitungsoperationen unter verwendung von parallelität variabler grade
DE112015003926B4 (de) Verfahren, System und Computerprogramm zum Publish/Subscribe-Messaging unter Verwendung einer Nachrichtenstruktur
DE202015104128U1 (de) Datenzugriffssystem
DE202015009316U1 (de) Metadatenmanagement in einem dezentralen Verarbeitungssystem
DE102012001406A1 (de) Automatische Konfiguration eines Produktdatenmanagementsystems
DE102021109138A1 (de) Ausführung von abfrageplänen
DE102013201973A1 (de) Verteilte Anwendung mit Vorwegnahme von Server-Antworten
DE102018108942A1 (de) System und Verfahren zum Verwalten einer Speichervorrichtung
DE112013007299T5 (de) Teilen eingebetteter Hardwareressourcen
DE112019005879T5 (de) Indizes für nicht materialisierte ansichten
DE102004022486A1 (de) Datenintegrationssystem mit programmatischen Quell- und Zielschnittstellen
DE112011104020T5 (de) Validierung des Zugriffs auf einen gemeinsam genutzen Datensatz bei Lese- und Schreibzugriff mehrerer Anforderer

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R012 Request for examination validly filed