WO1999017226A1 - Verfahren zum hinzufügen bzw. entfernen einer adresse in einem teilbesetzten, nicht-balancierten binären baum - Google Patents

Verfahren zum hinzufügen bzw. entfernen einer adresse in einem teilbesetzten, nicht-balancierten binären baum Download PDF

Info

Publication number
WO1999017226A1
WO1999017226A1 PCT/DE1998/002554 DE9802554W WO9917226A1 WO 1999017226 A1 WO1999017226 A1 WO 1999017226A1 DE 9802554 W DE9802554 W DE 9802554W WO 9917226 A1 WO9917226 A1 WO 9917226A1
Authority
WO
WIPO (PCT)
Prior art keywords
entry
search
address
pointer
tree
Prior art date
Application number
PCT/DE1998/002554
Other languages
English (en)
French (fr)
Inventor
Roland BRÜCKNER
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO1999017226A1 publication Critical patent/WO1999017226A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees

Definitions

  • the subject of the application relates to a method for adding or removing an address in a partially populated, unbalanced binary tree.
  • a possible approach to address the problems outlined is based on a restriction of address allocation. Ever larger address areas are being allocated at once. However, this leads to poor utilization of the available memory area. In addition, subsequent changes to the assigned address area are difficult or impossible afterwards.
  • Another approach to address the problems outlined is based on the use of a CAM (Content Addressable Memory) as a hardware solution.
  • this ASIC element is not a standard element and the use is therefore associated with relatively high costs.
  • the blocks currently available usually only support an address range for lk to 8k connections.
  • Another approach to counter the problems outlined is based on the construction and use of a search tree (binary tree) to iteratively determine the address.
  • the search time depends on the height of the tree.
  • the minimum number of search accesses is proportional to log 2 N. By balancing the tree, the tree structure can be minimized.
  • Previous implementations of a search method are based on a search tree using the target set N.
  • the achievable search time t A * 1.44 * log 2 N is minimal (A duration of a single access, 1.44 Fibonacci number as a limit for AVL trees, 3 accesses for a rotation double rotation step), but the balancing requires a maximum of approx.
  • a minimal tree structure does have a minimal search time, in order to maintain the minimal tree structure when deleting or inserting addresses, extensive processing of algorithms is necessary, which takes up a corresponding amount of time.
  • the object of the application is based on the problem of specifying a method which optimizes the search, removal and insertion of valid addresses.
  • the subject of the application allows the search tree to be sorted simultaneously with the delete / insert operation, a period of time which is not to be exceeded for switching technology applications always being observed.
  • the subject of registration which does not assume a balance and thus a minimal search depth (M instead of N), has a minimized processing function and thus offers a cost-effective implementation mentation for searching, deleting, inserting in simple hardware (ASIC or FPGA), whereby scaling is given with the technology available in each case.
  • ASIC or FPGA simple hardware
  • the use of RAM structures and a user-definable comparator offers further options for linking to status bits, which can be used for additional selection criteria.
  • 2 shows as an example a number of 10 valid address entries ⁇ 0,1,2,7,8,9,11,13,15,25 ⁇ .
  • 3 shows the address entries from FIG. 2 in binary form.
  • FIG. 4 shows the partially filled search tree that results from FIG. 2.
  • FIG. 5 shows the minimal, balanced search tree
  • FIG. 6 shows the replacement process in the partially filled search tree.
  • FIG. 7 shows a circuit arrangement for shortening the search process.
  • FIG l shows the basic structure of a binary field with levels I, II, III and IV.
  • FIG. 3 shows the address entries from FIG. 2 in binary representation.
  • an entry has the following structure:
  • FIG. 4 shows the partially filled search tree resulting from FIG.
  • the search tree is not minimal in height, but its maximum height is limited to H.
  • the balanced search tree has a height which is 1 less than that in FIG. 4.
  • U «N * log 2 N operations are necessary in the worst case.
  • the first level (level 0) there may be a division of the search tree in accordance with the MSB (Most Significant Bit) 0 or 1, with a search for an address in the first level (level 0) branching in accordance with the first bit position the address you are looking for. Then only the (2 ⁇ m-0) first bit position is relevant for the decision in level 0. This is particularly true when using a nes hardware comparator (circuit comparator), the width of which can be greatly reduced, advantageously noticeable.
  • MSB Mobile Bit
  • Entry ⁇ 8 ⁇ receives the stored pointers on Entry ⁇ 7 ⁇ - P_lower and Entry ⁇ 7 ⁇ - P_upper (action_2), the pointer Entry ⁇ 11 ⁇ - P_lower also receives the value Entry ⁇ 8 ⁇ - P_upper (action_3).
  • the deletion process therefore requires 3 actions more than a comparable pure search access.
  • a subsequent insertion process for Entry ⁇ 7 ⁇ , with a new Try ⁇ 7 ⁇ , updating Entry ⁇ 9 ⁇ .P_lower and Entry ⁇ 15 ⁇ .P_lower also requires 3 actions.
  • the proposed algorithm not only allows a search comparable to CAM access, it also offers the option of sorting e.g. to specifically access the smallest or largest entry.
  • sorting e.g. to specifically access the smallest or largest entry.
  • An extended use e.g. for sorting data cells based on sequence numbers (sequence number or timestamp, healing with random routing) can be supported.
  • the search since the 'assembly by, for example, may be the upper portion of the search tree to be mapped directly into a RAM (random access random access memory, memory).
  • RAM random access random access memory, memory
  • the search only has to start at level n. If, for example, 16k memory entries are available, the search depth is reduced by 14. Alternatively, all possible entries of level n + 1 can also be stored in the 16k DirectMappings. The search depth is then reduced by 15; if you search above level 15, the search starts at the root.
  • FIG. 7 shows a hardware implementation for a search with 4 pointers, in which it is not absolutely necessary to bring the pointer values to the comparator.
  • An entry-RAM is driven by a tristate bus of exactly that type
  • Pointer RAM addressed from a plurality of Pointer RAM' ⁇ (Pointer 1 RAM .. Pointer i RAM), the output of which is activated via a chip select signal. If P_upper and P_lower are in the same pointer RAM, which means that it is not possible to select a tristate bus via chip select, an external multiplexer can be provided. The output of the entry RAM is connected to the comparator.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es wird ein Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten, nicht-balancierten Binären Baum vorgeschlagen, bei dem eine Sortierung des Suchbaumes gleichzeitig mit der Löschen/Einfügeoperation gegeben ist, wobei eine für vermittlungstechnische Anwendungen nicht zu überschreitende Zeitdauer stets eingehalten wird.

