DE19919146A1 - Hochleistungs-Nachrichtenspeicher - Google Patents
Hochleistungs-NachrichtenspeicherInfo
- Publication number
- DE19919146A1 DE19919146A1 DE19919146A DE19919146A DE19919146A1 DE 19919146 A1 DE19919146 A1 DE 19919146A1 DE 19919146 A DE19919146 A DE 19919146A DE 19919146 A DE19919146 A DE 19919146A DE 19919146 A1 DE19919146 A1 DE 19919146A1
- Authority
- DE
- Germany
- Prior art keywords
- message
- index
- cell
- store
- data
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
- G06F16/902—Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
Abstract
Es werden ein Produkt und ein Verfahren zum Erzeugen eines effizienten Nachrichtenspeichers offenbart und es wird ein Übermittlungssystem bereitgestellt. Ein Nachrichtenspeicher (100) mit einem Indexverzeichnis (104), einer Indexdatei (106) und einem Datenspeicherplatzbereich, die alle auf Seiten basieren, wird beschrieben. Jede Seite entspricht einem Zeitraum, wie z. B. einem Tag. Jeder Datenspeicherplatz enthält Nachrichtendaten und den eigentlichen Inhalt der Nachricht. Die Indexdatei (106) enthält Indexdateizellen (120), die Indexinformationen speichern, welche eine zugehörige Nachricht kennzeichnen. Das Indexverzeichnis (104) enthält Indexverzeichniszellen (116), die Informationen über die Stelle einer zugeordneten Indexdateizelle speichern, und wird dadurch einer Nachricht zugeordnet. Er enthält auch Benutzerordner (122) auf Seitenbasis, die jeweils Benutzerzellen im Benutzerspeicher aufweisen, die auf eine einem Benutzer zugeordnete Nachricht verweisen. Eine Nachricht umfaßt einen Verweiszeiger zu einer zugeordneten Indexdateizelle (120) und einen Verweiszeiger zu einer zugeordneten Indexverzeichniszelle (116). In Indexverzeichniszeiger in der Benutzerzelle, ein Indexdateizeiger in der Indexverzeichniszelle (116), ein Nachrichtenzeiger in der Indexdateizelle (120) und zwei Zeiger in der Nachricht ermöglichen, daß sich der Nachrichtenspeicher (100) bei Bedarf selbst rekonstruiert.
Description
Die vorliegende Erfindung betrifft im allgemeinen das
Gebiet der Computersoftware- und Client/Server-Anwendungen.
Insbesondere betrifft sie die Organisation und Speicherung
von E-Mail-Nachrichtendaten, auf die von Kunden über ein
Computernetzwerk zugegriffen wird.
Das beschleunigte Wachstum der Netzwerkdatentechnik in den
90er Jahren wurde von einer immer mehr vorherrschenden Form
der Kommunikation begleitet, die sehr häufig als "E-Mail"
bezeichnet wird. Da mehr Personen, ob zu Hause, in
Gesellschaften, kleinen Geschäften, akademischen
Einrichtungen oder Regierungsorganisationen, Zugang zu
Computern haben, die mit irgendeiner Art Computernetzwerk
verbunden sind, wird die elektronische Post schnell (und
ist in vielen Umgebungen bereits) eine bevorzugte Art der
Kommunikation. Leute finden die E-Mail eine effiziente und
wirksame Art und Weise, um miteinander zu kommunizieren,
sei es daß sie eine einfache einmalige Nachricht senden
oder daß sie eine Langzeit-Diskussion oder -Konversation
führen.
Während die E-Mail jahrelang innerhalb großer Instanzen wie
z. B. Gesellschaften und Universitäten zum Senden von
Nachrichten innerhalb der internen Netzwerke der Instanzen
verwendet wurde und typischerweise auf anwendereigenen
Formaten und Protokollen basiert, bringt das Internet die
E-Mail aus dem Bereich von großen Unternehmen heraus und in
allgemeinen Gebrauch. Da das Internet ein öffentlich
zugängliches, globales Computernetzwerk ist, wird es wegen
seiner E-Mail-Fähigkeit immer mehr genutzt. Außerdem werden
das Internet-Protokoll (IP) und die Kommunikationsebenen
des Internets (TCP/IP) zur Entwicklung von
Computernetzwerken, die als Intranets bekannt sind,
innerhalb privater Instanzen auf der Basis von IP und
TCP/IP anstelle von anwendereigenen Formaten und
Protokollen verwendet. Diese Vorgehensweise ermöglicht
beispielsweise, daß eine Gesellschaft oder eine Universität
ein internes Computernetzwerk besitzt, das mit dem Internet
kompatibel ist und alle Merkmale des Internets aufweist,
einschließlich Web-Sites, der Fähigkeit zu Hyperlink und
natürlich des Sendens und Empfangens einer E-Mail.
Das explosionsartige Wachstum des Internets und die
zunehmende Anziehungskraft von Intranets hat zu einer
Ausbreitung von E-Mail-Nachrichten geführt. Typischerweise
werden E-Mail-Nachrichten auf Netzwerkservern oder auf den
Festplattenlaufwerken von Kunden- und eigenständigen
Computern empfangen und gespeichert. Es besteht eine
zunehmende Tendenz oder Praxis und in vielen Fällen
Notwendigkeit, E-Mail-Nachrichten elektronisch zu speichern
und sie auf Wunsch leicht abzurufen. Dies kann
beispielsweise in einer beliebigen Art von
Forschungsanstalt von Bedeutung sein, wo Nachrichten, die
Ideen, Kommentare oder Analysen enthalten, unter Forschern,
möglicherweise in verschiedenen Ländern, über einen
Zeitraum von mehreren Jahren übermittelt werden. Es ist
beispielsweise vorhersehbar, daß eine bestimmte Nachricht,
die zu einem speziellen Zeitpunkt vor zwei Jahren zwischen
zwei Forschern übermittelt wurde, die nicht mehr vorhanden
sind, abgerufen werden muß. Diese Fähigkeit könnte
natürlich auch in einer Geschäftsumgebung oder in anderen
Umgebungen ein wichtiges und nützliches Merkmal sein.
Die Ausbreitung der E-Mail und die steigende Anzahl von
gespeicherten Nachrichten, gekoppelt mit dem zunehmenden
Bedarf für das Abrufen gespeicherter Nachrichten, hat
Probleme mit derzeitigen Indexierungsschemen und
Nachrichten aufgeworfen. Es besteht ein zunehmender Trend,
Nachrichten auf Servern anstatt auf Kundencomputern zu
speichern. Ein Mail-Server arbeitet als zentrale Ablage für
Nachrichten und besitzt die Vorteile, daß er regelmäßig
gesichert wird, von einem Verwalter gewartet wird und (in
den meisten Fällen) schnell repariert wird, wenn er
zusammengebrochen ist (z. B. wenn er abstürzt). Wenn ein
Benutzer eine Abfrage macht, wird sie somit vom Server
bearbeitet und zum Kunden übermittelt.
Die Zusammensetzung einer heutigen E-Mail-Nachricht kann
ebenso stark variieren wie die Art der Abfrage. In einem
einfachen Fall kann eine E-Mail-Nachricht zusätzlich zu den
erforderlichen Anfangsblöcken einen einfachen
Nachrichtenteil enthalten, der aus ein paar Textzeilen
besteht. Andererseits kann eine E-Mail verschiedene Anhänge
aufweisen, die komplexe Grafiken, Audiosegmente, Video,
Computeranimation, Text mit spezieller Codierung (z. B. bei
einer nicht auf lateinischen Buchstaben basierenden
Sprache) und sogar ganze andere E-Mail-Nachrichten umfassen
können.
Abfragen für Nachrichten können auch hinsichtlich der Tiefe
und Breite der gewünschten Information variieren. Eine
Abfrage kann beispielsweise für den gesamten Inhalt einer
einzigen Nachricht sein, die vor mehreren Jahren zwischen
zwei Personen übermittelt wurde. Oder eine Abfrage kann für
eine Liste von Empfängern irgendeiner Nachricht sein, die
hinsichtlich einer speziellen Angelegenheit in den letzten
24 Stunden gesandt wurde, wobei die Liste zwischen
denjenigen Empfängern, die die Nachricht(en) geöffnet
haben, und jenen, die dies nicht getan haben,
unterscheidet. Insgesamt ist die Art der E-Mail-Nachrichten
und der Abfragen für E-Mail-Nachrichtendaten komplexer
geworden, wodurch die Schwächen der derzeitigen Mail-Server
bei der Bearbeitung der Nachrichtenspeicherung und des
Nachrichtenabrufs offenbart werden.
Die meisten Mail-Server, die derzeit für die vorstehend
erörterte Art der Nachrichtenspeicherung und des
Nachrichtenabrufs verwendet werden, sind gemäß dem
Internet-Nachrichtenzugangsprotokoll oder IMAP
konfiguriert. IMAP ist eine Sammlung von Befehlen zur
Verarbeitung von Nachrichten und Indizes zum Sortieren und
Speichern aller Informationen, die mit Nachrichten und den
an ihnen ausgeführten Handlungen verbunden sind. Damit ein
nach IMAP konfigurierter Server das IMAP vollständig
ausnutzt, müssen mit Benutzern auf dem Netzwerk und
Nachrichten in Zusammenhang stehende Informationen, die den
Nachrichteninhalt und Metadaten hinsichtlich der Nachricht
enthalten, derart gespeichert werden, daß die IMAP-
Indexierung ausgenutzt wird. Obwohl IMAP-Server Daten in
einem gewissen Grad gemäß der IMAP-Indexierung speichern,
tut es keiner derart, daß ein schneller, zuverlässiger und
nicht konkurrierender Abruf und Speicherung der Daten
optimiert wird.
Derzeitige IMAP-Server erleiden Konkurrenzprobleme und
andere Unwirtschaftlichkeiten, die zu einer schlechten
Leistung führen. Obwohl sie Nachrichtendaten als Sammlung
von Feldern behandeln, die einen Datensatz bilden, d. h. sie
basieren auf Datensätzen, führt das Schreiben einer neuen
Nachricht in eine Eingangsbox eines Benutzers (die Mailbox,
in der ein Benutzer neue Post empfängt) sehr wahrscheinlich
zur Minderung des Benutzers, andere Operationen an der
Eingangsbox auszuführen. Der Nachrichtenspeicher dieser
IMAP-Server war nicht dazu ausgelegt, die im IMAP
verfügbare Indexierung effizient zu nutzen. Ein Benutzer
kann beispielsweise nur Informationen hinsichtlich
bestimmter Felder (z. B. Datum, Empfänger, Angelegenheiten,
usw.) aus allen Nachrichten in einer Mailbox wünschen.
IMAP-Server rufen wahrscheinlich mehr Informationen als
erforderlich ab, um typische Benutzerabfragen für Daten zu
erfüllen. Um einfach die Anzahl der zu einem speziellen
Benutzer hinsichtlich einer speziellen Angelegenheit
gesandten Nachrichten zu erhalten, kann folglich ein IMAP-
Server den gesamten Inhalt aller Nachrichten abrufen, um
die Anzahl der Nachrichten zu gewinnen. Derzeitigen IMAP-
Servern mangelt es auch an starker Integrität und
Fähigkeiten zur Konsistenzprüfung, die im IMAP möglich ist.
Andere Implementierungen von Mail-Servern erfordern, daß
eine gesamte Nachricht übermittelt oder kopiert wird,
ungeachtet dessen, welche Art Information hinsichtlich der
Nachricht abgefragt wird. Dieses Problem ist ähnlich zu
VARMAIL, einer älteren Mail-Umgebung auf Dateibasis im
UNIX-Betriebssystem, bei der die Ausgabe einer Nachricht
alle Schreiboperationen in einen Mail-Ordner sperrte. Diese
Standardprozedur verursachte, daß das Mail-
Übermittlungssystem beträchtlich langsam war. Außerdem
erforderte die VARMAIL-Umgebung auch, daß mehrere Kopien
derselben E-Mail-Nachricht im Speicher des Kundencomputers
gespeichert werden.
Es ist daher Aufgabe der Erfindung, einen auf einem Server
basierenden Nachrichtenspeicher vorzusehen, der derart
eingeteilt ist, daß Indizes, Nachrichtendaten und
Benutzerdaten logisch angeordnet sind, um die
Nachrichtenspeicher- und -abrufzeiten zu verbessern und
eine starke Datenintegrität aufrechtzuerhalten. Der
Nachrichtenspeicher sollte die Konkurrenz verringern und
ermöglichen, daß Benutzer und der Server Lese- und
Schreiboperationen an Nachrichten und Mail-Ordnern
gleichzeitig durchführen. Es wäre auch erwünscht, den Grad
der Spezifität, der bei der Bearbeitung von
Benutzerabfragen für Daten vom Server erkennbar ist, zu
erhöhen, so daß der Server nur Daten, die abgefragt wurden,
mit reduzierten externen Daten abruft, wodurch die
Abrufgeschwindigkeit erhöht wird und Speicherplatz gespart
wird.
Um die vorstehende Aufgabe zu lösen, werden ein Verfahren,
eine Vorrichtung und ein maschinenlesbares Medium zum
Erzeugen eines effizienten Nachrichtenspeichers und
Übermittlungssystems bereitgestellt. Gemäß einem Aspekt der
vorliegenden Erfindung wird ein Nachrichtenspeicher mit
einem Indexverzeichnis, einer Indexdatei und einem
Datenspeicherplatzbereich, die alle auf Seiten basieren,
beschrieben. Jede Seite entspricht einem Zeitraum, wie z. B.
bei einer Ausführungsform einem Tag. Jeder
Datenspeicherplatz enthält Nachrichtendaten und den
eigentlichen Inhalt der Nachricht. Die Indexdatei enthält
Indexdateizellen, die Indexinformationen speichern, welche
eine zugehörige Nachricht kennzeichnen. Das
Indexverzeichnis enthält Indexverzeichniszellen, die
Informationen über die Stelle einer zugeordneten
Indexdateizelle speichern, und wird dadurch einer Nachricht
zugeordnet.
Bei einer Ausführungsform umfaßt der Nachrichtenspeicher
auch Benutzerordner auf Seitenbasis, die jeweils einem
Benutzer zugeordnete Benutzerzellen aufweisen, die auf eine
Nachricht verweisen, im Benutzerspeicher. In einer weiteren
Ausführungsform enthält jede Benutzerzelle einen Verweis
auf eine Indexverzeichniszelle im Indexverzeichnis. Bei
noch einer weiteren Ausführungsform ist jeder
Benutzerordner gemäß vorbestimmten Kriterien auf
Benutzerbasis eingestuft.
Bei einer weiteren Ausführungsform der vorliegenden
Erfindung enthält eine Indexverzeichniszelle die Anzahl der
Benutzer, die derzeit auf eine zugehörige Nachricht Bezug
haben, und einen Verweiszeiger zu einer zugehörigen
Indexdateizelle. Bei noch einer weiteren Ausführungsform
enthält die Indexdateizelle einen Verweiszeiger zu einer
zugehörigen Nachricht in einem Datenspeicherplatz und die
Größe der zugehörigen Nachricht.
Bei noch einer weiteren Ausführungsform der vorliegenden
Erfindung enthält eine Nachricht einen Verweiszeiger zu
einer zugehörigen Indexdateizelle und einen Verweiszeiger
zu einer zugehörigen Indexverzeichniszelle. Bei noch einer
weiteren Ausführungsform der vorliegenden Erfindung
ermöglichen der Indexverzeichniszeiger in der
Benutzerzelle, der Indexdateizeiger in der
Indexverzeichniszelle, der Nachrichtenzeiger in der
Indexdateizelle und die zwei Zeiger in der Nachricht, daß
sich der Nachrichtenspeicher bei Bedarf selbst
rekonstruiert.
Bei einem weiteren Aspekt der Erfindung wird ein Verfahren
zur effizienten Übermittlung von neuen Nachrichten an den
Nachrichtenspeicher bereitgestellt. Bei einer
Ausführungsform werden eingehende Daten und zugehörige
Indexdaten an spezielle Teile eines Nachrichtenspeichers
zur im wesentlichen gleichen Zeit angehängt. Während die
eingehenden Daten und die Indexdaten in den
Nachrichtenspeicher geschrieben werden, kann ein Kunde im
wesentlichen ungehindert auf vorhandene Daten im
Nachrichtenspeicher zugreifen. Bei noch einer weiteren
Ausführungsform wird der Zugriff auf einen ungenutzten Teil
des Nachrichtenspeichers, wo die eingehenden Daten
angehängt werden, beschränkt.
Die Erfindung kann zusammen mit deren weiteren Vorteilen am
besten durch Bezugnahme auf die folgende Beschreibung in
Verbindung mit den zugehörigen Zeichnungen verstanden
werden, wobei gilt:
Fig. 1a ist ein Blockdiagramm, das einen
Nachrichtenspeicher gemäß einer Ausführungsform
der vorliegenden Erfindung zeigt.
Fig. 1b ist ein Blockdiagramm, das einen
Datenspeicherbereich eines Nachrichtenspeichers
gemäß einer Ausführungsform der vorliegenden
Erfindurig zeigt.
Fig. 1c ist ein Blockdiagramm, das einen
Benutzerspeicherbereich eines
Nachrichtenspeichers gemäß einer Ausführungsform
der vorliegenden Erfindung zeigt.
Fig. 2a ist eine Darstellung einer Datenstruktur, die
Felder in einer wie in Fig. 1b dargestellten
Indexverzeichniszelle zeigt.
Fig. 2b ist eine Darstellung einer Datenstruktur, die
Felder in einem wie in Fig. 1b dargestellten
Indexverzeichnis-Anfangsblock zeigt.
Fig. 3 ist eine Darstellung einer Datenstruktur, die
Felder innerhalb einer Indexdateizelle
ausführlicher zeigt.
Fig. 4 ist eine Darstellung einer Datenstruktur, die
eine Abschnitts-Relativzeigerliste der
vorliegenden Erfindung ausführlicher zeigt.
Fig. 5 ist eine Darstellung einer Datenstruktur, die
einen Anfangsblock und eine Nachricht in einem
wie in Fig. 1b dargestellten Datenspeicherplatz-
Verzeichnis ausführlicher zeigt.
Fig. 6 ist eine Darstellung einer Datenstruktur, die
eine Nachrichtenzelle innerhalb eines
Benutzerordners von Fig. 1c ausführlicher zeigt.
Fig. 7 ist eine Darstellung einer Datenstruktur, die
einen Benutzerordner von Fig. 1c ausführlicher
zeigt.
Fig. 8 ist eine Darstellung einer Datenstruktur, die
Komponenten zeigt, die beim Empfang einer E-Mail-
Nachricht beteiligt sind, um die Nachricht an
einen Nachrichtenspeicher der vorliegenden
Erfindung zu übermitteln.
Fig. 9 ist ein Ablaufplan, der den Prozeß der
Übermittlung einer Nachricht an den
Nachrichtenspeicher der vorliegenden Erfindung
zeigt.
Fig. 10 ist ein Blockdiagramm eines typischen
Computersystems, das sich zur Implementierung der
beschriebenen Ausführungsform der vorliegenden
Erfindung eignet.
Es wird nun auf eine bevorzugte Ausführungsform der
Erfindung im einzelnen Bezug genommen. Ein Beispiel der
bevorzugten Ausführungsform ist in den zugehörigen
Zeichnungen dargestellt. Obwohl die Erfindung in Verbindung
mit einer bevorzugten Ausführungsform beschrieben wird, ist
es selbstverständlich, daß es nicht vorgesehen ist, die
Erfindung auf eine bevorzugte Ausführungsform zu begrenzen.
Im Gegenteil ist vorgesehen, Alternativen, Modifikationen
und Äquivalente einzuschließen, die innerhalb des Gedankens
und Schutzbereichs der Erfindung, wie durch die angefügten
Ansprüche definiert, enthalten sein können.
Ein verbesserter Nachrichtenspeicher zum Speichern von
Daten, wie z. B. E-Mail-Nachrichten, zugehörigen
Informationen und Benutzerinformationen, ist in den
verschiedenen Zeichnungen dargestellt. Bei der
beschriebenen Ausführungsform ist der verbesserte
Nachrichtenspeicher dazu ausgelegt, Mail-Nachrichten,
beispielsweise Internet-E-Mail-Nachrichten, zu speichern,
kann aber zum Speichern von anderen Arten von Informationen
verwendet werden. Hinsichtlich der beschriebenen
Ausführungsform ist es erwünscht, Mail-Nachrichten auf
einem Server zu speichern und zu indexieren, wobei der
Server auf Abfragen von einem Kunden (d. h. Benutzer) für
Daten hinsichtlich der Nachrichten dieses Kunden reagiert.
Gemäß der beschriebenen Ausführungsform kann der
Nachrichtenspeicher dazu ausgelegt sein, auf Befehle und
Nachrichten der weitverbreitetsten Mail-Protokolle zu
reagieren. Es ist zu erkennen, daß zwei solche Protokolle
das Internet-Nachrichtenzugangsprotokoll (IMAP) und das
Postamtprotokoll (POP) sind. Für den Zweck der Erläuterung
und Beschreibung der vorliegenden Erfindung gemäß der
beschriebenen Ausführungsform ist der den
Nachrichtenspeicher enthaltende Server dazu ausgelegt,
hauptsächlich auf IMAP- und POP-Befehle und -Nachrichten zu
reagieren (im allgemeinen als IMAP-Server bezeichnet)
Hinsichtlich der beschriebenen Ausführungsform sollte
beachtet werden, daß, obwohl IMAP-Server derzeit einen
gewissen Grad an Indexierung aufweisen, die
Gesamtkonfiguration des IMAP-Nachrichtenspeichers und des
Grades der Indexierung außerstande ist, immer
kompliziertere und anspruchsvollere Benutzerabfragen für
Daten effizient zu verarbeiten.
Somit ermöglicht die zugrundeliegende Konfiguration auf
Seitenbasis und der hohe Grad der Indexierung des
Nachrichtenspeichers der vorliegenden Erfindung, daß der
Server der beschriebenen Ausführungsform in einer sehr
effizienten Art und Weise eingehende Nachrichten
verarbeitet und Benutzerabfragen bearbeitet (um vorhandene
Daten zu verarbeiten). Die zugrundeliegende Konfiguration
des Nachrichtenspeichers auf Seitenbasis ermöglicht, daß
Daten auf der Basis von vordefinierten Kriterien, wie z. B.
einem Zeitraum, z. B. einem Tag oder einer Woche, eingeteilt
werden, wodurch der Bedarf, einen ganzen Körper von Daten,
von denen die meisten überflüssig wären, zu durchsuchen
oder zu verarbeiten, beseitigt wird. Die hohe Granularität
der Indexierung des Nachrichtenspeichers und die
verschiedenen Speicherkomponenten, wie z. B. das
Indexverzeichnis und die Indexdatei, die nachstehend
ausführlich erörtert werden, ermöglichen ebenfalls, daß das
System die Datenintegrität durch Verwendung von Bezugnahmen
(auf andere Speicherkomponenten) und Zählern, die die
Konsistenzprüfungen erleichtern und die Datenredundanz
verringern, gewährleistet. Außerdem werden Benutzerabfragen
und eingehende Nachrichten auf Datensatzbasis bearbeitet,
wobei ein Datensatz im wesentlichen eine Kombination von
Feldern in den verschiedenen Speicherkomponenten im
Nachrichtenspeicher ist, was nachstehend ausführlich
erörtert wird. Da typischerweise nur bestimmte Felder bei
der Antwort auf eine Benutzerabfrage oder zur Verarbeitung
einer eingehenden Nachricht erforderlich sind, kann der
Server eine Abschnittssperrung durchführen, anstatt ganze
Ordner oder Verzeichnisse zu sperren. Dies verringert stark
die Konkurrenz zwischen dem Schreiben in den Server (z. B.
Verarbeiten einer eingehenden Nachricht) und der
Bearbeitung einer Benutzerabfrage, die einen Zugriff auf
dieselbe Mailbox erfordert.
Ein Nachrichtenspeicher gemäß einer Ausführungsform der
vorliegenden Erfindung eignet sich zum Speichern von Daten
in Servern, die in einer weiträumig verteilten
Computerumgebung (d. h. Zehntausende von Benutzern) oder in
viel kleineren Computernetzwerken mit beispielsweise
weniger als zehn Benutzern verwendet werden. Die Vorteile
des verbesserten Nachrichtenspeichers werden in beiden
Zusammenhängen und in den Zusammenhängen dazwischen
realisiert. Beispielsweise ist der Server bei der
beschriebenen Ausführungsform ein IMAP-Server, der eine
Internet-E-Mail für Benutzer in einer weiträumig verteilten
Computerumgebung speichert. Folglich ist es nützlich, die
Struktur einer in diesem Beispiel verwendeten Internet-E-
Mail-Nachricht kurz zu erläutern. Wie einem üblichen
Fachmann gut bekannt ist, wird eine Internet-E-Mail-
Nachricht gemäß dem MIME-Standard formatiert. Eine MIME-
Nachricht besteht aus einem MIME-Anfangsblock und einem
oder mehreren Hauptteilen oder -abschnitten, wobei jeder
Hauptteil einen Anfangsblock aufweist. Das MIME-Format
ermöglicht, daß eine E-Mail-Nachricht verschiedene Arten
von Medien, wie z. B. Audio, Videobilder, nicht-englischen
Text, HTML und so weiter, enthält. Ein Nachrichtenspeicher
der beschriebenen Ausführungsform bringt MIME-Abschnitte
durch verschiedene Indizes unter, die nachstehend erörtert
werden. Bei anderen bevorzugten Ausführungsformen kann die
beschriebene Indexstruktur verwendet werden, um andere
Datenformate unterzubringen. Ein Nachrichtenspeicher gemäß
der beschriebenen Ausführungsform ermöglicht den Abruf von
speziellen MIME-Abschnitten einer speziellen Nachricht,
ohne die gesamte Nachricht abzurufen, zusätzlich zur
effizienten Bearbeitung von anderen stark spezifischen
Abfragen.
Fig. 1a ist ein Blockdiagramm, das einen
Nachrichtenspeicher gemäß einer Ausführungsform der
vorliegenden Erfindung zeigt. Der Nachrichtenspeicher 100
umfaßt ein Datenspeicherplatz-Verzeichnis 102, ein
Indexverzeichnis 104, eine Indexdatei 106 und ein
Benutzerordner-Verzeichnis 110. Das Datenspeicherplatz-
Verzeichnis 102 enthält eine Reihe von Datenspeicherplätzen
112. Das Indexverzeichnis 104 enthält einen Anfangsblock 114
und eine Reihe von Indexverzeichniszellen 116. Die
Indexdatei 106 enthält einen Anfangsblock 118 und eine
Reihe von Indexdateizellen 120. Das Benutzerordner-
Verzeichnis 110 enthält eine Reihe von Benutzerordnern 122.
Der Nachrichtenspeicher 100 kann in zwei Speicherkategorien
eingeteilt werden: einen Datenspeicher und einen
Benutzerspeicher. Fig. 1b ist ein Blockdiagramm, das die
Speicherkomponenten eines Datenspeicherbereichs gemäß einer
Ausführungsform der vorliegenden Erfindung zeigt. Ein
Datenspeicherbereich 124, der in Fig. 1b gezeigt ist,
enthält ein Indexverzeichnis 104, eine Indexdatei 106 und
ein Datenspeicherplatz-Verzeichnis 102. Jede dieser
Speicherkomponenten ist gemäß einer Konfiguration auf
Seitenbasis strukturiert. Jede Seite kann einem
vordefinierten Kriterium entsprechen, wie z. B. einem
speziellen Zeitraum. Bei der beschriebenen Ausführungsform
basiert beispielsweise jede Seite der Speicherkomponenten
auf einem Tag, wobei jede Speicherkomponente auf der oberen
Ebene auf der Basis des Tages, an dem eine spezielle
Nachricht empfangen wurde, organisiert ist. Bei anderen
bevorzugten Ausführungsformen kann jede Seite in
Abhängigkeit vom Volumen des Datenverkehrs auf dem System
einer Woche oder einem achtstündigen Zeitraum entsprechen.
Das Datenspeicherplatz-Verzeichnis 102 besteht aus
Datenspeicherplätzen 108. Ein typischer Datenspeicherplatz
108 ist mit einem Anfangsblock 126 und einem
repräsentativen Nachrichtenbereich 128 gezeigt. Das
Datenspeicherplatz-Verzeichnis 102 oder der
Datenspeicherplatz-Halter ist im wesentlichen ein Behälter
zum Aufbewahren einer Reihe von Datenspeicherplätzen für
einen vorher definierten Zeitraum, wie z. B. einem Tag.
Somit werden bei der beschriebenen Ausführungsform im
allgemeinen alle an einem gegebenen Tag empfangenen
Nachrichten in einem Datenspeicherplatz gespeichert, der
diesem speziellen Tag entspricht.
Bei der beschriebenen Ausführungsform enthält oder hält das
Datenspeicherplatz-Verzeichnis 102 anfänglich drei
Datenspeicherplätze. Die Speicherplätze sind in der
Struktur im wesentlichen identisch zum Datenspeicherplatz
108. Ein oder mehrere zusätzliche Datenspeicherplätze 130
werden zum Datenspeicherplatz-Verzeichnis 102 hinzugefügt,
wenn irgendeiner der anfänglichen drei Datenspeicherplätze
eine konfigurierbare Plattendateigröße überschreitet. Bei
anderen bevorzugten Ausführungsformen kann sich die Art und
Weise, in der zusätzliche Datenspeicherplätze hinzugefügt
werden, ändern. Der Nachrichtenspeicher kann beispielsweise
anfänglich nur einen Datenspeicherplatz besitzen und einen
zusätzlichen Datenspeicherplatz hinzufügen, wenn
irgendeiner der anfänglichen Speicherplätze gefüllt ist.
Wenn man zur beschriebenen Ausführungsform zurückkehrt,
werden eingehende Nachrichten für einen speziellen Tag
willkürlich unter den ersten drei Datenspeicherplätzen
verteilt mit der Absicht, eine im wesentlichen gleichmäßige
Verteilung unter den drei Datenspeicherplätzen zu haben.
Diese Verteilung der Nachrichten wird fortgesetzt oder
beibehalten, wenn zusätzliche Datenspeicherplätze zum
Datenspeicherplatz-Verzeichnis 102 hinzugefügt werden. Bei
der beschriebenen Ausführungsform werden, wenn die
anfänglichen drei Datenspeicherplätze voll sind,
zusätzliche drei Datenspeicherplätze hinzugefügt und die
Nachrichten werden unter den neuen Datenspeicherplätzen
willkürlich verteilt. Wie vorstehend erwähnt, kann ein
Nachrichtenspeicher der vorliegenden Erfindung in großen
Computerumgebungen mit großem Volumen oder viel kleineren
Computernetzwerken verwendet werden. In einer großen
verteilten Computerumgebung beispielsweise, wie bei der
beschriebenen Ausführungsform, kann ein typischer
Datenspeicherplatz-Halter eine maximale Plattendateigröße
von 500 Megabytes besitzen.
Der Datenspeicherplatz 108 beginnt typischerweise mit einer
Anfangsblockzelle 126. Dem Anfangsblock 126 folgen Daten,
die sequentiell gespeichert sind, wie z. B. E-Mail-
Nachrichten 128 im Speicherplatz 108. Bei anderen
bevorzugten Ausführungsformen können die Daten Video- oder
Audiosegmente, Datenbankdatensätze oder andere Formen von
Daten sein. Bei der beschriebenen Ausführungsform werden
die Nachrichten zu einem speziellen Datenspeicherplatz
hinzugefügt und sind nicht in einer Zelle oder einem festen
Speicherbereich enthalten. Obwohl die Größe einer Nachricht
stark variieren kann, liegt eine typische E-Mail-Nachricht
im Bereich von zwei bis zehn Kilobytes. Wie vorstehend
erwähnt, werden bei der beschriebenen Ausführungsform die
eingehenden Nachrichten willkürlich und vorzugsweise unter
den ersten drei Datenspeicherplätzen für einen speziellen
Tag gespeichert. Wenn sich die Datenspeicherplätze füllen,
werden neue Datenspeicherplätze 130 erzeugt, um die
Nachrichten zu speichern. Somit wird eine eingehende
Nachricht, die an eine Vielzahl von Empfängern adressiert
ist, einmal in einem Datenspeicherplatz gespeichert. Die
Merkmale des Nachrichtenspeichers der vorliegenden
Erfindung ermöglichen, daß die Empfänger (oder Eigentümer,
Erzeuger usw.) einer Nachricht alle zu einer einzigen Kopie
der Nachricht Bezug haben. Dieses Merkmal wird nachstehend
ausführlicher erörtert. Bei der beschriebenen
Ausführungsform kann ein typischer Datenspeicherplatz etwa
200 000 Nachrichten von zweieinhalb Kilobytes halten.
Folglich können drei Datenspeicherplätze (d. h. die
anfängliche Anzahl der Datenspeicherplätze, die einem
speziellen Tag zugeordnet sind) bis zu oder ungefähr 600 000
E-Mail-Nachrichten halten. Natürlich können viele dieser
Nachrichten in Abhängigkeit von der Art der Nachricht und
der Anhänge ohne weiteres über zweieinhalb Kilobytes haben.
Wenn eine Nachricht empfangen wird, wird sie zusätzlich zur
Speicherung in einem Datenspeicherplatz auch durch einen
Indexierungsthread analysiert, so daß Index- und zugehörige
Informationen im Indexverzeichnis 104 und in der Indexdatei
106 gespeichert werden können. Diese Informationen werden
in einer speziellen Seite des Verzeichnisses 104 und der
Datei 106 gespeichert. Bei der beschriebenen
Ausführungsform basieren das Indexverzeichnis und die
Indexdateien auf einem Tag, indem jedem Tag ein neues
Verzeichnis und eine neue Datei zugeordnet wird.
Zusätzliche Indexverzeichnisseiten 107 sind "hinter" der
Indexverzeichnisseite 104 gezeigt. Das Indexverzeichnis 104
beginnt mit einem Anfangsblock 114, gefolgt von
Indexverzeichniszellen. Eine Musterzelle ist im Bereich 116
gezeigt. Wenn eine eingehende Nachricht empfangen wird,
wird sie analysiert und die Indexinformationen werden
gewonnen und in einer Indexverzeichniszelle 116
gespeichert. Bei der beschriebenen Ausführungsform besitzt
die Indexverzeichniszelle 116 beispielsweise eine feste
Datensatzgröße von 24 Bytes. Bei anderen bevorzugten
Ausführungsformen kann die Indexverzeichniszelle 116 in
Abhängigkeit von der Art der gespeicherten Daten und dem
erforderlichen Grad der Indexierung größer oder kleiner
sein.
Wenn eine eingehende Nachricht analysiert wird, wird eine
Indexierungsinformation hinsichtlich dieser Nachricht in
der Indexdatei 106 gespeichert. Wie beim Indexverzeichnis
und beim Datenspeicherplatz-Verzeichnis entspricht bei der
beschriebenen Ausführungsform eine Seite der Indexdatei
einem speziellen Tag. Ebenso sind die Indexdateiseiten 115
für Tag zwei und Tag drei "hinter" der Indexdatei 106
gezeigt. Diese Seiten 115 können anderen vorher definierten
Zeiträumen oder anderen Kriterien entsprechen. Die
Indexdatei 106 beginnt mit einem Indexdatei-Anfangsblock
118, gefolgt von Indexdateizellen wie z. B. der Zelle 120.
Wie nachstehend genauer erörtert wird, enthält die
Indexdatei selbst detaillierte Indexierungsinformationen
hinsichtlich jeder eingehenden Nachricht und enthält
mehrere andere Felder. Bei der beschriebenen
Ausführungsform besitzt der Indexdatei-Anfangsblock 118
eine feste Datensatzgröße.
Fig. 1c ist ein Blockdiagramm, das einen
Benutzerspeicherbereich eines Nachrichtenspeichers gemäß
einer Ausführungsform der vorliegenden Erfindung zeigt. Wie
vorstehend erwähnt, kann ein Nachrichtenspeicher
konzeptionell in einen Datenspeicherbereich und einen
Benutzerspeicherbereich unterteilt sein. Diese
Unterscheidung ist für die Leistungsfähigkeit des
Nachrichtenspeichers nicht erforderlich, wie in Fig. 1a
gezeigt. Die Unterscheidung wird bei der beschriebenen
Ausführungsform verwendet, um den Nachrichtendatenaspekt
und den Benutzerdatenaspekt des Nachrichtenspeichers zu
erläutern.
In Abhängigkeit von der Größe des Netzwerks, das durch den
Nachrichtenspeicher bedient wird, und insbesondere der
Anzahl an Benutzern kann ein typischer
Benutzerspeicherbereich 132 mehrere Tausend Benutzerordner-
Verzeichnisse ähnlich dem Verzeichnis 134 enthalten. In
anderen Szenarien kann der Benutzerspeicherbereich 132 nur
ein paar Benutzerordner-Verzeichnisse oder ein Verzeichnis,
wenn nur ein paar Benutzer auf den Nachrichtenspeicher
zugreifen, enthalten. Das Benutzerordner-Verzeichnis 134
ist im wesentlichen eine Sammlung von Benutzerordnern 136
für eine Gruppe von Benutzern. Im allgemeinen hat ein
Benutzer immer mindestens einen Benutzer-Mail-Ordner zum
Empfangen einer neuen Mail, welcher Eingangsbox genannt
wird. Im E-Mail-Zusammenhang können Benutzer
kundenspezifische Ordner zum Aufbewahren von Nachrichten
bezüglich einer speziellen Angelegenheit oder eines vom
Benutzer gewählten Kriteriums neu anlegen. Ein
Benutzerordner 136 beginnt mit einem Anfangsblock 138,
gefolgt von Benutzerordnerzellen 140. Bei der beschriebenen
Ausführungsform enthält eine typische Benutzerordnerzelle
140 Indexierungs- und andere Informationen hinsichtlich
einer Nachricht, enthält jedoch nicht die eigentlichen
Daten oder den Inhalt der Nachricht. Der eigentliche Inhalt
einer speziellen Nachricht wird im Datenspeicherplatz-
Verzeichnis 102 von Fig. 1b gespeichert. Dies ermöglicht,
daß der Nachrichtenspeicher eine an verschiedene Benutzer
auf dem Netzwerk adressierte Nachricht im
Nachrichtenspeicher nur einmal speichern oder in diesen
schreiben muß, da Bezüge auf die speziellen Benutzerordner
vorhanden sind. Bei anderen bevorzugten Ausführungsformen
können die Daten andere Arten von Daten sein, auf die von
verschiedenen Benutzern auf dem Netzwerk Bezug genommen
werden muß. Andere Ordner, die im Benutzerordner-
Verzeichnis 134 enthalten sind, sind Verwaltungsordner und
Ordner zum Aufbewahren von beispielsweise IMAP-
Informationen. Bei der beschriebenen Ausführungsform ist
jedem Benutzerordner-Verzeichnis 134 ein Identifikator,
typischerweise eine ganze Zahl, gegeben. Der letzte Name
eines Benutzers kann beispielsweise zu dieser speziellen
ganzen Zahl Hash-codiert werden. Dies ermöglicht eine im
wesentlichen gleichmäßige Verteilung von Benutzernamen in
jedem Benutzerordner-Verzeichnis 134.
Das Datenspeicherplatz-Verzeichnis 102, das
Indexverzeichnis 104, die Indexdatei 106 und das
Benutzerordner (Datenraum)-Verzeichnis 134 sind logisch
miteinander verknüpft, um zu gewährleisten, daß der
Nachrichtenspeicher konsistent ist und im Falle eines
Fehlers leicht repariert werden kann. Eine Reihe von
Verweisen bilden Pfade unter den Speicherkomponenten, die
nachstehend mit Bezug auf spezielle Felder und Werte in
diesen Feldern in der Indexverzeichniszelle 116, der
Indexdateizelle 120, einer Benutzerordnerzelle 138 und
einem Datenspeicherplatz 108 genauer beschrieben werden.
Wenn eine Nachricht empfangen wird, untersucht ein
Indexierungsteilprozeß bzw. -thread die Struktur und den
Inhalt der Nachricht. Eine Übersicht des Anfangsblocks der
empfangenen Nachricht wird analysiert und in die
Indexdateizelle 120 eingeschlossen. Ebenso wird die
Hauptteilstruktur der Nachricht analysiert und die
Hauptteilinformationen werden in der Indexdateizelle 120,
die dieser Nachricht entspricht, gespeichert. Wenn eine
spezielle Nachricht länger ist als eine vorbestimmte Länge,
wird die Nachricht bei der beschriebenen Ausführungsform in
einem Anschlußintervall weiter analysiert, so daß sie auf
dem Server während der Ausgabe keinen Engpaß erzeugt,
wodurch die Gesamtleistung verlangsamt wird. Durch die
Voranalyse der Struktur der Nachricht kann ein Kunde, der
einen Nachrichtenspeicher gemäß einer Ausführungsform der
vorliegenden Erfindung verwendet, beispielsweise in einem
Auslesen alle Anfangsblockdaten für eine spezielle
Nachricht aus dem Datenspeicherplatz, wo die Nachricht
gespeichert ist, erhalten. Wie nachstehend genauer
beschrieben wird, besitzt die Indexdateizelle 116 genügend
Metadaten, wie z. B. Rahmen- bzw. Envelopeinformationen, und
Hauptteilstruktur-Informationen, so daß Benutzer die aus
einer speziellen Nachricht angeforderten Eigenschaften mit
einer Leseoperation erhalten können, ohne auf die ganze
Nachricht zugreifen zu müssen.
Fig. 2a ist ein Datenstrukturdiagramm, das Felder in einer
Indexverzeichniszelle 116 gemäß einer Ausführungsform der
vorliegenden Erfindung zeigt. Die Informationen in der
Indexverzeichniszelle 116 sind im wesentlichen Metadaten
über Informationen, die in der Indexdateizelle 120
gespeichert sind. Damit das System auf in der
Indexdateizelle 120 enthaltene Daten zugreifen kann, greift
es folglich zuerst auf die Indexverzeichniszelle 116 für
einen Verweis auf die entsprechende Stelle in der
Indexdatei 106 zu. Die Indexverzeichniszelle 116 enthält
Werte für einen Indexdatei-Relativzeiger 203, eine
Indexdateizellengröße 205, einen Bezugszählstand 207, einen
universellen Speicheridentifikator 209 und ein
Belegungskennzeichen 211. Ein Indexdatei-Relativzeiger-Feld
202 in der Indexverzeichniszelle 120 sieht einen
Indexdatei-Relativzeigerwert 203 vor, der die Stelle
innerhalb der Indexdatei 106 ist, an welchem Punkt die
entsprechende Indexdateizelle 120 beginnt. Das
Indexdateizellengrößen-Feld 204 sieht die Zellengröße 205
der Indexdateizelle vor, die am Relativzeiger 203 beginnt,
der im Indexdatei-Relativzeiger-Feld 202 angegeben ist. Mit
dieser Information kann das System auf die entsprechende
Indexdateizelle 120 in der Indexdatei 106 zugreifen. Ein
Bezugszählstand-Feld 206 enthält einen Bezugszählstand 207
der Anzahl von Benutzerordnern 136, die auf eine Nachricht
oder andere Daten (die der speziellen Indexverzeichniszelle
zugeordnet sind) Bezug haben. Der Bezugszählstand 207 ist
die Anzahl der Benutzer, die auf eine spezielle Nachricht
Zugriff haben. Das Feld 208 für den universellen
Speicheridentifikator speichert eine universelle
Speicheridentifikation 209, die eine eindeutige
Identifikation jeder Nachricht oder jedes Datenelements
gewährleistet. Somit ist bei der beschriebenen
Ausführungsform genau ein universeller
Speicheridentifikator 209 für eine spezielle Nachricht
vorhanden und dieser Identifikator kann nicht verwendet
werden, um irgendeine andere Nachricht in dem System zu
identifizieren. Ein Belegungskennzeichen-Feld 210 enthält
ein Belegungskennzeichen 211, das anzeigt, ob sich noch
Daten im Nachrichtenspeicher befinden. Der
Nachrichtenspeicher kann eine spezielle Nachricht
enthalten, selbst wenn keine Verweise auf sie vorliegen,
d. h. der Bezugszählstand 207 für diese Nachricht Null ist.
Die Nachricht bleibt im Speicher, bis sie gelöscht wird
oder eine Speicherbereinigung durchgeführt wird. Dies ist
nützlich beim Abrufen der Nachricht im Fall, daß ein
anderer Benutzer auf diese spezielle Nachricht zugreifen
will. Das System erhöht einfach den Bezugszählstand 207 auf
eins und die Nachricht kann von einem speziellen Benutzer
angesehen werden.
Fig. 2b ist ein Datenstrukturdiagramm, das Felder in einem
wie in Fig. 1b gezeigten Indexverzeichnis-Anfangsblock 114
gemäß einer Ausführungsform der vorliegenden Erfindung
zeigt. Ein Datenspeicherplatz-Zählstand-Feld 212 enthält
einen Datenspeicherplatz-Zählstand von Datenspeicherplätzen
108, die an einem speziellen Tag verwendet werden, und wird
hauptsächlich für Konsistenzprüfungen verwendet. Ein
Komplexitätskennzeichen-Feld 214 enthält ein Kennzeichen,
das anzeigt, ob das System die Nachrichtendaten indexiert.
Ein Indexverzeichniszellen-Zählstand-Feld 216 enthält die
Anzahl der Indexverzeichniszellen 116, die derzeit im
Indexverzeichnis 104 vorliegen. Ein Feld 218 für die
nächste verfügbare Zelle enthält die Stelle einer nächsten
verfügbaren Indexverzeichniszelle. Obwohl bei der
beschriebenen Ausführungsform die vorstehend beschriebenen
Felder in einer bestimmten Reihenfolge aufgelistet sind,
können die Felder bei anderen bevorzugten Ausführungsformen
in Abhängigkeit von einer speziellen Implementierung des
Nachrichtenspeichers anders geordnet sein. Außerdem können
bei anderen bevorzugten Ausführungsformen bestimmte Felder
nicht erforderlich sein oder können keine Werte enthalten.
Welche Felder verwendet werden, hängt wieder teilweise von
einer speziellen Implementierung des Nachrichtenspeichers
ab.
Fig. 3 ist ein Datenstrukturdiagramm, das Felder in einer
Indexdateizelle 120 gemäß einer Ausführungsform
ausführlicher zeigt. Eine Indexdateizellengröße 302 enthält
eine Indexdateidatensatzgröße 303, die die Größe der
Indexdateizelle bereitstellt und für interne
Konsistenzprüfungen verwendet wird. Unter Verwendung dieses
Werts kann das System von einem Datensatz zum anderen
springen und durch Prüfen, um festzustellen, ob eine neue
Indexdateizelle an erwarteten Stellen auf der Plattendatei
beginnt und endet, die Integrität gewährleisten. Ein
Identifikationslängen-Feld 304 und ein Datenspeicherplatz-
Identifikations-Feld 306 stehen in Zusammenhang, indem das
Feld 304 die Anzahl der Bytes oder die Länge des Feldes 306
enthält. Das Datenspeicherplatz-Identifikations-Feld 306
enthält einen Datenspeicherplatz-Identifikator 305 und
besteht bei der beschriebenen Ausführungsform aus vier
Ziffern für das Jahr, zwei Ziffern für den Monat, zwei
Ziffern für den Tag und einer dreistelligen ganzen Zahl.
Diese Ziffern bilden einen eindeutigen Identifikator für
den Datenspeicherplatz 108, der die Nachricht enthält, die
einer speziellen Indexdateizelle entspricht. Das
Identifikationslängen-Feld 304 wird einfach verwendet, um
die Konsistenz des Datenspeicherplatz-Identifikators durch
Sicherstellen, daß er die korrekte Länge aufweist, zu
gewährleisten. Das Datenspeicherplatz-Relativzeiger-Feld
308 enthält den Relativzeiger 309 im Datenspeicherplatz,
der die Nachricht enthält, die einer speziellen
Indexdateizelle zugeordnet ist. Er liefert im wesentlichen
die Stelle im Datenspeicherplatz, wo sich die Nachricht
befindet. Das Datensatzgrößen-Feld 310 enthält die Größe
der Daten 311 im Datenspeicherplatz und besteht aus der
Größe der Nachricht plus der Größe von irgendwelchen
Präambeldaten. Somit kann das System mit den Feldern 308
und 310 direkt zu der Stelle in einem speziellen
Datenspeicherplatz gehen und den gesamten Datensatz (d. h.
die Nachricht), der der Indexdateizelle zugeordnet ist, in
einer einzigen Auslesung abrufen.
Ein Hash-Code-Feld 312 enthält einen Hash-Code, der einer
Hash-Tabelle zugeordnet ist, die verwendet wird, um das
System zu informieren, ob sich eine spezielle Nachricht
bereits im Nachrichtenspeicher befindet. Somit wird eine
spezielle Nachricht Hash-codiert, und wenn festgestellt
wird, daß der Hash-Wert in der Hash-Tabelle ist, weiß das
System, daß sich die Nachricht bereits im
Nachrichtenspeicher befindet, wodurch die Redundanz
verringert wird. Ein I18n-Kennzeichen-Feld 314 enthält
I18n-Kennzeichen. Diese Kennzeichen zeigen an, ob die
Nachricht eine 16-Bit-Sprachcodierung oder eine andere
spezielle Codierung hat. Wenn ja, sind spezielle
Anforderungen zum Suchen erforderlich. Ein RFC822-
Anfangsblocklängen-Feld 316 und ein RFC822-Hauptteillängen
Feld 318 stehen in Zusammenhang, indem sie beide Werte
enthalten, die sich auf einen Internet-Mail-Anfangsblock
beziehen, der als RFC822-Anfangsblock bezeichnet wird.
RFC822 ist ein Internet-Mail-Anfangsblockformat, das für
jede Internet-Mail erforderlich ist. Es enthält Felder wie
z. B. Empfänger, Sender, Angelegenheit und Datum. Das
Anfangsblocklängen-Feld 316 enthält die RFC822-
Anfangsblocklänge und das Hauptteillängen-Feld 318 enthält
die RFC822-Hauptteillänge. Die Summe der RFC822-
Anfangsblocklänge 317 und der RFC822-Hauptteillänge ist die
Länge der gesamten Nachricht, einschließlich Anhängen,
Anfangsblöcken und des/der ganzen MIME-Hauptteil(s/e). Bei
der beschriebenen Ausführungsform liegen die Felder 302 bis
318 in jeder Nachricht vor und definieren somit gemeinsam
eine Standardpräambel der Indexdateizelle. Bei anderen
bevorzugten Ausführungsformen können in Abhängigkeit von
der Art der gespeicherten Daten nicht alle diese
erforderlich sein. Beispielsweise wären die RFC822-
Anfangsblock- und Hauptteillängen-Felder nicht
erforderlich, wenn keine Internet-Mail-Nachricht
gespeichert wäre. Die Indexdateizelle 120 besitzt bei der
beschriebenen Ausführungsform eine variable Länge, da das
IMAP das Hinzufügen von anderen Feldern und Indizes
gestattet.
Die Felder 320 bis 328 sind ein Teil des Datenteils der
Indexdatei 106 der Indexdateizelle. Bei der beschriebenen
Ausführungsform ist die Speicher-Parsing-Ebene für IMAP
Zwei und für POP Null. Ein Rahmen- bzw.
Envelopekennzeichen-Feld 320 enthält einen
Rahmenkennzeichenwert 319 und zeigt an, ob das System die
Nachrichtendaten analysiert hat. Wenn bei der beschriebenen
Ausführungsform die Nachricht im IMAP ist, ist das
Rahmenkennzeichen Eins, und wenn sie im POP ist, ist das
Rahmenkennzeichen Null. Somit verschwendet das System durch
die Verwendung des Rahmenkennzeichens 319 keine Zeit, um zu
versuchen, die POP-Nachricht zu analysieren. Ein Rahmen- bzw.
Envelopedaten-Feld 322 enthält alle
Rahmeninformationen 323, wie z. B. die Größe und andere
Daten, wenn die Nachricht analysiert wird (wie bei IMAP-
Nachrichten). Ein Hauptteilkennzeichen-Feld 324 enthält ein
Hauptteilkennzeichen und hat denselben Zweck wie der Wert
319. Ebenso enthält ein Hauptteildaten-Feld 326 die
Hauptteilgröße und andere Hauptteilstruktur-Informationen,
wenn die Parsing-Ebene IMAP ist. Das Relativzeigerlisten-
Feld 328 enthält eine Abschnitts-Relativzeigerliste, die
eine schnelle Möglichkeit für das System vorsieht, MIME-
Hauptteile (oder -Abschnitte) in einer speziellen Nachricht
in dem Datenspeicherplatz zu finden. Die Abschnitts-
Relativzeigerliste 329 stellt Relativzeiger und die Längen
jedes MIME-Hauptteils in einer MIME-Nachricht bereit, so
daß ein spezieller Hauptteil durch einen
Plattendatenzugriff aufgefunden werden kann. Bei anderen
bevorzugten Ausführungsformen können diesen Feldern andere
Namen gegeben sein, die die spezielle Anwendung, für die
der Nachrichtenspeicher verwendet wird, besser beschreiben.
Außerdem kann die Indexdateizelle 120 in Abhängigkeit von
der Art der gespeicherten Daten mehr oder weniger Felder
aufweisen.
Fig. 4 ist ein Datenstrukturdiagramm, das das Abschnitts-
Relativzeigerlisten-Feld 328 von Fig. 3 ausführlicher
zeigt. Bei anderen bevorzugten Ausführungsformen kann die
Abschnitts-Relativzeigerliste 328 in Abhängigkeit von der
Art der gespeicherten Daten speziellere Informationen über
andere Arten von Daten enthalten oder kann überhaupt nicht
verwendet werden. Das Hauptteil-Feld 400 enthält den
Relativzeiger des MIME-Hauptteils vom Beginn der Nachricht,
wie im Datenspeicherplatz gespeichert. Dies ermöglicht, daß
das System einen MIME-Abschnitt innerhalb einer Nachricht
erhält, indem es nur auf die Indexdateizelle 120 zugreifen
muß. Ein Anfangsblockgrößen-Feld 402 enthält eine MIME-
Anfangsblockgröße. Jeder MIME-Hauptteil besitzt einen MIME-
Anfangsblock, der Informationen, wie z. B. den Inhalt, die
Art, die Hauptteilcodierung, und andere Informationen wie
z. B. öffentliche Schlüsselinformationen enthält. Ein
Abschnittstyp-Feld 404 enthält den MIME-Abschnittstyp, wie
z. B. Text, Bild oder Audio. Diese Information ist beim
Suchen des MIME-Hauptteils nützlich. Ein Abschnittsnummer-
Feld 406 enthält eine MIME-Abschnittsnummer, die
ermöglicht, daß das System die Hauptteilnummer direkt aus
der Indexdateizelle erhält. Bei der beschriebenen
Ausführungsform ist dies signifikant unter der
Voraussetzung, daß MIME-Nachrichten mehrere Hauptteile
besitzen können, von denen einer andere MIME-Hauptteile
sein kann. Wenn eine spezielle MIME-Abschnittsnummer nicht
gefunden werden kann, informiert das System den Benutzer,
ohne daß es auf die Nachricht im Datenspeicherplatz
zugreifen muß, daß eine solche Abschnittsnummer nicht
existiert. Alle Werte 329 im vorstehend beschriebenen
Abschnitts-Relativzeigerlisten-Feld 328 können verwendet
werden, um eine größere Menge an Informationen in bedeutend
weniger Zeit bereitzustellen, als vorher erreichbar war.
Das Abschnitts-Relativzeigerlisten-Feld 328 kann bei
anderen bevorzugten Ausführungsformen verwendet werden, um
ähnliche Vorteile zu erreichen.
Fig. 5 ist ein Datenstrukturdiagramm, das die
Anfangsblockzelle 126 und die Nachricht 128 im
Datenspeicherplatz 108 gemäß einer Ausführungsform der
vorliegenden Erfindung genauer zeigt. Ein Anfangsblock-Feld
500 enthält einen Nachrichtenanfangsblock für einen
speziellen Datenspeicherplatz 108, welcher der Nachricht
128 vorangeht. Sie enthält einen Dateiende-Zeiger, der die
Anzahl der Datensätze im Datenspeicherplatz 108 anzeigt.
Der Zeiger, der bei der beschriebenen Ausführungsform als
magische Zahl bezeichnet wird, gewährleistet die Integrität
des Datenspeicherplatzes 108. Das Datensatzgrößen-Feld 502
enthält die Datensatzgröße 503, welche die Größe der
Präambelinformation plus der eigentlichen Nachricht ist.
Folglich ist die Größe der eigentlichen Nachrichtendaten
typischerweise geringer als die Größe des gesamten
Datensatzes, wie in der Datensatzgröße 502 enthalten.
Dieser Wert ermöglicht, daß das System schnell von einem
Datensatz zum nächsten überspringt und auf
Datensatzintegrität überprüft. Ein Nachrichten-
Relativzeiger-Feld 504 enthält eine Relativzeigerlänge 505
zu der Stelle, an der die Nachrichtendaten oder die
eigentlichen Daten innerhalb einer speziellen Nachricht im
Datenspeicherplatz beginnen. Bei der beschriebenen
Ausführungsform ist es ein Zeiger zum Beginn der
Nachrichtendaten, die im nachstehend erörterten
Nachrichtendaten-Feld 522 enthalten sind. Ein
Indexdateizeiger-Feld 506 enthält einen Indexdateizeiger
507, der ein zum Wert 305 im Datenspeicherplatz-
Identifikator-Feld 306 von Fig. 3 identisches Format
aufweist. Das Format ist ähnlich dem Format des Werts 305:
ein Jahr aus vier Ziffern, gefolgt von jeweils zwei Ziffern
für den Monat und den Tag, gefolgt von einer dreistelligen
ganzen Zahl. Ein Indexdateizeiger-Feld 506 enthält einen
Indexdateizeiger 507, der zur Konsistenzprüfung und in dem
Fall, daß das System den Speicher aus den Daten allein
rekonstruieren muß, verwendet wird. Das System kann den
Nachrichtenspeicher durch im wesentlichen Zurückverfolgen
der Informationen im Indexverzeichnis, in der Indexdatei
und in den Benutzerdateien rekonstruieren.
Ein Indexverzeichniszeiger-Feld 508 enthält einen Zeiger
509 zum Indexverzeichnis 104 und insbesondere zu einer
Indexverzeichniszelle 116. Bei der beschriebenen
Ausführungsform hat der Zeiger die Form einer ganzen Zahl,
die zum Auffinden einer speziellen Zelle im
Indexverzeichnis verwendet wird. Da die Größe der
Indexverzeichniszelle einen festen Wert 509 besitzt, wird
er mit der Größe der Zelle multipliziert, um die
Anfangsstelle der speziellen Verzeichniszelle, die einer
Nachricht oder Daten entspricht, zu ermitteln. Dieser Wert
wird auch verwendet, um zu gewährleisten, daß die aus den
Zeigern in den Speicherkomponenten im Nachrichtenspeicher
gebildete geschlossene Schleife nicht unterbrochen wird.
Ein Schreibzeitpunkt-Feld 510 enthält den Zeitpunkt, zu dem
die Nachricht in den Nachrichtenspeicher geschrieben wurde,
und wird verwendet, um eine konsistente Zeit
aufrechtzuerhalten, beispielsweise im Fall, daß die
Nachricht zu einem anderen System exportiert wird. Bei der
beschriebenen Ausführungsform wird die Zeit am 1. Januar
1970 beginnend gemessen. Ein Längenfeld 512 und ein
Sendernamen-Feld 514 betreffen einen Sender der Nachricht,
wobei das Feld 512 die Länge des Sendernamens enthält und
das Feld 514 den vollen Sendernamen enthält. Ein
Empfängerzählstand-Feld 516 speichert die Anzahl der
Nachrichtenempfänger 517 oder enthält bei anderen
bevorzugten Ausführungsformen die Anzahl der Eigentümer
oder Erzeuger eines speziellen Datenelements. Ein
Empfängerlisten-Feld 518 enthält eine Liste von Namen von
Empfängern (oder Eigentümern, Erzeugern usw.). Ein
Nachrichtengrößen-Feld 520 enthält die Größe 521 der
eigentlichen Nachricht (im Gegensatz zur Datensatzgröße 503
im Feld 502). Die Nachrichtengröße 521 ist die Größe der
eigentlichen Daten, die Anhänge enthalten können, und wird
vom Anfangsblock zum letzten Byte der Daten in der
Nachricht gemessen.
Bei der beschriebenen Ausführungsform bilden die Felder 500
bis 520 eine Präambel für eine spezielle Nachricht und
können verwendet werden, um zu gewährleisten, daß der
Nachrichtenspeicher konsistent ist und nicht in irgendeiner
Hinsicht "unterbrochen" ist. Ein Nachrichtendaten-Feld 522
enthält die eigentlichen Nachrichtendaten, die von einer
Senderdatenstruktur, wie im Sendernamen-Feld 514 enthalten,
übermittelt wurden.
Fig. 6 ist ein Datenstrukturdiagramm, das eine
Benutzerordnerzelle 138 in einem Benutzerordner 136 von
Fig. 1c gemäß einer Ausführungsform der vorliegenden
Erfindung genauer zeigt. Eine Reihe von Benutzerordnern, in
denen jeder Benutzer einen oder mehrere Ordner besitzen
kann, ist innerhalb des Benutzerordner-Verzeichnisses 134
enthalten. Ein Kennzeichenfeld 600 enthält bei der
beschriebenen Ausführungsform IMAP-Kennzeichen, die
verschiedene Zustände einer Nachricht anzeigen. Bei der
beschriebenen Ausführungsform umfassen diese Löschen,
Lesen, Antworten, Kennzeichnen und Entwurf. Bei anderen
bevorzugten Ausführungsformen kann dieses Feld Kennzeichen
enthalten, die Zustände von anderen Arten von Daten, die im
Nachrichtenspeicher gespeichert sind, anzeigen. Ein
Indexverzeichniszeiger-Feld 602 enthält einen Zeiger 603
zum Indexverzeichnis 104. Bei der beschriebenen
Ausführungsform umfaßt er vier Ziffern für das Jahr,
gefolgt von jeweils zwei Ziffern für den Monat und den Tag.
Der Wert 603 wird als Zeiger zur entsprechenden Zelle 116
im Indexverzeichnis 104 verwendet. Ein Ordneridentifikator-
Feld 604 enthält eine universelle Ordneridentifikation, die
nur einmal im Leben des Ordners verwendet wird. Diese
Ordneridentifikation hilft dabei, die Nachrichten
synchronisiert zu halten. Wenn der Ordner auf Null
geschrumpft ist, wird der Identifikation für die nächste
Nachricht ein Anfangswert wie z. B. Eins oder Null
zugeordnet und wird dann bei jeder eingehenden Nachricht
inkrementiert. Ein Indexfeld 606 enthält einen Index 607
zur entsprechenden Stelle im Indexverzeichnis 104 und ist
ähnlich dem Wert 509 von Fig. 5. Bei der beschriebenen
Ausführungsform ist er eine ganze Zahl, die einen
Bezugspunkt im Indexverzeichnis 104 anzeigt. Diese ganze
Zahl wird in Verbindung mit einer festen
Indexverzeichniszellengröße verwendet, um die entsprechende
Stelle der Zelle 116 im Indexverzeichnis 104 zu ermitteln.
Ein Feld 608 für einen universellen Identifikator enthält
eine universelle Kennzahl für die spezielle Nachricht und
wird zum Sichern und Wiederherstellen der Daten bei Bedarf
verwendet. Ein Empfangszeitpunkt-Feld 610 enthält den
Zeitpunkt, zu dem die Nachricht empfangen wird, und kann
zum chronologischen Ordnen der Daten im Nachrichtenspeicher
verwendet werden. Ein RFC822-Größenfeld 612 ist die RFC822-
Nachrichtengröße und wird hauptsächlich vom IMAP und POP
bei der beschriebenen Ausführungsform verwendet. POP
verwendet es, da es die reale Größe der Nachricht in Bytes
ist, wie sie auf dem Netzwerk erscheinen würde. Es ist
derselbe wie der Wert im Feld 318 von Fig. 3. Bei anderen
bevorzugten Ausführungsformen, bei denen der
Nachrichtenspeicher keine Internet-E-Mail-Nachrichten
enthält, können dieses Feld und andere beschriebene einen
anderen Namen besitzen und einen für eine andere
Implementierung des Nachrichtenspeichers spezifischen Wert
enthalten, oder es kann überhaupt nicht erforderlich sein.
Ein Rahmenkennzeichen-Feld 614 enthält ein
Rahmenkennzeichen, das anzeigt, ob ein Rahmen bzw. Envelope
für eine Nachricht im Nachrichtenspeicher vorliegt. Wenn
der Rahmen im Indexverzeichnis 104 indexiert wurde, dann
muß das System keinen lokalen Index für diesen speziellen
Nachrichtenrahmen erzeugen. Wenn der Rahmen nicht indexiert
wurde und sich nicht im Indexverzeichnis befindet, führt
das System eine Analyse des lokalen Index durch. Ebenso
zeigt ein Hauptteilkennzeichen-Feld 616 an, ob ein Körper
vorliegt, und ob er indexiert wurde und sich im
Indexverzeichnis befindet. In diesem Fall muß das System
keine Analyse des lokalen Index durchführen. Ein Kennwort-
Datensatz-Feld 618 enthält einen Kennwort-Datensatz, der
Kennworte auflistet, die ein Benutzer einer speziellen
Nachricht zuordnet. Bei der beschriebenen Ausführungsform
ist ein Kennwort ein durch einen Benutzer zugeordnetes
Kennzeichen, das einer Nachricht zugeordnet ist. Ein
Relativzeiger-Feld 620 und ein Größenfeld 622 enthalten
einen Relativzeiger 621 bzw. eine Größe 623. Sie werden bei
der beschriebenen Ausführungsform verwendet, wenn die
Nachricht zur ersten Zugriffszeit indexiert wurde (d. h. das
Rahmenkennzeichen und die Hauptteilkennzeichen Null sind,
was anzeigt, daß der Rahmen und der Hauptteil nicht
vorliegen) oder wenn der Anfangsblock größer ist als 64
Kilobytes. Wenn eine Nachricht aufgrund ihrer Größe lokal
indexiert wird, wird in einem VAR-Ordner in der Eingangsbox
des Benutzers ein Datensatz erzeugt. Der VAR-Ordner enthält
einen speziellen Indexdatensatz, der erzeugt wird, wenn
eine Nachricht lokal indexiert wird. Um diesen
Indexdatensatz im VAR-Ordner aufzufinden, verwendet das
System den Relativzeiger 621 für den Indexdatensatz (d. h.
den Abstand zum Beginn des Datensatzes vom Beginn des
Ordners) und die Größe 623 des Indexdatensatzes, die im
Feld 622 vorgesehen ist. Dieses Merkmal der wahlweisen
Indexierung beseitigt Verzögerungen auf dem Server infolge
der Indexierung von ungewöhnlich großen Nachrichten. Die
Indexdaten werden dennoch auf dem Server in den
entsprechenden Daten- und Benutzerspeicherzellen
gespeichert.
Fig. 7 ist ein Datenstrukturdiagramm, das den
Benutzerordner 136 gemäß einer Ausführungsform der
vorliegenden Erfindung genauer zeigt. Ein typisches
Beispiel für einen Benutzerordner ist die Eingangsbox zum
Halten neuer Nachrichten. Benutzer können andere
kundenspezifische Ordner neu anlegen, um Post über
verschiedene Angelegenheiten oder Themen aufzubewahren. Ein
Benutzeranfangsblock-Feld 700 enthält den
Benutzeranfangsblock für den speziellen Ordner. Ein
Gültigkeitsfeld 702 enthält einen Gültigkeitsindikator für
keine universelle Identifikation (UID), der vom IMAP
verwendet wird. Wenn eine UID geändert wird, wird sie
ungültig. Dies geschieht beispielsweise, wenn UIDs
umnumeriert werden, und ist eine Bedingung, für die es
nützlich ist, daß das IMAP sie kennt. Wie bei diesem Feld
und anderen Feldern kann dieses Feld bei anderen
bevorzugten Ausführungsformen verwendet werden, um andere
Kennzeichen oder Indikatoren zu speichern, die bei anderen
Implementierungen nützlich sind. Ein Feld 704 für einen
nächsten Indikator enthält die nächste UID, die der
nächsten eingehenden Nachricht oder einem neu angelegten
Ordner zuzuordnen ist. Ein Nachrichtenzählstand-Feld 706
enthält die Anzahl der Nachrichten 707 oder der
Datenelemente in diesem speziellen Ordner. Ein Feld 708 für
die neueste Nachricht enthält die letzte von einem Benutzer
angesehene Nachricht. Dieser Wert ändert sich, wenn neue
Post eintrifft und der Benutzer ihren Inhalt ansieht. Ein
Schreibdatum-Feld 710 enthält das letzte Schreibdatum, das
bei der beschriebenen Ausführungsform als magische Zahl
bezeichnet wird. Es ist das letzte Datum und der letzte
Zeitpunkt, zu dem der Benutzer eine Schreiboperation an dem
speziellen Ordner durchgeführt hat. Eine Verwendung der
magischen Zahl ist zur Cache-Speicher-Neusynchronisation.
Wenn sich die magische Zahl nicht geändert hat, seitdem sie
zuletzt überprüft wurde, muß das System keine Cache-
Speicher-Neusynchronisation für diesen speziellen Ordner
durchführen, da es keine Aktivität in dieser Mailbox gab.
Ein Größenfeld 712 enthält die Gesamtzahl an realen Bytes,
die im Nachrichtenspeicher von diesem speziellen Ordner
gespeichert sind. Es enthält eine Gesamtzahl an realen
Datenbytes, die für den Benutzern auferlegte Quoten
hinsichtlich des Speichers nützlich ist. Dem Feld 712 folgt
ein Benutzerzellenbereich 714, der die Benutzerzellen, wie
in Fig. 6 beschrieben, enthält.
Fig. 8 ist ein Blockdiagramm, das die Komponenten zum
Empfangen einer E-Mail-Nachricht und zum Übermitteln der
Nachricht an einen Nachrichtenspeicher gemäß der
beschriebenen Ausführungsform zeigt. Nachrichten 802 werden
von einem Mail-Transport-Systemteil (MTA) 804 empfangen,
welcher durch einen SMTP (Einfaches Mail-
Übermittlungsprotokoll)-Port multithreading-fähig sein
kann. Bei der beschriebenen Ausführungsform werden die
Nachrichten 802 in Abhängigkeit vom Kunden, der die Mail
empfängt, entweder zu einem lokalen Kanal 806 oder zu einem
Nachrichtenspeicherkanal 808 gesandt. Der
Nachrichtenspeicherkanal ist eine Liste von Dateien, wobei
jede Datei einer Nachricht entspricht. Wenn eine Nachricht
in den Nachrichtenspeicherkanal eintritt, wird sie
sequentiell abgelegt. Der lokale Kanal ist ähnlich
strukturiert und ist einem üblichen Fachmann bekannt. Ein
Nachrichtenspeicher-Hauptrechner 810 liest Nachrichten 802
aus dem Nachrichtenspeicherkanal 808. Wenn der
Nachrichtenspeicher-Hauptrechner 810 nicht arbeitet,
beginnt er zu arbeiten, sobald er die erste Nachricht im
Kanal 808 liest. In einem großen multithreading-fähigen
System kann der Nachrichtenspeicher-Hauptrechner 810 bis zu
10 Nachrichten auf einmal lesen. Er liest die Nachrichten
802 über eine API (Applikationsprogrammierschnittstelle)
812, die ermöglicht, daß er Nachrichten 802 aus dem
Nachrichtenspeicherkanal 808 liest. Der
Nachrichtenspeicher-Hauptrechner 810 übermittelt die
Nachrichten 802 an den Nachrichtenspeicher 100. Wie
vorstehend erwähnt, erläutert die beschriebene
Ausführungsform die Verwendung des Nachrichtenspeichers der
vorliegenden Erfindung zum Speichern von E-Mail-
Nachrichten. Der Nachrichtenspeicher kann zum Speichern
anderer Arten von Daten verwendet werden, die andere
Übermittlungssysteme besitzen können als das eine, das in
Fig. 8 und Fig. 9, die nachstehend beschrieben wird,
beschrieben wird. Bei anderen bevorzugten Ausführungsformen
können die Daten in den Nachrichtenspeicher direkt durch
einen Benutzer oder von einer anderen Anwendung, wie z. B.
einem Browser oder einem Textsystem, gebracht werden.
Fig. 9 ist ein Ablaufplan, der den Prozeß eines
Nachrichtenspeicher-Hauptrechners zeigt, der Nachrichten zu
einem Nachrichtenspeicher gemäß einer Ausführungsform der
vorliegenden Erfindung übermittelt. Wie bezüglich Fig. 8
beschrieben, übermittelt ein Nachrichtenspeicher-
Hauptrechner neue E-Mail-Nachrichten zum
Nachrichtenspeicher für Benutzer. Es wird für die Zwecke
von Fig. 9 angenommen, daß der Nachrichtenspeicher-
Hauptrechner arbeitet, d. h. daß er bereits die erste
Nachricht im Nachrichtenspeicherkanal gelesen hat. In
Schritt 900 liest eine Nachrichtenübermittlungseinheit die
Dateinamen von bis zu n neuen Nachrichten. Bei der
beschriebenen Ausführungsform kann die Einheit bis zu 10
neue Nachrichten lesen. Bei anderen bevorzugten
Ausführungsformen kann die Einheit mehr oder weniger
Nachrichten lesen. In Schritt 902 wird jede Datei oder
Nachricht einem Abrufthread zugeordnet. Ein Abrufthread
wird einer Datei durch einen Aufruf an die API zugeordnet.
In Schritt 904 greift jeder Abrufthread auf seine
zugeordnete Datei im Nachrichtenspeicherkanal 808 von Fig.
8 zu. In Schritt 906 wartet der Prozeß darauf, daß auf alle
n Nachrichten parallel zugegriffen wird. Wenn einmal alle
in Schritt 900 gelesenen Dateinamen zugeordnet wurden und
auf sie zugegriffen wurde, geht ein Abrufthread zu Schritt
908, wo er auf zusätzliche Nachrichten prüft. Er kann dies
machen, sobald er feststellt, daß er n leere Puffer
erhalten kann. Wenn keine Nachrichten vorliegen, prüft der
Thread in Schritt 908 weiter auf neue Nachrichten. Wenn
neue eingehende Nachrichten vorliegen, kehrt der
Abrufthread zu Schritt 900 zurück, wo die
Nachrichtenübermittlungseinheit die Dateinamen der neuen
Nachrichten liest.
Während der Abrufthread auf neue Nachrichten prüft,
verwalten ein Indexthread und ein Schreibthread die n
Nachrichten, die vorher durch die Abrufthreads zugeordnet
wurden und auf die zugegriffen wurde. Der erste Schritt
beim Schreiben der n Nachrichten in den Nachrichtenspeicher
ist in Schritt 910 dargestellt. In Schritt 910 wählt der
Schreibthread durch Erzeugen einer willkürlichen
Speicherplatznummer einen Datenspeicherplatz aus. Bei der
beschriebenen Ausführungsform sind typischerweise drei
offene Datenspeicherplätze vorhanden, in denen die
Nachrichten liegen können. In Schritt 912 bestimmt der
Prozeß, ob der ausgewählte Datenspeicherplatz 108 noch
restlichen Speicherplatz aufweist. Wenn nicht, kehrt er zu
Schritt 910 zurück, um eine weitere willkürliche
Datenspeicherplatznummer zu erzeugen, und fährt mit diesem
Prozeß fort, wobei er bei Bedarf zusätzliche
Datenspeicherplätze erzeugt, bis die Nachrichten in den
Nachrichtenspeicher geschrieben werden können. Wenn der
Datenspeicherplatz nicht voll ist, hängt der Schreibthread
in Schritt 914 die n Nachrichten an das Ende des
ausgewählten Datenspeicherplatzes an. In Schritt 916
informiert der Schreibthread den Indexthread über die
Datenspeicherplatznummer, den Speicherplatz-Relativzeiger
309 und die Nachrichtengröße 521 von jeder der in Schritt
914 angehängten Nachrichten. In Schritt 918 prüft der
Schreibthread, ob noch mehr Nachrichten vorhanden sind, die
durch Abrufthreads zugeordnet wurden und auf die
zugegriffen wurde, welche in den Nachrichtenspeicher
geschrieben werden müssen. Wenn ja, kehrt der Schreibthread
zu Schritt 910 zurück. Wenn keine neuen Nachrichten
vorhanden sind, fährt er mit der Prüfung in Schritt 918
fort.
Der Indexthread beginnt mit der Speicherung der
Indexinformationen in den Indexverzeichnissen und -dateien,
sobald der Schreibthread das Schreiben in den
Nachrichtenspeicher ausgeführt hat. In Schritt 920 wartet
der Indexthread darauf, daß der Schreibthread das Schreiben
der n Nachrichten in den Nachrichtenspeicher beendet und
die Indexierungsinformationen zurücksendet, wie in Schritt
916 beschrieben. Es ist möglich, daß der Indexthread seine
vorherigen Indexierungsaufgaben beendet haben kann und
darauf warten muß, daß der Schreibthread das Schreiben in
den Nachrichtenspeicher beendet. In Schritt 922 schreibt
der Indexthread die Indexinformationen in das
Indexverzeichnis und die Indexdatei. In Schritt 924 werden
Bezugsinformationen, die zum Abrufen von Daten im
Indexverzeichnis und in der Indexdatei erforderlich sind,
in die Benutzerordnerzellen geschrieben. In Schritt 924
werden Informationen, die ausreichen, um auf die
entsprechenden Indexräume zu verweisen, in die Eingangsbox-
Ordnerzelle oder -zellen in Abhängigkeit von der Anzahl der
Empfänger geschrieben. In Schritt 926 werden die
Informationen im Benutzerordner-Anfangsblock aktualisiert,
um die Zugabe der neuen Nachrichten anzuzeigen. Nachdem
Schritt 926 beendet ist, prüft der Indexthread in Schritt
928, ob Indexinformationen auf ihre Indexierung warten.
Wenn ja, kehrt der Indexthread zu Schritt 920 zurück, um
die Indexierung der Informationen über Nachrichten, die
bereits in den Nachrichtenspeicher geschrieben wurden, zu
beginnen.
Die vorliegende Erfindung verwendet verschiedene
computerimplementierte Operationen, die in Computersystemen
gespeicherte Daten einbeziehen. Diese Operationen umfassen,
sind aber nicht begrenzt auf, jene, die eine physikalische
Verarbeitung von physikalischen Größen erfordern.
Gewöhnlich, wenn auch nicht notwendigerweise, nehmen diese
Größen die Form von elektrischen oder magnetischen Signalen
an, die in der Lage sind, gespeichert, übertragen,
kombiniert, verglichen und anderweitig verarbeitet zu
werden. Die hierin beschriebenen Operationen, die einen
Teil der Erfindung bilden, sind nützliche
Computeroperationen. Die durchgeführten Verarbeitungen
werden häufig mit Begriffen wie z. B. Erzeugen,
Identifizieren, Betreiben, Bestimmen, Vergleichen,
Ausführen, Fernladen oder Erfassen bezeichnet. Es ist
manchmal bequem, hauptsächlich aus Gründen der gemeinsamen
Verwendung, diese elektrischen oder magnetischen Signale
als Bits, Werte, Elemente, Variablen, Zeichen, Daten oder
dergleichen zu bezeichnen. Man sollte jedoch daran denken,
daß alle diese und ähnliche Begriffe den entsprechenden
physikalischen Größen zugeordnet werden sollen und nur
bequeme Bezeichnungen sind, die auf diese Größen angewendet
werden.
Die vorliegende Erfindung betrifft auch eine Vorrichtung,
ein System oder einen Apparat zum Ausführen der vorstehend
erwähnten Operationen. Das System kann speziell für die
erforderliche Zwecke konstruiert sein, oder es kann ein
Universalcomputer sein, der durch ein Computerprogramm, das
im Computer gespeichert ist, selektiv aktiviert oder
konfiguriert wird. Die vorstehend dargestellten Prozesse
stehen nicht von Natur aus mit irgendeinem speziellen
Computer oder einer anderen Rechenvorrichtung in
Zusammenhang. Insbesondere können verschiedene
Universalcomputer mit Programmen verwendet werden, die
gemäß den Lehren hierin geschrieben sind, oder alternativ
kann es bequemer sein, ein spezialisierteres Computersystem
zu konstruieren, um die erforderlichen Operationen
durchzuführen.
Fig. 10 ist ein Blockdiagramm eines
Universalcomputersystems 1000, das sich zum Ausführen der
Verarbeitung gemäß einer Ausführungsform der vorliegenden
Erfindung eignet. Fig. 10 stellt eine Ausführungsform
eines Universalcomputersystems dar. Andere
Computersystemarchitekturen und -konfigurationen können zum
Ausführen der Verarbeitung der vorliegenden Erfindung
verwendet werden. Das Computersystem 1000, das aus
verschiedenen Untersystemen besteht, die nachstehend
beschrieben werden, umfaßt mindestens ein Mikroprozessor-
Untersystem (das auch als zentrale Verarbeitungseinheit
oder CPU bezeichnet wird) 1002. Das heißt, die CPU 1002
kann durch einen Ein-Chip-Prozessor oder durch mehrere
Prozessoren implementiert werden. Die CPU 1002 ist ein
digitaler Universalprozessor, der den Betrieb des
Computersystems 1000 steuert. Unter Verwendung von aus dem
Speicher abgerufenen Anweisungen steuert die CPU 1002 den
Empfang und die Verwaltung von Eingangsdaten und die
Ausgabe und Anzeige von Daten auf Ausgabevorrichtungen.
Die CPU 1002 ist bidirektional mit einem ersten
Primärspeicher 1004, typischerweise ein
Direktzugriffsspeicher (RAM), und unidirektional mit einem
zweiten Primärspeicherbereich 1006, typischerweise ein
Festwertspeicher (ROM), über einen Speicherbus 1008
gekoppelt. Wie auf dem Fachgebiet gut bekannt ist, kann der
Primärspeicher 1004 als allgemeiner Speicherbereich und als
Notizblockspeicher verwendet werden und kann auch zum
Speichern von Eingangsdaten und verarbeiteten Daten
verwendet werden. Er kann auch Programmieranweisungen und
Daten in Form eines Nachrichtenspeichers zusätzlich zu
anderen Daten und Anweisungen für auf der CPU 1002
ablaufende Prozesse speichern, und wird typischerweise für
eine schnelle Übertragung von Daten und Befehlen in
bidirektionaler Weise über den Speicherbus 1008 verwendet.
Wie auf dem Fachgebiet ebenfalls gut bekannt ist, umfaßt
der Primärspeicher 1006 typischerweise grundlegende
Betriebsvorschriften, Programmcode, Daten und Objekte, die
von der CPU 1002 verwendet werden, um ihre Funktionen
auszuführen. Die Primärspeichervorrichtungen 1004 und 1006
können beliebige geeignete maschinenlesbare Speichermedien,
die nachstehend beschrieben werden, in Abhängigkeit davon,
ob beispielsweise der Datenzugriff bidirektional oder
unidirektional sein muß, umfassen. Die CPU 1002 kann auch
direkt und sehr schnell häufig benötigte Daten aus/in einem
Cache-Speicher 1010 abrufen und speichern.
Eine entnehmbare Massenspeichervorrichtung 1012 stellt eine
zusätzliche Datenspeicherkapazität für das Computersystem
1000 bereit und ist entweder bidirektional oder
unidirektional mit der CPU 1002 über einen peripheren Bus
1014 gekoppelt. Eine spezielle entnehmbare
Massenspeichervorrichtung beispielsweise, die gemeinhin als
CD-ROM bekannt ist, leitet typischerweise Daten
unidirektional zur CPU 1002, wohingegen eine Diskette Daten
bidirektional zur CPU 1002 leiten kann. Der Speicher 1012
kann auch maschinenlesbare Medien wie z. B. ein Magnetband,
einen Flash-Speicher, Signale, die auf einer Trägerwelle
verkörpert sind, PC-KARTEN, tragbare
Massenspeichervorrichtungen, holographische
Speichervorrichtungen und andere Speichervorrichtungen
umfassen. Ein fester Massenspeicher 1016 stellt auch
zusätzliche Datenspeicherkapazität bereit und ist
bidirektional mit der CPU 1002 über einen peripheren Bus
1014 gekoppelt. Das üblichste Beispiel für einen
Massenspeicher 1016 ist ein Festplattenlaufwerk. Im
allgemeinen ist der Zugriff auf diese Medien langsamer als
der Zugriff auf die Primärspeicher 1004 und 1006. Die
Massenspeicher 1012 und 1016 speichern im allgemeinen
zusätzliche Programmieranweisungen, Daten und dergleichen,
die typischerweise von der CPU 1002 nicht in aktivem
Gebrauch sind. Es ist zu erkennen, daß die im
Massenspeicher 1012 und 1016 enthaltenen Informationen bei
Bedarf in Standardweise als Teil des Primärspeichers 1004
(z. B. RAM) als virtueller Speicher integriert werden
können.
Zusätzlich dazu, daß der CPU 1002 auf die
Speicheruntersysteme Zugriff verschafft wird, wird der
periphere Bus 1014 verwendet, um anderen Untersystemen und
Vorrichtungen ebenso Zugriff zu verschaffen. Bei der
beschriebenen Ausführungsform umfassen diese einen
Anzeigemonitor 1018 und einen Adapter 1020, eine
Druckvorrichtung 1022, eine Netzwerkschnittstelle 1024,
eine Hilfs-Eingabe/Ausgabe-Vorrichtungsschnittstelle 1026,
eine Soundkarte 1028 und Lautsprecher 1030 und je nach
Bedarf andere Untersysteme.
Die Netzwerkschnittstelle 1024 ermöglicht, daß die CPU 1002
mit einem anderen Computer, Computernetzwerk oder
Fernmeldenetz unter Verwendung einer Netzwerkverbindung,
wie gezeigt, gekoppelt wird. Es wird beabsichtigt, daß die
CPU 1002 über die Netzwerkschnittstelle 1024 Informationen,
z. B. Datenobjekte oder Programmanweisungen, von einem
anderen Netzwerk empfangen könnte oder Informationen zu
einem anderen Netzwerk ausgeben könnte im Verlauf der
Ausführung der vorstehend beschriebenen Verfahrensschritte.
Informationen, die häufig als Folge von auf einer CPU
auszuführenden Befehlen dargestellt werden, können von
einem anderen Netzwerk empfangen werden und an dieses
ausgegeben werden, beispielsweise in Form eines Computer-
Datensignals, das in einer Trägerwelle verkörpert ist. Eine
Schnittstellenkarte oder ähnliche Vorrichtung und geeignete
Software, die durch die CPU 1002 implementiert wird, kann
verwendet werden, um das Computersystem 1000 mit einem
externen Netzwerk zu verbinden und Daten gemäß
Standardprotokollen zu übertragen. Das heißt, die
Verfahrensausführungsformen der vorliegenden Erfindung
können nur auf der CPU 1002 ausgeführt werden oder können
über ein Netzwerk wie das Internet, Intranet-Netzwerke oder
lokale Netze in Verbindung mit einer entfernten CPU, die
sich einen Teil der Verarbeitung teilt, ausgeführt werden.
Zusätzliche Massenspeichervorrichtungen (nicht dargestellt)
können ebenfalls mit der CPU 1002 über eine
Netzwerkschnittstelle 1024 verbunden werden.
Eine Hilfs-E/A-Vorrichtungsschnittstelle 1026 stellt
allgemeine und kundenspezifische Schnittstellen dar, die
ermöglichen, daß die CPU 1002 Daten an andere Vorrichtungen
wie Mikrophone, berührungsempfindliche Anzeigen, Wandler-
Kartenleser, Bandleser, Sprach- oder Handschriften-
Erkennungsgeräte, biometrische Leser, Kameras, tragbare
Massenspeichervorrichtungen und andere Computer sendet und
typischer von diesen empfängt.
Mit der CPU 1002 ist auch eine Tastatursteuereinheit 1032
über einen lokalen Bus 1034 zum Empfangen einer Eingabe von
einer Tastatur 1036 oder einer Zeigervorrichtung 1038 und
zum Senden von decodierten Zeichen von der Tastatur 1036
oder der Zeigervorrichtung 1038 zur CPU 1002 gekoppelt. Die
Zeigervorrichtung kann eine Maus, ein Stift, eine Rollkugel
oder ein Tablett sein und ist zum Zusammenwirken mit einer
graphischen Benutzerschnittstelle nützlich.
Außerdem betreffen die Ausführungsformen der vorliegenden
Erfindung ferner Computerspeicherprodukte mit einem
maschinenlesbaren Medium, die einen Programmcode zur
Ausführung von verschiedenen computerimplementierten
Operationen enthalten. Das maschinenlesbare Medium ist eine
beliebige Datenspeichervorrichtung, die Daten speichern
kann, welche anschließend von einem Computersystem gelesen
werden können. Die Medien und der Programmcode können jene
sein, die speziell für die Zwecke der vorliegenden
Erfindung ausgelegt und konstruiert sind, oder sie können
von der Art sein, die üblichen Fachleuten auf dem Gebiet
der Computersoftware gut bekannt sind. Beispiele für
maschinenlesbare Medien umfassen, sind jedoch nicht
begrenzt auf, alle vorstehend erwähnten Medien: magnetische
Medien, wie z. B. Festplatten, Disketten und ein Magnetband;
optische Medien, wie z. B. CD-ROM-Platten; magneto-optische
Medien, wie z. B. optische Disketten; und speziell
ausgelegte Hardwarevorrichtungen wie anwendungsspezifische
integrierte Schaltungen (ASICs), programmierbare
Logikbausteine (PLDs) und ROM- und RAM-Bausteine. Das
maschinenlesbare Medium kann auch als Datensignal, das in
einer Trägerwelle verkörpert ist, über ein Netzwerk von
miteinander gekoppelten Computersystemen verteilt werden,
so daß der maschinenlesbare Code in verteilter Weise
gespeichert und ausgeführt wird. Beispiele für einen
Programmcode umfassen sowohl einen Maschinencode, wie
beispielsweise von einem Compiler erzeugt, als auch
Dateien, die einen höherwertigen Code enthalten, der unter
Verwendung eines Interpretierers ausgeführt werden kann.
Es ist für Fachleute zu erkennen, daß die vorstehend
beschriebenen Hardware- und Softwareelemente eine
Standardauslegung und -konstruktion aufweisen. Andere
Computersysteme, die sich zur Verwendung bei der Erfindung
eignen, können zusätzliche oder weniger Untersysteme
enthalten. Außerdem veranschaulichen der Speicherbus 1008,
der periphere Bus 1014 und der lokale Bus 1034 jegliches
Verbindungsschema, das zur Verknüpfung der Untersysteme
dient. Ein lokaler Bus könnte beispielsweise verwendet
werden, um die CPU mit dem festen Massenspeicher 1016 und
dem Anzeigeadapter 1020 zu verbinden. Das in Fig. 10
dargestellte Computersystem ist nur ein Beispiel für ein
Computersystem, das sich zur Verwendung bei der Erfindung
eignet. Andere Computerarchitekturen mit unterschiedlichen
Konfigurationen von Untersystemen können ebenfalls
verwendet werden.
Obwohl die vorangehende Erfindung zum Zweck eines klaren
Verständnisses in gewissen Einzelheiten beschrieben wurde,
wird es ersichtlich sein, daß bestimmte Änderungen und
Modifikationen innerhalb des Schutzbereichs der angefügten
Ansprüche ausgeführt werden können. Ferner sollte beachtet
werden, daß es alternative Möglichkeiten gibt, sowohl den
Prozeß als auch die Vorrichtung der vorliegenden Erfindung
zu implementieren. Obwohl der Nachrichtenspeicher
beispielsweise unter Verwendung der IMAP-Indexierung
beschrieben wurde, kann der Nachrichtenspeicher ebenso für
andere Mail-Protokolle ausgelegt werden, um Multimediadaten
oder andere Arten von Daten zu speichern. Obwohl die Felder
der verschiedenen Zellen in einer speziellen Reihenfolge
beschrieben sind, ist bei einem weiteren Beispiel die
Reihenfolge der Felder kein erforderliches Merkmal des
Nachrichtenspeichers. Die Felder können anders geordnet
sein oder sie können weggelassen oder hinzugefügt werden,
ohne die Leistung und die Vorteile der vorliegenden
Erfindung zu beeinträchtigen. Folglich sollten die
vorliegenden Ausführungsformen als Erläuterung und nicht
als Einschränkung betrachtet werden, und die Erfindung
sollte nicht auf die hierin angegebenen Einzelheiten
begrenzt werden, sondern sie kann innerhalb des
Schutzbereichs und der Äquivalente der angefügten Ansprüche
modifiziert werden.
Claims (44)
1. Nachrichtenspeicher, umfassend:
eine Vielzahl von Datenspeicherplätzen auf Seitenbasis, wobei sich jeder Datenspeicherplatz zum Aufnehmen einer Vielzahl von Nachrichten eignet;
eine Indexdatei auf Seitenbasis mit einer oder mehreren Indexdateiseiten, wobei sich jede Indexdateiseite der Indexdatei zum Aufnehmen einer Vielzahl von Indexdateizellen eignet, wobei jede Indexdateizelle angeordnet ist, um Indexinformationen zu speichern, die eine zugehörige der Nachrichten kennzeichnen; und
ein Indexverzeichnis auf Seitenbasis mit einer oder mehreren Indexverzeichnisseiten, wobei sich jede Indexverzeichnisseite des Indexverzeichnisses zum Aufnehmen einer Vielzahl von Indexverzeichniszellen eignet, wobei jede Indexverzeichniszelle angeordnet ist, um Verzeichnisinformationen zu speichern, die zum Auffinden einer zugehörigen Indexdateizelle geeignet sind und dadurch der speziellen Nachricht zugeordnet werden, die der Indexdateizelle zugeordnet ist.
eine Vielzahl von Datenspeicherplätzen auf Seitenbasis, wobei sich jeder Datenspeicherplatz zum Aufnehmen einer Vielzahl von Nachrichten eignet;
eine Indexdatei auf Seitenbasis mit einer oder mehreren Indexdateiseiten, wobei sich jede Indexdateiseite der Indexdatei zum Aufnehmen einer Vielzahl von Indexdateizellen eignet, wobei jede Indexdateizelle angeordnet ist, um Indexinformationen zu speichern, die eine zugehörige der Nachrichten kennzeichnen; und
ein Indexverzeichnis auf Seitenbasis mit einer oder mehreren Indexverzeichnisseiten, wobei sich jede Indexverzeichnisseite des Indexverzeichnisses zum Aufnehmen einer Vielzahl von Indexverzeichniszellen eignet, wobei jede Indexverzeichniszelle angeordnet ist, um Verzeichnisinformationen zu speichern, die zum Auffinden einer zugehörigen Indexdateizelle geeignet sind und dadurch der speziellen Nachricht zugeordnet werden, die der Indexdateizelle zugeordnet ist.
2. Nachrichtenspeicher nach Anspruch 1, welcher ferner
eine Vielzahl von Benutzerordnern auf Seitenbasis umfaßt,
wobei jeder Benutzerordner einem Benutzer zugeordnet ist
und sich zum Enthalten einer Vielzahl von Benutzerzellen
eignet, wobei jede Benutzerzelle angeordnet ist, um auf
eine dem Benutzer zugeordnete Nachricht zu verweisen.
3. Nachrichtenspeicher nach Anspruch 2, wobei jede
Benutzerzelle einen ersten Indexverzeichnis-Verweiszeiger
zu einer Indexverzeichniszelle enthält, die eine solche
Benutzerzelle mit ihrer gekennzeichneten Nachricht in
Zusammenhang bringt.
4. Nachrichtenspeicher nach Anspruch 2 oder 3, wobei jede
Benutzerzelle ferner einen Benutzerordner-Identifikator
enthält, der anzeigt, welcher Benutzerordner die
Benutzerzelle enthält.
5. Nachrichtenspeicher nach Anspruch 2 oder 3, wobei jede
Benutzerzelle ferner einen Empfangszeitpunkt enthält, der
den Zeitpunkt angibt, zu dem eine gekennzeichnete Nachricht
im Nachrichtenspeicher eintrifft.
6. Nachrichtenspeicher nach Anspruch 2, wobei jeder
Benutzerordner einen Gesamtgrößenwert enthält, der die
Größe der Nachricht angibt.
7. Nachrichtenspeicher nach Anspruch 2 oder 6, wobei
jeder Benutzerordner ferner einen nächsten eindeutigen
Identifikator zum Identifizieren einer neuen Benutzerzelle
enthält.
8. Nachrichtenspeicher nach Anspruch 2, 6 oder 7, wobei
jeder Benutzerordner ferner ein letztes Schreibdatum
enthält, das das Datum angibt, an dem die vom
Benutzerordner gekennzeichnete neueste Nachricht in den
Nachrichtenspeicher geschrieben wurde.
9. Nachrichtenspeicher nach Anspruch 2 oder 6, wobei
jeder Benutzerordner ferner einen Nachrichtenzählstand
enthält, der die Anzahl der im Benutzerordner
gekennzeichneten Nachrichten anzeigt.
10. Nachrichtenspeicher nach Anspruch 1, wobei jeder
Datenspeicherplatzseite, jeder Indexdateiseite und jeder
Indexverzeichnisseite eine vorbestimmte Zeitdauer
zugeordnet ist.
11. Nachrichtenspeicher nach Anspruch 1, wobei jede
Indexverzeichniszelle einen Bezugszähler enthält, der die
Anzahl der Benutzer anzeigt, die gegenwärtig auf die
zugehörige Nachricht Bezug haben.
12. Nachrichtenspeicher nach Anspruch 1, wobei jede
Indexverzeichniszelle einen ersten Indexdatei-Verweiszeiger
zu einer zugehörigen Indexdateizelle enthält.
13. Nachrichtenspeicher nach Anspruch 12, wobei der erste
Indexdatei-Verweiszeiger einen Indexdatei-Relativzeiger,
der eine Stelle der Indexdateizelle in der Indexdatei
anzeigt, und eine zugehörige Indexdateizellengröße, die die
Größe der Indexdateizelle anzeigt, umfaßt.
14. Nachrichtenspeicher nach Anspruch 1, welcher ferner
einen Indexverzeichnis-Anfangsblock mit einem
Zellenanzahlzähler, der die Anzahl der
Indexverzeichniszellen in einer speziellen
Indexverzeichnisseite anzeigt, umfaßt.
15. Nachrichtenspeicher nach Anspruch 14, wobei der
Indexverzeichnis-Anfangsblock ferner eine nächste Stelle
umfaßt, die eine Stelle im Indexverzeichnis für eine neue
Indexverzeichniszelle anzeigt.
16. Nachrichtenspeicher nach Anspruch 15, wobei der
Indexverzeichnis-Anfangsblock ferner einen
Datenspeicherplatzzähler umfaßt, der die Anzahl der von
einer Indexverzeichnisseite genutzten Datenspeicherplätze
anzeigt.
17. Nachrichtenspeicher nach Anspruch 1, wobei jede
Indexdateizelle eine Indexdateizellengröße enthält, die die
Größe der Indexdateizelle anzeigt, wodurch die interne
Konsistenzprüfung erleichtert wird.
18. Nachrichtenspeicher nach Anspruch 1 oder 17, wobei
jede Indexdateizelle einen Nachrichtenzeiger zur
zugehörigen Nachricht im zugehörigen Datenspeicherplatz
enthält.
19. Nachrichtenspeicher nach Anspruch 18, wobei der
Nachrichtenzeiger einen Datenspeicherplatz-Identifikator,
der einen Datenspeicherplatz identifiziert, welcher die
zugehörige Nachricht enthält, und einen Datenspeicherplatz-
Relativzeiger, der eine Stelle der zugehörigen Nachricht im
identifizierten Datenspeicherplatz anzeigt, umfaßt.
20. Nachrichtenspeicher nach Anspruch 1, wobei jede
Indexdateizelle eine zugehörige Nachrichtengröße umfaßt.
21. Nachrichtenspeicher nach Anspruch 1, 17, 18 oder 20,
wobei jede Indexdateizelle eine zugehörige
Nachrichtenabschnitt-Relativzeigerliste umfaßt, die die
Stellen der Nachrichtenabschnitte in einem zugehörigen
Datenspeicherplatz anzeigt.
22. Nachrichtenspeicher nach Anspruch 1, wobei eine
Nachricht aus Präambeldaten und Nachrichtendaten besteht,
wobei die Nachrichtendaten von einem Benutzer übertragene
eigentliche Daten umfassen.
23. Nachrichtenspeicher nach Anspruch 22, wobei:
die Präambeldaten eine Nachrichtengröße umfassen, die die Größe der Nachricht angibt; und
die Präambeldaten einen zweiten Indexdatei- Verweiszeiger zu einer zugehörigen Indexdateizelle umfassen.
die Präambeldaten eine Nachrichtengröße umfassen, die die Größe der Nachricht angibt; und
die Präambeldaten einen zweiten Indexdatei- Verweiszeiger zu einer zugehörigen Indexdateizelle umfassen.
24. Nachrichtenspeicher nach Anspruch 22 oder 23, wobei
die Präambeldaten einen zweiten Indexverzeichnis-
Verweiszeiger zu einer zugehörigen Indexverzeichniszelle
umfassen.
25. Nachrichtenspeicher nach Anspruch 24, welcher ferner
umfaßt:
einen ersten Indexverzeichnis-Verweiszeiger in einer Benutzerzelle;
einen ersten Indexdatei-Verweiszeiger in einer Indexverzeichniszelle;
einen zweiten Indexdatei-Verweiszeiger in der Nachricht; und
einen Nachrichtenzeiger in der Indexdateizelle;
wobei solche Zeiger in Kombination mit dem zweiten Indexverzeichnis-Verweiszeiger in den Präambeldaten ermöglichen, daß der Nachrichtenspeicher eine interne Konsistenzprüfung durchführt und bei Bedarf Seiten des Nachrichtenspeichers rekonstruiert.
einen ersten Indexverzeichnis-Verweiszeiger in einer Benutzerzelle;
einen ersten Indexdatei-Verweiszeiger in einer Indexverzeichniszelle;
einen zweiten Indexdatei-Verweiszeiger in der Nachricht; und
einen Nachrichtenzeiger in der Indexdateizelle;
wobei solche Zeiger in Kombination mit dem zweiten Indexverzeichnis-Verweiszeiger in den Präambeldaten ermöglichen, daß der Nachrichtenspeicher eine interne Konsistenzprüfung durchführt und bei Bedarf Seiten des Nachrichtenspeichers rekonstruiert.
26. Nachrichtenspeicher nach Anspruch 24, welcher ferner
umfaßt:
einen ersten Indexdatei-Verweiszeiger in einer Indexverzeichniszelle;
einen Nachrichtenzeiger in der Indexdateizelle; und
einen zweiten Indexdatei-Verweiszeiger in der Nachricht;
wobei solche Zeiger in Kombination mit dem zweiten Indexverzeichnis-Verweiszeiger in den Präambeldaten einen geschlossenen Bezugsmechanismus innerhalb der Datenspeicherplätze, der Indexdatei und des Indexverzeichnisses bilden.
einen ersten Indexdatei-Verweiszeiger in einer Indexverzeichniszelle;
einen Nachrichtenzeiger in der Indexdateizelle; und
einen zweiten Indexdatei-Verweiszeiger in der Nachricht;
wobei solche Zeiger in Kombination mit dem zweiten Indexverzeichnis-Verweiszeiger in den Präambeldaten einen geschlossenen Bezugsmechanismus innerhalb der Datenspeicherplätze, der Indexdatei und des Indexverzeichnisses bilden.
27. Nachrichtenspeicher nach Anspruch 22, 23 oder 24,
wobei die Präambeldaten einen Nachrichtensendernamen und
einen Empfängerzählstand umfassen, wobei der
Empfängerzählstand die Anzahl der Benutzer angibt, die auf
die Nachricht Bezug haben.
28. Verfahren zum Speichern einer eingehenden Nachricht in
einem Nachrichtenspeicher, wobei das Verfahren umfaßt:
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden, wobei zumindest etwas der Indexierung ausgeführt wird, während die eingehende Nachricht an den Datenspeicherplatz angehängt wird; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden, wobei zumindest etwas der Indexierung ausgeführt wird, während die eingehende Nachricht an den Datenspeicherplatz angehängt wird; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
29. Verfahren nach Anspruch 28, wobei die eingehende
Nachricht an den Datenspeicherplatzteil des
Nachrichtenspeichers ohne wesentliche Behinderung des
Zugriffs auf existierende Indexnachrichten in dem
Nachrichtenspeicher angehängt wird.
30. Verfahren nach Anspruch 28 oder 29, wobei die
Indexierung der eingehenden Nachricht ferner das Erhalten
von Daten im Datenspeicherplatzteil des
Nachrichtenspeichers zum Einschluß in die Indexdaten
umfaßt.
31. Verfahren nach Anspruch 28, 29 oder 30, welches ferner
die Beschränkung des Zugriffs auf einen ungenutzten
Abschnitt des Datenspeicherplatzteils des
Nachrichtenspeichers, während die eingehende Nachricht an
den Datenspeicherplatzteil des Nachrichtenspeichers
angehängt wird, umfaßt.
32. Verfahren zum Speichern einer eingehenden Nachricht in
einem Nachrichtenspeicher, wobei das Verfahren umfaßt:
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers ohne wesentliche Behinderung des Zugriffs auf existierende Nachrichten in dem Nachrichtenspeicher;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers ohne wesentliche Behinderung des Zugriffs auf existierende Nachrichten in dem Nachrichtenspeicher;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
33. Verfahren nach Anspruch 32, wobei zumindest etwas der
Indexierung ausgeführt wird, während die eingehende
Nachricht an den Datenspeicherplatzteil des
Nachrichtenspeichers angehängt wird.
34. Verfahren nach Anspruch 32 oder 33, welches ferner die
Beschränkung des Zugriffs auf einen ungenutzten Abschnitt
des Datenspeicherplatzteils, während die eingehende
Nachricht an den Datenspeicherplatzteil des
Nachrichtenspeichers angehängt wird, umfaßt.
35. Verfahren nach Anspruch 32, 33 oder 34, wobei die
Indexierung der eingehenden Nachricht ferner das Erhalten
von Daten im Datenspeicherplatzteil des
Nachrichtenspeichers zum Einschluß in die Indexdaten
umfaßt.
36. Maschinenlesbares Medium, auf dem ein
Nachrichtenspeicher verkörpert ist, wobei der
Nachrichtenspeicher aus folgendem besteht:
einer Vielzahl von Datenspeicherplätzen auf Seitenbasis, wobei sich jeder Datenspeicherplatz zum Aufnehmen einer Vielzahl von Nachrichten eignet;
einer Indexdatei auf Seitenbasis, wobei sich jede Seite der Indexdatei zum Aufnehmen einer Vielzahl von Indexdateizellen eignet, wobei jede Indexdateizelle angeordnet ist, um Indexinformationen zu speichern, die eine zugehörige der Nachrichten kennzeichnen; und
einem Indexverzeichnis auf Seitenbasis, wobei sich jede Seite des Indexverzeichnisses zum Enthalten einer Vielzahl von Indexverzeichniszellen eignet, wobei jede Indexverzeichniszelle angeordnet ist, um Verzeichnisinformationen zu speichern, die zum Auffinden einer zugehörigen Indexdateizelle geeignet sind und dadurch einer speziellen Nachricht zugeordnet werden, die der Indexdateizelle zugeordnet ist.
einer Vielzahl von Datenspeicherplätzen auf Seitenbasis, wobei sich jeder Datenspeicherplatz zum Aufnehmen einer Vielzahl von Nachrichten eignet;
einer Indexdatei auf Seitenbasis, wobei sich jede Seite der Indexdatei zum Aufnehmen einer Vielzahl von Indexdateizellen eignet, wobei jede Indexdateizelle angeordnet ist, um Indexinformationen zu speichern, die eine zugehörige der Nachrichten kennzeichnen; und
einem Indexverzeichnis auf Seitenbasis, wobei sich jede Seite des Indexverzeichnisses zum Enthalten einer Vielzahl von Indexverzeichniszellen eignet, wobei jede Indexverzeichniszelle angeordnet ist, um Verzeichnisinformationen zu speichern, die zum Auffinden einer zugehörigen Indexdateizelle geeignet sind und dadurch einer speziellen Nachricht zugeordnet werden, die der Indexdateizelle zugeordnet ist.
37. Maschinenlesbares Medium nach Anspruch 36, welches
ferner umfaßt:
eine Vielzahl von Benutzerordnern auf Seitenbasis, wobei jeder Benutzerordner einem Benutzer zugeordnet ist und sich zum Enthalten einer Vielzahl von Benutzerzellen eignet, wobei jede Benutzerzelle angeordnet ist, um auf eine dem Benutzer zugeordnete Nachricht im Nachrichtenspeicher zu verweisen.
eine Vielzahl von Benutzerordnern auf Seitenbasis, wobei jeder Benutzerordner einem Benutzer zugeordnet ist und sich zum Enthalten einer Vielzahl von Benutzerzellen eignet, wobei jede Benutzerzelle angeordnet ist, um auf eine dem Benutzer zugeordnete Nachricht im Nachrichtenspeicher zu verweisen.
38. Maschinenlesbares Medium nach Anspruch 37, wobei jede
Benutzerzelle einen ersten Indexverzeichnis-Verweiszeiger
zu einer Indexverzeichniszelle enthält, wodurch eine solche
Benutzerzelle mit ihrer gekennzeichneten Nachricht in
Zusammenhang gebracht wird.
39. Maschinenlesbares Medium nach Anspruch 37 oder 38,
wobei jede Benutzerzelle ferner einen Benutzerordner-
Identifikator enthält, der anzeigt, welcher Benutzerordner
die Benutzerzelle enthält.
40. Maschinenlesbares Medium, das Programmieranweisungen
zum Speichern einer eingehenden Nachricht in einem
Nachrichtenspeicher enthält, wobei das maschinenlesbare
Medium Computerprogrammcode-Einrichtungen umfaßt, die dazu
ausgelegt sind, einen Computer zu veranlassen, die
folgenden Schritte auszuführen:
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden, wobei zumindest etwas der Indexierung ausgeführt wird, während die eingehende Nachricht an den Datenspeicherplatz angehängt wird; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden, wobei zumindest etwas der Indexierung ausgeführt wird, während die eingehende Nachricht an den Datenspeicherplatz angehängt wird; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
41. Maschinenlesbares Medium nach Anspruch 40, welches
ferner Computerprogrammcode-Einrichtungen umfaßt, die dazu
ausgelegt sind, einen Computer zu veranlassen, den Schritt
der Beschränkung des Zugriffs auf einen ungenutzten
Abschnitt des Datenspeicherplatzteils des
Nachrichtenspeichers auszuführen, während die eingehende
Nachricht an den Datenspeicherplatzteil des
Nachrichtenspeichers angehängt wird.
42. Maschinenlesbares Medium, das Programmieranweisungen
zum Speichern einer eingehenden Nachricht in einem
Nachrichtenspeicher enthält, wobei das maschinenlesbare
Medium Computerprogrammcode-Einrichtungen umfaßt, die dazu
ausgelegt sind, einen Computer zu veranlassen, die
folgenden Schritte auszuführen:
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers ohne wesentliche Behinderung des Zugriffs auf existierende Nachrichten in dem Nachrichtenspeicher;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers ohne wesentliche Behinderung des Zugriffs auf existierende Nachrichten in dem Nachrichtenspeicher;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
43. Computer-Datensignal, das in einer Trägerwelle
verkörpert ist und Sequenzen von Anweisungen darstellt, die
bei Ausführung durch einen Prozessor den Prozessor
veranlassen, eine eingehende Nachricht in einem
Nachrichtenspeicher zu speichern durch Ausführen der
Schritte:
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden, wobei zumindest etwas der Indexierung ausgeführt wird, während die eingehende Nachricht an den Datenspeicherplatz angehängt wird; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden, wobei zumindest etwas der Indexierung ausgeführt wird, während die eingehende Nachricht an den Datenspeicherplatz angehängt wird; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
44. Computer-Datensignal, das in einer Trägerwelle
verkörpert ist und Sequenzen von Anweisungen darstellt, die
bei Ausführung durch einen Prozessor den Prozessor
veranlassen, eine eingehende Nachricht in einem
Nachrichtenspeicher zu speichern durch Ausführen der
Schritte:
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers ohne wesentliche Behinderung des Zugriffs auf existierende Nachrichten in dem Nachrichtenspeicher;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
Anhängen der eingehenden Nachricht an einen Datenspeicherplatzteil des Nachrichtenspeichers ohne wesentliche Behinderung des Zugriffs auf existierende Nachrichten in dem Nachrichtenspeicher;
Indexieren der eingehenden Nachricht, wodurch Indexdaten erzeugt werden; und
Anhängen der Indexdaten an einen Indexteil des Nachrichtenspeichers.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/067,537 US6167402A (en) | 1998-04-27 | 1998-04-27 | High performance message store |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19919146A1 true DE19919146A1 (de) | 1999-10-28 |
Family
ID=22076668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19919146A Withdrawn DE19919146A1 (de) | 1998-04-27 | 1999-04-27 | Hochleistungs-Nachrichtenspeicher |
Country Status (4)
Country | Link |
---|---|
US (1) | US6167402A (de) |
JP (1) | JP2000003321A (de) |
DE (1) | DE19919146A1 (de) |
GB (1) | GB2340269B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8103829B2 (en) * | 2003-06-25 | 2012-01-24 | Commvault Systems, Inc. | Hierarchical systems and methods for performing storage operations in a computer network |
Families Citing this family (359)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418478B1 (en) | 1997-10-30 | 2002-07-09 | Commvault Systems, Inc. | Pipelined high speed data transfer mechanism |
US7581077B2 (en) | 1997-10-30 | 2009-08-25 | Commvault Systems, Inc. | Method and system for transferring data in a storage operation |
US7209972B1 (en) | 1997-10-30 | 2007-04-24 | Commvault Systems, Inc. | High speed data transfer mechanism |
US7277941B2 (en) | 1998-03-11 | 2007-10-02 | Commvault Systems, Inc. | System and method for providing encryption in a storage network by storing a secured encryption key with encrypted archive data in an archive storage device |
US7739381B2 (en) | 1998-03-11 | 2010-06-15 | Commvault Systems, Inc. | System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services |
US6735770B1 (en) * | 1998-04-27 | 2004-05-11 | Sun Microsystems, Inc. | Method and apparatus for high performance access to data in a message store |
US6330589B1 (en) * | 1998-05-26 | 2001-12-11 | Microsoft Corporation | System and method for using a client database to manage conversation threads generated from email or news messages |
US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
US8234477B2 (en) | 1998-07-31 | 2012-07-31 | Kom Networks, Inc. | Method and system for providing restricted access to a storage medium |
US6321276B1 (en) | 1998-08-04 | 2001-11-20 | Microsoft Corporation | Recoverable methods and systems for processing input/output requests including virtual memory addresses |
US6360220B1 (en) * | 1998-08-04 | 2002-03-19 | Microsoft Corporation | Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries |
US6594701B1 (en) | 1998-08-04 | 2003-07-15 | Microsoft Corporation | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data |
US6442600B1 (en) * | 1999-01-15 | 2002-08-27 | Micron Technology, Inc. | Method and system for centralized storage and management of electronic messages |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
US7395282B1 (en) | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US7389311B1 (en) | 1999-07-15 | 2008-06-17 | Commvault Systems, Inc. | Modular backup and retrieval system |
US6526413B2 (en) * | 1999-09-28 | 2003-02-25 | Microsoft Corporation | Architecture for a hierarchical folder structure in hand-held computers |
US6606649B1 (en) | 1999-09-28 | 2003-08-12 | Microsoft Corporation | Application programming interface functions for supporting an improved message store for hand-held computers |
DE19959528B4 (de) * | 1999-12-09 | 2011-08-18 | IPCom GmbH & Co. KG, 82049 | Verfahren zur Übertragung von elektronischen Postnachrichten |
JP5072160B2 (ja) * | 2000-01-12 | 2012-11-14 | ネットレイティングス・インコーポレーティッド | ワールドワイドウェブのディジタルコンテントの普及を見積もるシステム及び方法 |
US6658436B2 (en) | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US7434219B2 (en) | 2000-01-31 | 2008-10-07 | Commvault Systems, Inc. | Storage of application specific profiles correlating to document versions |
US7003641B2 (en) | 2000-01-31 | 2006-02-21 | Commvault Systems, Inc. | Logical view with granular access to exchange data managed by a modular data and storage management system |
US7155481B2 (en) * | 2000-01-31 | 2006-12-26 | Commvault Systems, Inc. | Email attachment management in a computer system |
GB2359155A (en) | 2000-02-11 | 2001-08-15 | Nokia Mobile Phones Ltd | Memory management of acoustic samples eg voice memos |
US6857008B1 (en) * | 2000-04-19 | 2005-02-15 | Cisco Technology, Inc. | Arrangement for accessing an IP-based messaging server by telephone for management of stored messages |
US7577834B1 (en) * | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
JP3723422B2 (ja) | 2000-07-11 | 2005-12-07 | 三洋電機株式会社 | 携帯端末機 |
US7603415B1 (en) | 2000-08-15 | 2009-10-13 | ART Technology Group | Classification of electronic messages using a hierarchy of rule sets |
US20030208567A1 (en) * | 2000-08-29 | 2003-11-06 | Gross Mark T. | Configuration of network appliances via e-mail |
US7024462B1 (en) * | 2000-10-20 | 2006-04-04 | Amacis Limited | Electronic message routing |
US6725228B1 (en) * | 2000-10-31 | 2004-04-20 | David Morley Clark | System for managing and organizing stored electronic messages |
US7627830B1 (en) * | 2000-10-31 | 2009-12-01 | Aol Llc, A Delaware Limited Liability Company | Click-to-add, jot-it-down, and add banner |
US6898592B2 (en) | 2000-12-27 | 2005-05-24 | Microsoft Corporation | Scoping queries in a search engine |
CA2433525A1 (en) * | 2001-02-12 | 2002-08-22 | Legato Systems, Inc. | System and method of indexing unique electronic mail messages and uses for the same |
US6965904B2 (en) | 2001-03-02 | 2005-11-15 | Zantaz, Inc. | Query Service for electronic documents archived in a multi-dimensional storage space |
US7284271B2 (en) | 2001-03-14 | 2007-10-16 | Microsoft Corporation | Authorizing a requesting entity to operate upon data structures |
US6985958B2 (en) * | 2001-03-14 | 2006-01-10 | Microsoft Corporation | Messaging infrastructure for identity-centric data access |
US7539747B2 (en) | 2001-03-14 | 2009-05-26 | Microsoft Corporation | Schema-based context service |
US7302634B2 (en) | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
US7024662B2 (en) | 2001-03-14 | 2006-04-04 | Microsoft Corporation | Executing dynamically assigned functions while providing services |
US6826576B2 (en) * | 2001-05-07 | 2004-11-30 | Microsoft Corporation | Very-large-scale automatic categorizer for web content |
US20030028587A1 (en) * | 2001-05-11 | 2003-02-06 | Driscoll Michael C. | System and method for accessing and storing data in a common network architecture |
EP1280298A1 (de) * | 2001-07-26 | 2003-01-29 | BRITISH TELECOMMUNICATIONS public limited company | Verfahren und Vorrichtung zum Detektieren von Netzwerkaktivitäten |
EP1442387A4 (de) * | 2001-09-28 | 2008-01-23 | Commvault Systems Inc | System und verfahren zur archivierung von objekten in einem informationsspeicher |
JP2005505045A (ja) | 2001-09-28 | 2005-02-17 | コムヴォールト・システムズ・インコーポレーテッド | クイックリカバリボリュームを作成及び管理する方法及び装置 |
US20030069892A1 (en) * | 2001-10-10 | 2003-04-10 | International Business Machines Corporation | Relational view of electronic objects |
US7343407B2 (en) * | 2001-10-15 | 2008-03-11 | Ricoh Company, Ltd. | Method and system of remote monitoring and support of devices, including handling Email messages having message types specified within the Email message |
US7596586B2 (en) | 2003-04-03 | 2009-09-29 | Commvault Systems, Inc. | System and method for extended media retention |
US8346733B2 (en) | 2006-12-22 | 2013-01-01 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library |
US7603518B2 (en) | 2005-12-19 | 2009-10-13 | Commvault Systems, Inc. | System and method for improved media identification in a storage device |
WO2003046721A1 (en) * | 2001-11-23 | 2003-06-05 | Commvault Systems, Inc. | Selective data replication system and method |
US7584227B2 (en) * | 2005-12-19 | 2009-09-01 | Commvault Systems, Inc. | System and method for containerized data storage and tracking |
US20030101155A1 (en) * | 2001-11-23 | 2003-05-29 | Parag Gokhale | Method and system for scheduling media exports |
US9886309B2 (en) | 2002-06-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Identity-based distributed computing for device resources |
US8150922B2 (en) * | 2002-07-17 | 2012-04-03 | Research In Motion Limited | Voice and text group chat display management techniques for wireless mobile terminals |
US7640293B2 (en) * | 2002-07-17 | 2009-12-29 | Research In Motion Limited | Method, system and apparatus for messaging between wireless mobile terminals and networked computers |
US7305430B2 (en) * | 2002-08-01 | 2007-12-04 | International Business Machines Corporation | Reducing data storage requirements on mail servers |
JP4170702B2 (ja) * | 2002-08-05 | 2008-10-22 | 株式会社Pfu | ファイル管理システム並びにプログラム |
US20060010209A1 (en) * | 2002-08-07 | 2006-01-12 | Hodgson Paul W | Server for sending electronics messages |
AU2003270482A1 (en) * | 2002-09-09 | 2004-03-29 | Commvault Systems, Inc. | Dynamic storage device pooling in a computer system |
CA2499073C (en) | 2002-09-16 | 2013-07-23 | Commvault Systems, Inc. | Combined stream auxiliary copy system and method |
AU2003272457A1 (en) | 2002-09-16 | 2004-04-30 | Commvault Systems, Inc. | System and method for blind media support |
US7568080B2 (en) | 2002-10-07 | 2009-07-28 | Commvault Systems, Inc. | Snapshot storage and management system with indexing and user interface |
JP2004145569A (ja) * | 2002-10-23 | 2004-05-20 | Internatl Business Mach Corp <Ibm> | 文書表示システム、文書表示方法、およびプログラム |
US7613773B2 (en) * | 2002-12-31 | 2009-11-03 | Rensselaer Polytechnic Institute | Asynchronous network audio/visual collaboration system |
US7366760B2 (en) * | 2003-01-03 | 2008-04-29 | Microsoft Corporation | System and method for improved client server communications of email messages |
US7386590B2 (en) | 2003-01-03 | 2008-06-10 | Microsoft Corporation | System and method for improved synchronization between a server and a client |
US7620688B2 (en) * | 2003-01-03 | 2009-11-17 | Microsoft Corporation | Progress mode for electronic mail component |
WO2004090676A2 (en) * | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | Remote disaster data recovery system and method |
US7174433B2 (en) | 2003-04-03 | 2007-02-06 | Commvault Systems, Inc. | System and method for dynamically sharing media in a computer network |
WO2004090872A2 (en) * | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | Method and system for controlling a robotic arm in a storage device |
US7631351B2 (en) * | 2003-04-03 | 2009-12-08 | Commvault Systems, Inc. | System and method for performing storage operations through a firewall |
US20040215724A1 (en) * | 2003-04-28 | 2004-10-28 | Microsoft Corporation | Email service error recovery |
US7673000B2 (en) * | 2003-04-28 | 2010-03-02 | Microsoft Corporation | Email service |
US6973654B1 (en) | 2003-05-27 | 2005-12-06 | Microsoft Corporation | Systems and methods for the repartitioning of data |
US20050039048A1 (en) * | 2003-08-07 | 2005-02-17 | Sierra Wireless, Inc. A Canadian Corp. | Efficient new e-mail discovery |
US7584264B2 (en) * | 2003-08-19 | 2009-09-01 | Google Inc. | Data storage and retrieval systems and related methods of storing and retrieving data |
US7315923B2 (en) * | 2003-11-13 | 2008-01-01 | Commvault Systems, Inc. | System and method for combining data streams in pipelined storage operations in a storage network |
GB2425198B (en) | 2003-11-13 | 2008-04-09 | Commvault Systems Inc | System and method for performing a snapshot |
US7734578B2 (en) * | 2003-11-13 | 2010-06-08 | Comm Vault Systems, Inc. | System and method for performing integrated storage operations |
US7546324B2 (en) | 2003-11-13 | 2009-06-09 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
US20050174869A1 (en) * | 2003-11-13 | 2005-08-11 | Rajiv Kottomtharayil | System and method for data storage and tracking |
US7613748B2 (en) | 2003-11-13 | 2009-11-03 | Commvault Systems, Inc. | Stored data reverification management system and method |
US7440982B2 (en) | 2003-11-13 | 2008-10-21 | Commvault Systems, Inc. | System and method for stored data archive verification |
US20050198166A1 (en) * | 2003-11-14 | 2005-09-08 | Matsushita Electric Industrial Co., Ltd. | Mail program, e-mail device, and method for managing e-mail messages |
US7779386B2 (en) | 2003-12-08 | 2010-08-17 | Ebay Inc. | Method and system to automatically regenerate software code |
US8086671B2 (en) * | 2004-02-11 | 2011-12-27 | Microsoft Corporation | Systems and methods that facilitate in-order serial processing of related messages |
EP1763755A4 (de) | 2004-04-30 | 2010-04-14 | Commvault Systems Inc | Hierarchische systeme und verfahren zur bereitstellung einer vereinigten sicht von speicherinformationen |
US8266406B2 (en) | 2004-04-30 | 2012-09-11 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US7606793B2 (en) | 2004-09-27 | 2009-10-20 | Microsoft Corporation | System and method for scoping searches using index keys |
US8103723B1 (en) | 2004-10-07 | 2012-01-24 | Google Inc. | Message server that retains messages deleted by one client application for access by another client application |
WO2006053084A2 (en) * | 2004-11-05 | 2006-05-18 | Commvault Systems, Inc. | Method and system of pooling storage devices |
US7536291B1 (en) | 2004-11-08 | 2009-05-19 | Commvault Systems, Inc. | System and method to support simulated storage operations |
US8775823B2 (en) | 2006-12-29 | 2014-07-08 | Commvault Systems, Inc. | System and method for encrypting secondary copies of data |
US8959299B2 (en) | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US8055715B2 (en) * | 2005-02-01 | 2011-11-08 | i365 MetaLINCS | Thread identification and classification |
US8112605B2 (en) | 2005-05-02 | 2012-02-07 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US7882181B2 (en) * | 2005-06-03 | 2011-02-01 | Microsoft Corporation | Minimizing data transfer from POP3 servers |
US8380682B2 (en) | 2005-08-10 | 2013-02-19 | International Business Machines Corporation | Indexing and searching of electronic message transmission thread sets |
US7565347B2 (en) * | 2005-08-10 | 2009-07-21 | International Business Machines Corporation | Indexing and searching of electronic message transmission thread sets |
US7602906B2 (en) * | 2005-08-25 | 2009-10-13 | Microsoft Corporation | Cipher for disk encryption |
US7562087B2 (en) * | 2005-09-30 | 2009-07-14 | Computer Associates Think, Inc. | Method and system for processing directory operations |
US7711700B2 (en) | 2005-11-28 | 2010-05-04 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US20070185926A1 (en) | 2005-11-28 | 2007-08-09 | Anand Prahlad | Systems and methods for classifying and transferring information in a storage network |
US20090132490A1 (en) * | 2005-11-29 | 2009-05-21 | Coolrock Software Pty.Ltd. | Method and apparatus for storing and distributing electronic mail |
US7617253B2 (en) * | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Destination systems and methods for performing data replication |
US7543125B2 (en) | 2005-12-19 | 2009-06-02 | Commvault Systems, Inc. | System and method for performing time-flexible calendric storage operations |
US7620710B2 (en) | 2005-12-19 | 2009-11-17 | Commvault Systems, Inc. | System and method for performing multi-path storage operations |
US7636743B2 (en) * | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US7962709B2 (en) | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US20070166674A1 (en) * | 2005-12-19 | 2007-07-19 | Kochunni Jaidev O | Systems and methods for generating configuration metrics in a storage network |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
CA2632935C (en) * | 2005-12-19 | 2014-02-04 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7651593B2 (en) * | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US8572330B2 (en) | 2005-12-19 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for granular resource management in a storage network |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US20110010518A1 (en) | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
US8655850B2 (en) | 2005-12-19 | 2014-02-18 | Commvault Systems, Inc. | Systems and methods for resynchronizing information |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
EP1974490A4 (de) | 2005-12-19 | 2012-01-18 | Commvault Systems Inc | System und verfahren zur bereitstellung eines flexiblen lizensierungssystems für digitalen inhalt |
US7617262B2 (en) | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
US7457790B2 (en) | 2005-12-19 | 2008-11-25 | Commvault Systems, Inc. | Extensible configuration engine system and method |
US8098295B2 (en) * | 2006-03-06 | 2012-01-17 | Given Imaging Ltd. | In-vivo imaging system device and method with image stream construction using a raw images |
US8028025B2 (en) * | 2006-05-18 | 2011-09-27 | International Business Machines Corporation | Apparatus, system, and method for setting/retrieving header information dynamically into/from service data objects for protocol based technology adapters |
KR100711523B1 (ko) * | 2006-06-13 | 2007-04-27 | 삼성전자주식회사 | 휴대용 단말기에서 메시지 관리 장치 및 방법 |
US8726242B2 (en) | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
WO2008036757A2 (en) * | 2006-09-19 | 2008-03-27 | Howard Lutnick | Products and processes for providing information services |
US7539783B2 (en) | 2006-09-22 | 2009-05-26 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library, including removable media |
US7792789B2 (en) | 2006-10-17 | 2010-09-07 | Commvault Systems, Inc. | Method and system for collaborative searching |
US7882077B2 (en) | 2006-10-17 | 2011-02-01 | Commvault Systems, Inc. | Method and system for offline indexing of content and classifying stored data |
US8655914B2 (en) | 2006-10-17 | 2014-02-18 | Commvault Systems, Inc. | System and method for storage operation access security |
US8370442B2 (en) | 2008-08-29 | 2013-02-05 | Commvault Systems, Inc. | Method and system for leveraging identified changes to a mail server |
WO2008070688A1 (en) | 2006-12-04 | 2008-06-12 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
US8677091B2 (en) | 2006-12-18 | 2014-03-18 | Commvault Systems, Inc. | Writing data and storage system specific metadata to network attached storage device |
US8719809B2 (en) | 2006-12-22 | 2014-05-06 | Commvault Systems, Inc. | Point in time rollback and un-installation of software |
US20080228771A1 (en) | 2006-12-22 | 2008-09-18 | Commvault Systems, Inc. | Method and system for searching stored data |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US7831766B2 (en) * | 2006-12-22 | 2010-11-09 | Comm Vault Systems, Inc. | Systems and methods of data storage management, such as pre-allocation of storage space |
US7734669B2 (en) * | 2006-12-22 | 2010-06-08 | Commvault Systems, Inc. | Managing copies of data |
US8312323B2 (en) | 2006-12-22 | 2012-11-13 | Commvault Systems, Inc. | Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved |
US7831566B2 (en) * | 2006-12-22 | 2010-11-09 | Commvault Systems, Inc. | Systems and methods of hierarchical storage management, such as global management of storage operations |
US20080155205A1 (en) * | 2006-12-22 | 2008-06-26 | Parag Gokhale | Systems and methods of data storage management, such as dynamic data stream allocation |
US7756536B2 (en) * | 2007-01-31 | 2010-07-13 | Sony Ericsson Mobile Communications Ab | Device and method for providing and displaying animated SMS messages |
US8290808B2 (en) | 2007-03-09 | 2012-10-16 | Commvault Systems, Inc. | System and method for automating customer-validated statement of work for a data storage environment |
CA2695470C (en) | 2007-08-28 | 2014-08-26 | Commvault Systems, Inc. | Power management of data processing resources, such as power adaptive management of data storage operations |
US8706976B2 (en) | 2007-08-30 | 2014-04-22 | Commvault Systems, Inc. | Parallel access virtual tape library and drives |
US8396838B2 (en) | 2007-10-17 | 2013-03-12 | Commvault Systems, Inc. | Legal compliance, electronic discovery and electronic document handling of online and offline copies of data |
US20090182827A1 (en) * | 2007-10-18 | 2009-07-16 | Nokia Corporation | Method and apparatus for the aggregation and indexing of message parts in multipart mime objects |
US9348912B2 (en) | 2007-10-18 | 2016-05-24 | Microsoft Technology Licensing, Llc | Document length as a static relevance feature for ranking search results |
KR100983651B1 (ko) | 2008-01-08 | 2010-09-24 | 주식회사 케이티 | 메시지 저장을 위한 장치 및 방법 |
US7836174B2 (en) | 2008-01-30 | 2010-11-16 | Commvault Systems, Inc. | Systems and methods for grid-based data scanning |
US8296301B2 (en) | 2008-01-30 | 2012-10-23 | Commvault Systems, Inc. | Systems and methods for probabilistic data classification |
US8812493B2 (en) | 2008-04-11 | 2014-08-19 | Microsoft Corporation | Search results ranking using editing distance and document information |
US8769048B2 (en) | 2008-06-18 | 2014-07-01 | Commvault Systems, Inc. | Data protection scheduling, such as providing a flexible backup window in a data protection system |
US9128883B2 (en) | 2008-06-19 | 2015-09-08 | Commvault Systems, Inc | Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail |
US8352954B2 (en) | 2008-06-19 | 2013-01-08 | Commvault Systems, Inc. | Data storage resource allocation by employing dynamic methods and blacklisting resource request pools |
US8661082B2 (en) * | 2008-06-20 | 2014-02-25 | Microsoft Corporation | Extracting previous messages from a later message |
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8219524B2 (en) | 2008-06-24 | 2012-07-10 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8335776B2 (en) | 2008-07-02 | 2012-12-18 | Commvault Systems, Inc. | Distributed indexing system for data storage |
US8166263B2 (en) | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US8725688B2 (en) | 2008-09-05 | 2014-05-13 | Commvault Systems, Inc. | Image level copy or restore, such as image level restore without knowledge of data object metadata |
US20100070474A1 (en) | 2008-09-12 | 2010-03-18 | Lad Kamleshkumar K | Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration |
US20100070466A1 (en) | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
WO2010036754A1 (en) | 2008-09-26 | 2010-04-01 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9178842B2 (en) | 2008-11-05 | 2015-11-03 | Commvault Systems, Inc. | Systems and methods for monitoring messaging applications for compliance with a policy |
US8412677B2 (en) | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8412784B2 (en) | 2009-03-03 | 2013-04-02 | Microsoft Corporation | Storage model for maintaining structured document fidelity |
US8434131B2 (en) | 2009-03-20 | 2013-04-30 | Commvault Systems, Inc. | Managing connections in a data storage system |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US20100333116A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Cloud gateway system for managing data storage to cloud storage sites |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US9092500B2 (en) | 2009-09-03 | 2015-07-28 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
US8719767B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Utilizing snapshots to provide builds to developer computing devices |
US8706867B2 (en) | 2011-03-31 | 2014-04-22 | Commvault Systems, Inc. | Realtime streaming of multimedia content from secondary storage devices |
US8595191B2 (en) | 2009-12-31 | 2013-11-26 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
WO2011082113A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Asynchronous methods of data classification using change journals and other data structures |
WO2011082132A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for analyzing snapshots |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
US8352422B2 (en) | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
US8589347B2 (en) | 2010-05-28 | 2013-11-19 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US8738635B2 (en) | 2010-06-01 | 2014-05-27 | Microsoft Corporation | Detection of junk in search result ranking |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
CN101883181A (zh) * | 2010-06-18 | 2010-11-10 | 中兴通讯股份有限公司 | 处理短消息的方法及终端 |
US8762384B2 (en) * | 2010-08-19 | 2014-06-24 | Sap Aktiengesellschaft | Method and system for search structured data from a natural language search request |
CN102387178A (zh) * | 2010-08-31 | 2012-03-21 | 腾讯科技(深圳)有限公司 | 消息更新的方法和装置 |
US9244779B2 (en) | 2010-09-30 | 2016-01-26 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
EP2622469B1 (de) | 2010-09-30 | 2019-11-13 | Commvault Systems, Inc. | Effiziente datenmanagement-verbesserungen, z. b. andockung von datenmanagementmodulen mit begrenzter funktion an ein datenmanagementsystem mit vollständigen funktionen |
WO2012045023A2 (en) | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US8578109B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US8577851B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US8954446B2 (en) | 2010-12-14 | 2015-02-10 | Comm Vault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US9021198B1 (en) | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
US8849762B2 (en) | 2011-03-31 | 2014-09-30 | Commvault Systems, Inc. | Restoring computing environments, such as autorecovery of file systems at certain points in time |
US8719264B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Creating secondary copies of data based on searches for content |
JP5431408B2 (ja) * | 2011-04-28 | 2014-03-05 | 株式会社日立製作所 | メールシステム |
US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
US9372827B2 (en) | 2011-09-30 | 2016-06-21 | Commvault Systems, Inc. | Migration of an existing computing system to new hardware |
US9116633B2 (en) | 2011-09-30 | 2015-08-25 | Commvault Systems, Inc. | Information management of virtual machines having mapped storage devices |
US9495462B2 (en) | 2012-01-27 | 2016-11-15 | Microsoft Technology Licensing, Llc | Re-ranking search results |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US8950009B2 (en) | 2012-03-30 | 2015-02-03 | Commvault Systems, Inc. | Information management of data associated with multiple cloud services |
US9063938B2 (en) | 2012-03-30 | 2015-06-23 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US9639297B2 (en) | 2012-03-30 | 2017-05-02 | Commvault Systems, Inc | Shared network-available storage that permits concurrent data access |
US9262496B2 (en) | 2012-03-30 | 2016-02-16 | Commvault Systems, Inc. | Unified access to personal data |
US10157184B2 (en) | 2012-03-30 | 2018-12-18 | Commvault Systems, Inc. | Data previewing before recalling large data files |
US9529871B2 (en) | 2012-03-30 | 2016-12-27 | Commvault Systems, Inc. | Information management of mobile device data |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
US20130339310A1 (en) | 2012-06-13 | 2013-12-19 | Commvault Systems, Inc. | Restore using a client side signature repository in a networked storage system |
US9870374B2 (en) | 2012-08-31 | 2018-01-16 | Microsoft Technology Licensing, Llc | Replicating data across data centers |
US10379988B2 (en) | 2012-12-21 | 2019-08-13 | Commvault Systems, Inc. | Systems and methods for performance monitoring |
US20140181038A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods to categorize unprotected virtual machines |
US20140181085A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Data storage system for analysis of data across heterogeneous information management systems |
US9286086B2 (en) | 2012-12-21 | 2016-03-15 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
US9069799B2 (en) | 2012-12-27 | 2015-06-30 | Commvault Systems, Inc. | Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system |
US9633216B2 (en) | 2012-12-27 | 2017-04-25 | Commvault Systems, Inc. | Application of information management policies based on operation with a geographic entity |
US9021452B2 (en) | 2012-12-27 | 2015-04-28 | Commvault Systems, Inc. | Automatic identification of storage requirements, such as for use in selling data storage management solutions |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US9378035B2 (en) | 2012-12-28 | 2016-06-28 | Commvault Systems, Inc. | Systems and methods for repurposing virtual machines |
US10346259B2 (en) | 2012-12-28 | 2019-07-09 | Commvault Systems, Inc. | Data recovery using a cloud-based remote data recovery center |
US20140196039A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine categorization system and method |
US20140201162A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods to restore selected files from block-level backup for virtual machines |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US20140201140A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Data synchronization management |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9286110B2 (en) | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US9459968B2 (en) | 2013-03-11 | 2016-10-04 | Commvault Systems, Inc. | Single index to query multiple backup formats |
US20140281545A1 (en) | 2013-03-12 | 2014-09-18 | Commvault Systems, Inc. | Multi-layer embedded encryption |
US9514217B2 (en) * | 2013-05-31 | 2016-12-06 | Linkedin Corporation | Message index subdivided based on time intervals |
US9939981B2 (en) | 2013-09-12 | 2018-04-10 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system with an enhanced storage manager, including user control and storage management of virtual machines |
US10949382B2 (en) | 2014-01-15 | 2021-03-16 | Commvault Systems, Inc. | User-centric interfaces for information management systems |
CN103699699B (zh) * | 2014-01-16 | 2016-09-28 | 常州工学院 | 一种浏览解码话单文件方法 |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US10169121B2 (en) | 2014-02-27 | 2019-01-01 | Commvault Systems, Inc. | Work flow management for an information management system |
US9648100B2 (en) | 2014-03-05 | 2017-05-09 | Commvault Systems, Inc. | Cross-system storage management for transferring data across autonomous information management systems |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US9811427B2 (en) | 2014-04-02 | 2017-11-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US9823978B2 (en) | 2014-04-16 | 2017-11-21 | Commvault Systems, Inc. | User-level quota management of data objects stored in information management systems |
US9740574B2 (en) | 2014-05-09 | 2017-08-22 | Commvault Systems, Inc. | Load balancing across multiple data paths |
US9848045B2 (en) | 2014-05-27 | 2017-12-19 | Commvault Systems, Inc. | Offline messaging between a repository storage operation cell and remote storage operation cells via an intermediary media agent |
US9760446B2 (en) | 2014-06-11 | 2017-09-12 | Micron Technology, Inc. | Conveying value of implementing an integrated data management and protection system |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US9405928B2 (en) | 2014-09-17 | 2016-08-02 | Commvault Systems, Inc. | Deriving encryption rules based on file content |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9444811B2 (en) | 2014-10-21 | 2016-09-13 | Commvault Systems, Inc. | Using an enhanced data agent to restore backed up data across autonomous storage management systems |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US20160142485A1 (en) | 2014-11-19 | 2016-05-19 | Commvault Systems, Inc. | Migration to cloud storage from backup |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
US9904481B2 (en) | 2015-01-23 | 2018-02-27 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a storage management system using media agent resources |
US9898213B2 (en) | 2015-01-23 | 2018-02-20 | Commvault Systems, Inc. | Scalable auxiliary copy processing using media agent resources |
US10313243B2 (en) | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US10956299B2 (en) | 2015-02-27 | 2021-03-23 | Commvault Systems, Inc. | Diagnosing errors in data storage and archiving in a cloud or networking environment |
US9928144B2 (en) | 2015-03-30 | 2018-03-27 | Commvault Systems, Inc. | Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10311150B2 (en) | 2015-04-10 | 2019-06-04 | Commvault Systems, Inc. | Using a Unix-based file system to manage and serve clones to windows-based computing clients |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US10084873B2 (en) | 2015-06-19 | 2018-09-25 | Commvault Systems, Inc. | Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs |
US9563514B2 (en) | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10101913B2 (en) | 2015-09-02 | 2018-10-16 | Commvault Systems, Inc. | Migrating data to disk without interrupting running backup operations |
US10248494B2 (en) | 2015-10-29 | 2019-04-02 | Commvault Systems, Inc. | Monitoring, diagnosing, and repairing a management database in a data storage management system |
US10061663B2 (en) | 2015-12-30 | 2018-08-28 | Commvault Systems, Inc. | Rebuilding deduplication data in a distributed deduplication data storage system |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10565067B2 (en) | 2016-03-09 | 2020-02-18 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine backup from cloud operations |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US10417102B2 (en) | 2016-09-30 | 2019-09-17 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10389810B2 (en) | 2016-11-02 | 2019-08-20 | Commvault Systems, Inc. | Multi-threaded scanning of distributed file systems |
US10922189B2 (en) | 2016-11-02 | 2021-02-16 | Commvault Systems, Inc. | Historical network data-based scanning thread generation |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US10838821B2 (en) | 2017-02-08 | 2020-11-17 | Commvault Systems, Inc. | Migrating content and metadata from a backup system |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10459666B2 (en) | 2017-03-03 | 2019-10-29 | Commvault Systems, Inc. | Using storage managers in respective data storage management systems for license distribution, compliance, and updates |
US11032350B2 (en) | 2017-03-15 | 2021-06-08 | Commvault Systems, Inc. | Remote commands framework to control clients |
US10949308B2 (en) | 2017-03-15 | 2021-03-16 | Commvault Systems, Inc. | Application aware backup of virtual machines |
US20180276085A1 (en) | 2017-03-24 | 2018-09-27 | Commvault Systems, Inc. | Virtual machine recovery point generation |
US10891069B2 (en) | 2017-03-27 | 2021-01-12 | Commvault Systems, Inc. | Creating local copies of data stored in online data repositories |
US11108858B2 (en) | 2017-03-28 | 2021-08-31 | Commvault Systems, Inc. | Archiving mail servers via a simple mail transfer protocol (SMTP) server |
US10776329B2 (en) | 2017-03-28 | 2020-09-15 | Commvault Systems, Inc. | Migration of a database management system to cloud storage |
US11074140B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Live browsing of granular mailbox data |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
US11074138B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Multi-streaming backup operations for mailboxes |
US11010261B2 (en) | 2017-03-31 | 2021-05-18 | Commvault Systems, Inc. | Dynamically allocating streams during restoration of data |
US11221939B2 (en) | 2017-03-31 | 2022-01-11 | Commvault Systems, Inc. | Managing data from internet of things devices in a vehicle |
US10552294B2 (en) | 2017-03-31 | 2020-02-04 | Commvault Systems, Inc. | Management of internet of things devices |
US10853195B2 (en) | 2017-03-31 | 2020-12-01 | Commvault Systems, Inc. | Granular restoration of virtual machine application data |
US11294786B2 (en) | 2017-03-31 | 2022-04-05 | Commvault Systems, Inc. | Management of internet of things devices |
US10984041B2 (en) | 2017-05-11 | 2021-04-20 | Commvault Systems, Inc. | Natural language processing integrated with database and data storage management |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10742735B2 (en) | 2017-12-12 | 2020-08-11 | Commvault Systems, Inc. | Enhanced network attached storage (NAS) services interfacing to cloud storage |
US10831591B2 (en) | 2018-01-11 | 2020-11-10 | Commvault Systems, Inc. | Remedial action based on maintaining process awareness in data storage management |
US10795927B2 (en) | 2018-02-05 | 2020-10-06 | Commvault Systems, Inc. | On-demand metadata extraction of clinical image data |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US10789387B2 (en) | 2018-03-13 | 2020-09-29 | Commvault Systems, Inc. | Graphical representation of an information management system |
US10891198B2 (en) | 2018-07-30 | 2021-01-12 | Commvault Systems, Inc. | Storing data to cloud libraries in cloud native formats |
US11159469B2 (en) | 2018-09-12 | 2021-10-26 | Commvault Systems, Inc. | Using machine learning to modify presentation of mailbox objects |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US10860443B2 (en) | 2018-12-10 | 2020-12-08 | Commvault Systems, Inc. | Evaluation and reporting of recovery readiness in a data storage management system |
US20200192572A1 (en) | 2018-12-14 | 2020-06-18 | Commvault Systems, Inc. | Disk usage growth prediction system |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
CN110083597A (zh) * | 2019-03-16 | 2019-08-02 | 平安普惠企业管理有限公司 | 命令查询方法、装置、计算机设备和存储介质 |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11366723B2 (en) | 2019-04-30 | 2022-06-21 | Commvault Systems, Inc. | Data storage management system for holistic protection and migration of serverless applications across multi-cloud computing environments |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11461184B2 (en) | 2019-06-17 | 2022-10-04 | Commvault Systems, Inc. | Data storage management system for protecting cloud-based data including on-demand protection, recovery, and migration of databases-as-a-service and/or serverless database management systems |
US11308034B2 (en) | 2019-06-27 | 2022-04-19 | Commvault Systems, Inc. | Continuously run log backup with minimal configuration and resource usage from the source machine |
US20210011816A1 (en) | 2019-07-10 | 2021-01-14 | Commvault Systems, Inc. | Preparing containerized applications for backup using a backup services container in a container-orchestration pod |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11422900B2 (en) | 2020-03-02 | 2022-08-23 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11321188B2 (en) | 2020-03-02 | 2022-05-03 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11748143B2 (en) | 2020-05-15 | 2023-09-05 | Commvault Systems, Inc. | Live mount of virtual machines in a public cloud computing environment |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11494417B2 (en) | 2020-08-07 | 2022-11-08 | Commvault Systems, Inc. | Automated email classification in an information management system |
US11314687B2 (en) | 2020-09-24 | 2022-04-26 | Commvault Systems, Inc. | Container data mover for migrating data between distributed data storage systems integrated with application orchestrators |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
US11604706B2 (en) | 2021-02-02 | 2023-03-14 | Commvault Systems, Inc. | Back up and restore related data on different cloud storage tiers |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
CN117349107A (zh) * | 2022-06-28 | 2024-01-05 | 中兴通讯股份有限公司 | 信息存储、读取方法、设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2187580A (en) * | 1986-03-07 | 1987-09-09 | Multi Net Pty Ltd | A database system |
JPS6410353A (en) * | 1987-07-03 | 1989-01-13 | Hitachi Ltd | Computer file system |
CA2284245C (en) * | 1989-09-01 | 2001-02-06 | Amdahl Corporation | Operating system and data base having an access structure formed by a plurality of tables |
JP3168756B2 (ja) * | 1993-02-24 | 2001-05-21 | ミノルタ株式会社 | 電子メールシステムのメール管理方法 |
JPH0779298A (ja) * | 1993-09-08 | 1995-03-20 | Hitachi Ltd | ファクシミリサーバシステム |
US5870549A (en) * | 1995-04-28 | 1999-02-09 | Bobo, Ii; Charles R. | Systems and methods for storing, delivering, and managing messages |
WO1998003928A1 (en) * | 1996-07-23 | 1998-01-29 | Lextron Systems, Inc. | Integrated services on intranet and internet |
US6029164A (en) * | 1997-06-16 | 2000-02-22 | Digital Equipment Corporation | Method and apparatus for organizing and accessing electronic mail messages using labels and full text and label indexing |
US6073137A (en) * | 1997-10-31 | 2000-06-06 | Microsoft | Method for updating and displaying the hierarchy of a data store |
US5999932A (en) * | 1998-01-13 | 1999-12-07 | Bright Light Technologies, Inc. | System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing |
-
1998
- 1998-04-27 US US09/067,537 patent/US6167402A/en not_active Expired - Lifetime
-
1999
- 1999-04-22 GB GB9909139A patent/GB2340269B/en not_active Expired - Fee Related
- 1999-04-27 DE DE19919146A patent/DE19919146A1/de not_active Withdrawn
- 1999-04-27 JP JP11119493A patent/JP2000003321A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8103829B2 (en) * | 2003-06-25 | 2012-01-24 | Commvault Systems, Inc. | Hierarchical systems and methods for performing storage operations in a computer network |
Also Published As
Publication number | Publication date |
---|---|
GB9909139D0 (en) | 1999-06-16 |
JP2000003321A (ja) | 2000-01-07 |
US6167402A (en) | 2000-12-26 |
GB2340269A (en) | 2000-02-16 |
GB2340269B (en) | 2001-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19919146A1 (de) | Hochleistungs-Nachrichtenspeicher | |
DE69907631T2 (de) | Netzzugang zu inhaltsadressierbaren daten | |
DE60211489T2 (de) | System und Verfahren zur Bearbeitung von in mehreren Nachrichtenspeichern gespeicherten Nachrichten | |
DE60004537T2 (de) | In einer relationalen datenbank integriertes contextbasiertes system zur veröffentlichung und abonnierung | |
EP1605649A1 (de) | Verfahren und Vorrichtung zum Verwalten von elektronischen Nachrichten | |
DE69818549T2 (de) | Volltextindizierte Nachrichtenspeicher | |
DE10064627B4 (de) | Verfahren und System für die Verarbeitung von E-Mail-Nachrichten in einem Datenübertragungssystem | |
US6973616B1 (en) | Associating annotations with a content source | |
DE10031716B4 (de) | Abonnement und Benachrichtigung bei Datenbanktechnik | |
US20040255301A1 (en) | Context association schema for computer system architecture | |
DE60306209T2 (de) | Verfahren, mobile vorrichtungen und rechnerlesbare media zur datenverwaltung | |
US6370553B1 (en) | Atomic and molecular documents | |
US20050028168A1 (en) | Sharing computer objects with associations | |
DE112017006106T5 (de) | Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten | |
CH704497B1 (de) | Verfahren zum Benachrichtigen, Speichermedium mit Prozessoranweisungen für ein solches Verfahren. | |
AT4261U2 (de) | Sich selbst zerstörendes dokument oder e-mailnachrichtensystem | |
DE10255128A1 (de) | Computer-implementierte PDF-Dokumentenverwaltung | |
DE60004211T2 (de) | Entfernung von duplizierten objekten aus einem objektspeicher | |
US7421476B2 (en) | Method for converting internet messages for publishing | |
DE112019005881T5 (de) | Kryptografische überprüfung von datenbanktransaktionen | |
DE112021000945T5 (de) | Auf einem Dateisystem-Verzeichnisbaum oder Objekt-Speicherbucket beruhende Übernahme von benutzerspezifischen Metadatentags | |
EP3563261B1 (de) | Bitsequenzbasiertes datenklassifikationssystem | |
DE10151648A1 (de) | Verfahren und System zum Erfassen und Speichern von während einer computerbasierten Sitzung gemachten Notizen | |
EP2545464B1 (de) | VERFAHREN ZUR HERSTELLUNG UND VERWALTUNG EINES GROßVOLUMIGEN LANGZEITARCHIVS | |
DE112017002460T5 (de) | Verwenden eines b-baums zum speichern von grapheninformation in einer datenbank |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8130 | Withdrawal |