Description

Be s ehre ibung
Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten, nicht-balancierten Binären Baum
Der Anmeldungsgegenstand betrifft ein Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten, nicht-balancierten Binären Baum.
Vor allem im Bereich ATM ( Asynchroner Transfer Mode) und auch des Ethernet Routings muß bei einem großen Adressbereich (typ. M=2^33 Adressen) schnell und effizient festgestellt werden können, ob eine Adresse gültig ist. Die Anzahl gültiger Adressen ist hierbei mit N=2Λ14 = 16000 meist relativ klein. Während somit die Speicherung der gültigen Daten mit wenigen Mbyte Speicher behandelt werden kann, ist eine Behandlung des gesamten Adressvorrates mit mehreren Gigabyte Speicher nicht wirtschaftlich möglich. In der Vermittlungstechnik tritt zudem die Anforderung auf, bislang gültige Adressen zu löschen und neue gültige Adressen einzufügen.
Ein möglicher Ansatz, der aufgezeigten Problematik zu begegnen basiert auf einer Restriktion der Adressvergabe. Es werden immer größere Adressbereich auf einmal vergeben. Dies führt jedoch zu einen schlechten Ausnutzung des verfügbaren Speicherbereiches, zudem sind nachträgliche Änderungen des vergebenen Adressbereiches im nachhinein nur noch schwer, oder nicht mehr möglich.
Ein weiterer Ansatz, der aufgezeigten Problematik zu begegnen basiert auf dem Einsatz eines CAM (Content Adressable Memory) als Hardwarelösung. Dieses ASIC Element ist jedoch kein Standardelement und der Einsatz daher mit relativ hohen Kosten verbunden. Die derzeit verfügbaren Bausteine unterstützen meist nur einen Adressbereich für lk bis 8k Verbindungen. Ein weiterer Ansatz, der aufgezeigten Problematik zu begegnen basiert auf dem Aufbau und der Verwendung eines Suchbaumes (Binary tree) , um iterativ die Adresse zu bestimmen. Die Suchdauer ist hier von der Höhe des Baumes abhängig. Die mi- nimale Anzahl von Suchzugriffen liegt proportional zu log2N. Durch Balancierung des Baumes ist eine Minimierung der Baumstruktur erreichbar.
Bisherige Implementierungen eines Suchverfahrens setzen auf einen Suchbaum über die Zielmenge N auf. Die erreichbare Suchdauer t=A* 1,44 * log2N ist zwar minimal ( A Dauer eines Einzelzugriffes, 1,44 Fibonacci Zahl als Limit für AVL Bäume, 3 Zugriffe für Rotations- Dopppelrotationsschritt) , die Balancierung benötigt jedoch maximal ca. tN=3*A*l,44 * log2N=69*A.
Eine minimale Baumstruktur weist zwar eine minimale Suchzeit auf, zur Aufrechterhaltung der minimalen Baumstruktur bei Löschen oder Einfügen von Adressen ist eine umfangreiche Abar- beitung von Algorithmen erforderlich, die mit einem entsprechenden Zeitbedarf einhergeht .
Dem Anmeldungsgegenstand liegt das Problem zugrunde, ein Verfahren anzugeben, das ein Optimierung von Suchen, Entfernen und Einfügen von gültigen Adressen auf eist.
Das Problem wird bei dem Anmeldungsgegenstand durch die Merkmale des Anspruchs 1 bzw. die Merkmale des Anspruchs 2 gelöst.
Der Anmeldungsgegenstand erlaubt eine Sortierung des Suchbaumes gleichzeitig mit der Löschen/Einfügeoperation, wobei eine für vermittlungstechnische Anwendungen nicht zu überschreitende Zeitdauer stets eingehalten wird. Der Anmeldungsgegen- stand, der nicht von einer Balancierung und damit minimaler Suchtiefe ( M statt N) ausgeht, weist eine minimierte Abarbeitungsfunktion auf und bietet somit eine kostengünstige Imple- mentierung für Suche, Löschen, Einfügen in einfacher Hardware ( ASIC oder FPGA) , wobei eine Skalierung mit der jeweils verfügbaren Technologie gegeben ist . Durch den Einsatz von RAM- Strukturen und einem benutzerdefinierbaren Vergleicher erge- ben sich weitergehende Möglichkeiten zur Verknüpfung mit Statusbits, welche für zusätzliche Selektionskriterien verwendet werden können.
Der Anmeldungsgegenstand wird im folgenden als Ausführungs- beispiel in einem zum Verständnis erforderlichen Umfang anhand von Figuren näher beschrieben. Dabei zeigen: FIG 1 zeigt den prinzipiellen Aufbau eines Binären Feldes der Tiefe 4 mit 2Λ4 = 16 Elementen, also gewissermaßen den gesamten Wertevorrat . FIG 2 zeigt als Beispiel eine Anzahl von 10 gültigen Adresseinträgen { 0,1,2,7,8,9,11,13,15,25 }. FIG 3 die Adresseinträge aus FIG 2 in Binärdarstellung FIG 4 zeigt den aus FIG 2 sich ergebenden teilgefüllten Suchbaum FIG 5 zeigt den minimalen, balancierten Suchbaum
FIG 6 zeigt den Ersetzungsvorgang im teilgefüllten Suchbaum FIG 7 zeigt eine Schaltungsanordnung zur Verkürzung des Suchvorgangs .
In den Figuren bezeichnen gleiche Bezeichnungen gleiche Elemente .
FIG l zeigt den prinzipiellen Aufbau eines Binären Feldes mit den Leveln I, II, III und IV.
FIG 2 zeigt einen im Beispiel mit 10 gültigen Adresseinträgen { 0,1,2,7,8,9,11,13,15,25 } teilbesetzten Suchbaum. Durch die Verwendung des vollständigen binären Feldes ist die Position jedes Eintrages genau festgelegt. Die maximale Suchlänge ist durch die Höhe des Baumes mit H=log2M bestimmt.
FIG 3 zeigt die Adresseinträge aus FIG 2 in Binärdarstellung. Ein Eintrag hat im Prinzip folgenden Aufbau:
P_lower 14 Bit P_upper 14 Bit „Pointer links" „Pointer rechts"
Eintrag (Entry) 32 Bit ,Vergleichswert"
In einem Adressraum mit M=2Λ33 Adressen benötigt die Durchführung der Suche bei Verwendung der Binären Suche im teilbesetzten binären Feld bei typ. Anwendungen mit KM = log2M= 33 Zugriffe, statt KN = log2N= 16. Dennoch ist bei einer Verkürzung des Suchbaumes um z.B. C=13 Höhen (d.h. 2^13=8k direkte Pointer, 4 Zugriffe für ersten Pointerzugriff) mit tMax=A/2* (4+log2 (M-C) ) =22*A ein günstigeres worst case Zeitverhalten erreichbar.
FIG 4 zeigt den aus FIG 2 sich ergebenden teilgefüllten Such- bäum. Der Suchbaum ist zwar in der Höhe nicht minimal, jedoch ist seine maximale Höhe auf H beschränkt.
FIG 5 zeigt den minimalen balancierten Suchbaum wie er sich für das Beispiel aus Fig 2 ergeben würde. Der balancierte Suchbaum hat in diesem Falle eine um 1 geringere Höhe als der in FIG 4. Um diesen Suchbaum zu erhalten müssen viele Positionen umsortiert werden. U « N*log2N Operationen sind im schlimmsten anzunehmenden Fall (worst case) notwendig.
Falls nicht alle Binärwurzeln besetzt sind, so ergibt sich als Resultat stets eine Verkürzung des maximalen Baumes.
In der ersten Ebene (Level 0) mag eine Aufteilung des Suchbaumes nach Maßgabe des MSB (Most Signifikant Bit) 0 oder l gegeben sein, wobei bei der Suche nach einer Adresse in der ersten Ebene (level 0) eine Verzweigung nach Maßgabe der ersten Bitstelle der gesuchten Adresse erfolgt . Dann ist für die Entscheidung in Level 0 lediglich die (2Λm-0) erste Bitstelle relevant. Dies macht sich insbesondere bei Einsatz ei- nes Hardwarevergleichers (schaltungstechnisch ausgeführten Vergleichers) , dessen Breite stark reduzierbar ist, vorteilhaft bemerkbar.
Für die Suche nach Eintrag {25} (Entry{25}) erfolgt der Vergleich im i-ten Rekursionsschritt entsprechend an der Bitstelle <2^m-i>. Durch fehlende Einträge in der binären Liste (missing link) erfolgt hier also die Bewertung ansich an einer nicht zutreffenden Bitposition. Durch Einbeziehung der bereits abgearbeiteten Stellen mit fehlenden Einträgen in einem parallel durchgeführten Vergleich ist dies erkennbar und berücksichtigbar, wobei die Pointerselektion ( P_lower, P_upper ) gegebenenfalls korrigiert wird. Dies hat jedoch keinen Einfluß auf die worst case Suchgeschwindigkeit, da in diesem Falle ( mindestens eine Ebene ist nicht besetzt ) sozusagen der Eintrag zu früh erreicht wurde. Der parallele Vergleich über alle abgearbeiteten Bitpositionen kann ebenfalls „langsam,, von <i> nach <i+l> erfolgen, da bei einem Missmatch in V Bitpositionen, folglich V Suchpositionen über- spungen und damit ebensoviele Vergleichsoperationen gespart wurden.
FIG 6 zeigt den Ersetzungsvorgang im teilgefüllten Suchbaum. Soll z.B. der Entry{7} aus einer bestehenden Liste entfernt werden; so übernimmt der nächstgrößte Entry dessen Position. Im vorliegenden Falle muß somit bis zum Entry{7} gesucht werden, dessen Position wird gespeichert; anschließend wird unter Entry{7} - P_upper nach dem kleinsten Entry ( am weitesten links ) gesucht, und Entry{15} - P_lower nun neu auf die Position von Entry{8} gesetzt (Aktion_l) . Entry{8} erhält die gespeicherten Pointer auf Entry{7} - P_lower und Entry{7} - P_upper (Aktion_2) , der Pointer Entry{11} - P_lower erhält gegebenenfalls noch den Wert Entry{8} - P_upper (Aktion_3) .
Der Löschvorgang benötigt also 3 Aktionen mehr, als ein vergleichbarer reiner Suchzugriff . Ein anschließender Einfügevorgang für Entry{7}, mit neuem En- try{7}, Aktualisierung von Entry{9} .P_lower und Entry{15} .P_lower benötigt ebenfalls 3 Aktionen.
Der vorgeschlagene Algorithmus erlaubt nicht nur eine Suche vergleichbar mit CAM Zugriffen, er bietet ebenso die Möglichkeit sortiert z.B. gezielt auf den kleinsten oder größten Eintrag zuzugreifen. Ein erweiterter Einsatz z.B. zur Sortierung von Datenzellen anhand von Folgenummern ( Seqencenumber oder Timestamp, Ausheilen bei Random Routing) ist unterstütz- bar.
Wie bereits erwähnt benötigt in einem Adressraum mit M=2^33 Adressen die Durchführung der Suche bei Verwendung der Binä- ren Suche im teilbesetzten binären Feld bei typ- Anwendungen mit KM = log2M= 33 Zugriffe, statt KN = log2N= 16.
Eine Möglichkeit zur Verkürzung des Suchvorganges ist durch eine Verkürzung der Suchtiefe gegeben. Bei einer Verkürzung des Suchbaumes um z.B. C=13 Höhen (d.h. 2^13=8k direkte Pointer, 4 Zugriffe für ersten Pointerzugriff) mit tMax=A/2* (4+log2 (M-C) ) =22*A ist ein günstigeres worst case Zeitverhalten erreichbar.
Da die ' Anordnung sortiert erfolgt, kann z.B. der obere Teil des Suchbaumes direkt in einem RAM (Random Access Memory, Speicher mit wahlfreiem Zugriff) Bereich gemappt werden. Mit 2Λn Einträgen muß dann die Suche erst ab Level n beginnen. Stehen beispielsweise 16k Speicherentries zur Verfügung redu- ziert sich die Suchtiefe um 14. Alternativ hierzu sind in den 16k DirectMappings auch alle möglichen Entries des Levels n+1 speicherbar. Die Suchtiefe reduziert sich dann um 15; bei einer Suche oberhalb von Level 15 beginnt die Suche bei der Ur- wurzel . Eine weitere Möglichkeit zur Beschleunigung des Suchvorgangeε ist dadurch gegeben, daß das Suchprinzip auf mehr als 2 Pointer erweitert wird. Bei Verwendung von zweckmäßigerweise 2^i Pointern ergibt sich eine Baumhöhe von H=log2M/i.
Fig 7 zeigt eine Hardwarerealisierung für eine Suche mit 4 Pointern, bei der es nicht zwingend notwendig ist, die Poin- terwerte an den Vergleicher heranzuführen.
Ein Entry-RAM wird über einen Tristate Bus von genau der
Pointer RAM aus einer Mehrzahl von Pointer RAM'ε (Pointer 1 RAM ..Pointer i RAM) adressiert, deren Ausgang über ein Chip- Selekt - Signal wirksamgeschaltet ist. Liegen P_upper und P_lower in der selben Pointer RAM, womit keine Selektion ei- nes Tristate Busses über Chipselekt möglich ist, kann ein externer Multiplexer vorgesehen sein. Der Ausgang des Entry-RAM ist mit dem Vergleicher verbunden.
Beispiel: stehen wie bei STM1 64 Takte zur Auflösung eines Entries aus 8k möglichen zur Verfügung, so kann dies durch Verwendung eines 1Mbit RAMs 32k*32 erreicht werden. In 16k stehen 32k DirectMappings zur Verfügung (2 Takte) ; Reduzierung der Suchtiefe um 15. Bei 3 Zugriffen zur Bewertung des Entries (Anlegen Adresse; Lesen Entry; Lesen Pointer) werden für die Suche in 17 Level 16*3=51 Takte benötig. Verbindungε- aufbau und Abbau ist in Leerzyklen möglich, maximal sollten hierfür 51+2+3=56 Takte erforderlich sein.

Claims

Patentansprüche
1. Verfahren zum Entfernen einer Adresse aus einem teilbesetzten Suchbaum, bei dem mit jedem gültigen Eintrag in dem Suchbaum zwei Zeiger (pointer lower, pointer upper) abspei- cherbar sind, die jeweils auf einen gültigen Eintrag einer niedrigeren Ebene (level 0, I, II..) verweisen, demzufolge
- die Position des zu entfernenden Eintrags aufgesucht und zwischengespeichert wird - unter dem Zeiger des zu entfernenden Eintrags, der auf den Eintrag der nächst tieferen Ebene (level I, II, III) mit dem höheren Wert verweist, der Eintrag einer tieferen Ebene aufgesucht wird, der den niedrigsten Wert hat
- dieser Eintrag mit dem niedrigsten Wert auf die Position des zu entfernenden Eintrags gesetzt wird
- dieser Eintrag mit dem niedrigsten Wert die Zeiger des entfernten Eintrags übernimmt .
2. Verfahren zum Hinzufügen einer Adresse in einem teilbe- setzten Suchbaum, bei dem mit jedem gültigen Eintrag in dem
Suchbaum zwei Zeiger (pointer lower, pointer upper) abspeicherbar sind, die jeweils auf einen gültigen Eintrag einer niedrigeren Ebene (level 0, I, II...) verweisen, demzufolge
- die Position des hinzuzufügenden Eintrags aufgesucht wird - für den auf der aufgesuchten Position befindlichen Eintrag in Richtung auf die Position, die dem Wert der Adresse des zu verschiebenden Eintrags gleicht, die erste freie Position aufgesucht wird und dort abgespeichert wird
- der hinzuzufügende Eintrag auf seiner Position abgespei- chert wird, wobei er die Zeiger von dem bislang dort abgespeicherten Eintrag übernimmt.
PCT/DE1998/002554 1997-09-30 1998-08-31 Verfahren zum hinzufügen bzw. entfernen einer adresse in einem teilbesetzten, nicht-balancierten binären baum WO1999017226A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19743266.2 1997-09-30
DE19743266A DE19743266C1 (de) 1997-09-30 1997-09-30 Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten Suchbaum

Publications (1)

Publication Number Publication Date
WO1999017226A1 true WO1999017226A1 (de) 1999-04-08

Family

ID=7844195

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE1998/002554 WO1999017226A1 (de) 1997-09-30 1998-08-31 Verfahren zum hinzufügen bzw. entfernen einer adresse in einem teilbesetzten, nicht-balancierten binären baum

Country Status (2)

Country Link
DE (1) DE19743266C1 (de)
WO (1) WO1999017226A1 (de)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6879983B2 (en) 2000-10-12 2005-04-12 Qas Limited Method and apparatus for retrieving data representing a postal address from a plurality of postal addresses
US7908242B1 (en) 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US7912865B2 (en) 2006-09-26 2011-03-22 Experian Marketing Solutions, Inc. System and method for linking multiple entities in a business database
US8954459B1 (en) 2008-06-26 2015-02-10 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US9147042B1 (en) 2010-11-22 2015-09-29 Experian Information Solutions, Inc. Systems and methods for data verification
US9152727B1 (en) 2010-08-23 2015-10-06 Experian Marketing Solutions, Inc. Systems and methods for processing consumer information for targeted marketing applications
US9251541B2 (en) 2007-05-25 2016-02-02 Experian Information Solutions, Inc. System and method for automated detection of never-pay data sets
US9342783B1 (en) 2007-03-30 2016-05-17 Consumerinfo.Com, Inc. Systems and methods for data verification
US9483606B1 (en) 2011-07-08 2016-11-01 Consumerinfo.Com, Inc. Lifescore
US9529851B1 (en) 2013-12-02 2016-12-27 Experian Information Solutions, Inc. Server architecture for electronic data quality processing
US9563916B1 (en) 2006-10-05 2017-02-07 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US9576030B1 (en) 2014-05-07 2017-02-21 Consumerinfo.Com, Inc. Keeping up with the joneses
US9619579B1 (en) 2007-01-31 2017-04-11 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US9690820B1 (en) 2007-09-27 2017-06-27 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US9697263B1 (en) 2013-03-04 2017-07-04 Experian Information Solutions, Inc. Consumer data request fulfillment system
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US10102536B1 (en) 2013-11-15 2018-10-16 Experian Information Solutions, Inc. Micro-geographic aggregation system
US10242019B1 (en) 2014-12-19 2019-03-26 Experian Information Solutions, Inc. User behavior segmentation using latent topic detection
US10262362B1 (en) 2014-02-14 2019-04-16 Experian Information Solutions, Inc. Automatic generation of code for attributes
US10678894B2 (en) 2016-08-24 2020-06-09 Experian Information Solutions, Inc. Disambiguation and authentication of device users
US10963434B1 (en) 2018-09-07 2021-03-30 Experian Information Solutions, Inc. Data architecture for supporting multiple search models
US11227001B2 (en) 2017-01-31 2022-01-18 Experian Information Solutions, Inc. Massive scale heterogeneous data ingestion and user resolution
US11257126B2 (en) 2006-08-17 2022-02-22 Experian Information Solutions, Inc. System and method for providing a score for a used vehicle
US11880377B1 (en) 2021-03-26 2024-01-23 Experian Information Solutions, Inc. Systems and methods for entity resolution
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US12020294B2 (en) 2022-01-06 2024-06-25 Experian Informaton Solutions, Inc. System and method for providing a score for a used vehicle

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010061280A1 (de) 2010-12-16 2012-06-21 Klaus Benecke Verfahren zur Umstrukturierung von Daten sowie Computerprogramm zu seiner Ausführung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0650131A1 (de) * 1993-10-20 1995-04-26 Microsoft Corporation Rechenverfahren und Speicherstruktur zur Speicherung und zum Zugriffen auf mehrdimensionale Daten
US5644763A (en) * 1995-06-28 1997-07-01 Sybase, Inc. Database system with improved methods for B-tree maintenance
US5664184A (en) * 1993-05-21 1997-09-02 Amalgamated Software Of North America, Inc. Method and apparatus for implementing Q-trees

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664184A (en) * 1993-05-21 1997-09-02 Amalgamated Software Of North America, Inc. Method and apparatus for implementing Q-trees
EP0650131A1 (de) * 1993-10-20 1995-04-26 Microsoft Corporation Rechenverfahren und Speicherstruktur zur Speicherung und zum Zugriffen auf mehrdimensionale Daten
US5644763A (en) * 1995-06-28 1997-07-01 Sybase, Inc. Database system with improved methods for B-tree maintenance

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6879983B2 (en) 2000-10-12 2005-04-12 Qas Limited Method and apparatus for retrieving data representing a postal address from a plurality of postal addresses
US7366726B2 (en) 2000-10-12 2008-04-29 Qas Limited Method and apparatus for retrieving data representing a postal address from a plurality of postal addresses
US7908242B1 (en) 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US8065264B1 (en) 2005-04-11 2011-11-22 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US11257126B2 (en) 2006-08-17 2022-02-22 Experian Information Solutions, Inc. System and method for providing a score for a used vehicle
US7912865B2 (en) 2006-09-26 2011-03-22 Experian Marketing Solutions, Inc. System and method for linking multiple entities in a business database
US11954731B2 (en) 2006-10-05 2024-04-09 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US9563916B1 (en) 2006-10-05 2017-02-07 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US10963961B1 (en) 2006-10-05 2021-03-30 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US10121194B1 (en) 2006-10-05 2018-11-06 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US11631129B1 (en) 2006-10-05 2023-04-18 Experian Information Solutions, Inc System and method for generating a finance attribute from tradeline data
US11443373B2 (en) 2007-01-31 2022-09-13 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US11908005B2 (en) 2007-01-31 2024-02-20 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US9619579B1 (en) 2007-01-31 2017-04-11 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US10891691B2 (en) 2007-01-31 2021-01-12 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US10650449B2 (en) 2007-01-31 2020-05-12 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US10402901B2 (en) 2007-01-31 2019-09-03 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US10078868B1 (en) 2007-01-31 2018-09-18 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US11308170B2 (en) 2007-03-30 2022-04-19 Consumerinfo.Com, Inc. Systems and methods for data verification
US9342783B1 (en) 2007-03-30 2016-05-17 Consumerinfo.Com, Inc. Systems and methods for data verification
US10437895B2 (en) 2007-03-30 2019-10-08 Consumerinfo.Com, Inc. Systems and methods for data verification
US9251541B2 (en) 2007-05-25 2016-02-02 Experian Information Solutions, Inc. System and method for automated detection of never-pay data sets
US11347715B2 (en) 2007-09-27 2022-05-31 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US10528545B1 (en) 2007-09-27 2020-01-07 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US11954089B2 (en) 2007-09-27 2024-04-09 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US9690820B1 (en) 2007-09-27 2017-06-27 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US8954459B1 (en) 2008-06-26 2015-02-10 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US11769112B2 (en) 2008-06-26 2023-09-26 Experian Marketing Solutions, Llc Systems and methods for providing an integrated identifier
US10075446B2 (en) 2008-06-26 2018-09-11 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US11157872B2 (en) 2008-06-26 2021-10-26 Experian Marketing Solutions, Llc Systems and methods for providing an integrated identifier
US9152727B1 (en) 2010-08-23 2015-10-06 Experian Marketing Solutions, Inc. Systems and methods for processing consumer information for targeted marketing applications
US9684905B1 (en) 2010-11-22 2017-06-20 Experian Information Solutions, Inc. Systems and methods for data verification
US9147042B1 (en) 2010-11-22 2015-09-29 Experian Information Solutions, Inc. Systems and methods for data verification
US10176233B1 (en) 2011-07-08 2019-01-08 Consumerinfo.Com, Inc. Lifescore
US10798197B2 (en) 2011-07-08 2020-10-06 Consumerinfo.Com, Inc. Lifescore
US11665253B1 (en) 2011-07-08 2023-05-30 Consumerinfo.Com, Inc. LifeScore
US9483606B1 (en) 2011-07-08 2016-11-01 Consumerinfo.Com, Inc. Lifescore
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US11356430B1 (en) 2012-05-07 2022-06-07 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US9697263B1 (en) 2013-03-04 2017-07-04 Experian Information Solutions, Inc. Consumer data request fulfillment system
US10580025B2 (en) 2013-11-15 2020-03-03 Experian Information Solutions, Inc. Micro-geographic aggregation system
US10102536B1 (en) 2013-11-15 2018-10-16 Experian Information Solutions, Inc. Micro-geographic aggregation system
US9529851B1 (en) 2013-12-02 2016-12-27 Experian Information Solutions, Inc. Server architecture for electronic data quality processing
US11107158B1 (en) 2014-02-14 2021-08-31 Experian Information Solutions, Inc. Automatic generation of code for attributes
US10262362B1 (en) 2014-02-14 2019-04-16 Experian Information Solutions, Inc. Automatic generation of code for attributes
US11847693B1 (en) 2014-02-14 2023-12-19 Experian Information Solutions, Inc. Automatic generation of code for attributes
US10019508B1 (en) 2014-05-07 2018-07-10 Consumerinfo.Com, Inc. Keeping up with the joneses
US9576030B1 (en) 2014-05-07 2017-02-21 Consumerinfo.Com, Inc. Keeping up with the joneses
US10936629B2 (en) 2014-05-07 2021-03-02 Consumerinfo.Com, Inc. Keeping up with the joneses
US11620314B1 (en) 2014-05-07 2023-04-04 Consumerinfo.Com, Inc. User rating based on comparing groups
US10445152B1 (en) 2014-12-19 2019-10-15 Experian Information Solutions, Inc. Systems and methods for dynamic report generation based on automatic modeling of complex data structures
US11010345B1 (en) 2014-12-19 2021-05-18 Experian Information Solutions, Inc. User behavior segmentation using latent topic detection
US10242019B1 (en) 2014-12-19 2019-03-26 Experian Information Solutions, Inc. User behavior segmentation using latent topic detection
US11550886B2 (en) 2016-08-24 2023-01-10 Experian Information Solutions, Inc. Disambiguation and authentication of device users
US10678894B2 (en) 2016-08-24 2020-06-09 Experian Information Solutions, Inc. Disambiguation and authentication of device users
US11681733B2 (en) 2017-01-31 2023-06-20 Experian Information Solutions, Inc. Massive scale heterogeneous data ingestion and user resolution
US11227001B2 (en) 2017-01-31 2022-01-18 Experian Information Solutions, Inc. Massive scale heterogeneous data ingestion and user resolution
US11734234B1 (en) 2018-09-07 2023-08-22 Experian Information Solutions, Inc. Data architecture for supporting multiple search models
US10963434B1 (en) 2018-09-07 2021-03-30 Experian Information Solutions, Inc. Data architecture for supporting multiple search models
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US11880377B1 (en) 2021-03-26 2024-01-23 Experian Information Solutions, Inc. Systems and methods for entity resolution
US12020294B2 (en) 2022-01-06 2024-06-25 Experian Informaton Solutions, Inc. System and method for providing a score for a used vehicle

Also Published As

Publication number Publication date
DE19743266C1 (de) 1999-03-11

Similar Documents

Publication Publication Date Title
DE19743266C1 (de) Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten Suchbaum
DE19743267C1 (de) Verfahren zum Aufsuchen einer Adresse in einem teilbesetzten, nicht balancierten Binären Baum
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE69912410T2 (de) Schnelles zeichenkettensuchen und -indizieren
DE602004010922T2 (de) Speicher und stromeffizienter mechanismus für schnelles tabellennachschlagen
DE69333422T2 (de) Auffindung von Zeichenketten in einer Datenbank von Zeichenketten
DE3011552C2 (de)
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE69333960T2 (de) Namenauflösung in einem Mehrsystem-Netz
DE60026229T2 (de) Verfahren und Vorrichtung für Klassifizierung von Datenpaketen
DE10085387T5 (de) Verfahren und Vorrichtung zur Adresssuche längster Übereinstimmung
DE2346525B2 (de) Virtuelle Speichereinrichtung
EP0619667A1 (de) Verfahren zum Zugriff auf Adressmerkmale von Kommunikationsteilnehmern mit einem ersten Adress Bereich, beim Versenden von Datenpaketen
DE60032674T2 (de) Verfahren zum Suchen von Adressen
EP1183690A1 (de) Speicheranordnung mit adressverwürfelung
DE69629540T2 (de) Verfahren und Gerät zum Sortieren von Elementen
DE60309611T2 (de) Verfahren und Vorrichtung zur Verarbeitung von Datenpaketen
DE10120615B4 (de) Dynamische Speicherverwaltung für Objekte unterschiedlicher Größe
DE60001585T2 (de) Datenverarbeitungseinrichtung und -verfahren
DE60024611T2 (de) Längentestvergleich in präfixnachschlagtabellen
DE19810784A1 (de) Hardwareunterstützung für Datenumsetzung
DE2525287A1 (de) Assoziativspeicher
EP0176939B1 (de) Datenverarbeitungsanlagen mit virtueller Speicheradressierung für eine Vielzahl von Benutzern
DE3105503A1 (de) Assoziativer zugriffsspeicher
DE3633227A1 (de) Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase