US5737594A - Method for matching elements of two groups - Google Patents
Method for matching elements of two groups Download PDFInfo
- Publication number
- US5737594A US5737594A US08/525,281 US52528195A US5737594A US 5737594 A US5737594 A US 5737594A US 52528195 A US52528195 A US 52528195A US 5737594 A US5737594 A US 5737594A
- Authority
- US
- United States
- Prior art keywords
- elements
- unmatched
- group
- classifying
- matched
- 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.)
- Expired - Fee Related
Links
Images
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/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Definitions
- the problem arises when comparing the group of names of a group of files that have been transferred from a computer running one operating system to a computer running a different operating system. For example, if a group of five files were transferred from Unix to MSDOS, the two groups of filenames might be:
- the present invention allows the elements of two such lists to be correctly paired.
- the techniques no be described in this patent specification are also applicable to paths (e.g. "/sloth/walrus/") and pathnames (e.g. "/sloth/walrus/aardvark.dat"), of which filenames form a component.
- file specification will be used to refer to all data elements that partially or fully identify a file or a group of files in a computer system. The term encompasses, but is not limited to, paths, filenames, and pathnames.
- the invention is, however, applicable to far more than file specifications, allowing groups of any type of data element to be matched.
- DISTANCE METRIC which is a function of two data element arguments d(A,B) that returns a number being the "distance" between the two arguments. For example, in the example above, if we defined the distance to be 0 for identical strings, and otherwise the inversion of the number of characters in the longest common prefix of the two argument strings, then the distance between "walrus” and “walrus” would be 0, the distance between "zebra” and “zoo” would be 1/1 which is 1, and the distance between "kangaroo - one" and “kangaroo” would be 1/8, which is 0.125.
- closeness is defined to be a property that is inversely related to distance.
- a distance metric exemplifies the concept of "distance". With this in place, we can solve the zebra/zoo problem (b) by defining a maximum distance T that two strings can be apart and still be matched. The distance metric also provides an approach to solving the final problems. In problem (d), A should not match B.
- the invention incorporates all these solutions to provide a method for matching, within a specified tolerance (by the distance metric), two groups of data elements.
- FIG. 1 depicts a flowchart of the preferred embodiment of the instant method for matching elements of two groups of data elements.
- FIG. 2 depicts a flowchart of the preferred embodiment of the instant method for matching elements of two ordered lists formed from two groups of data elements.
- a method, shown in FIG. 1, and, shown in FIG. 2, for matching elements of two groups A and B of data elements comprises the step of:
- a data element is a file specification.
- a method for matching elements of two groups of data elements comprises the steps of:
- one of the set of abstraction methods may preferably comprise the removal of the "version number" of the file specification (e.g. removal of ";67” in “sloth.dat;67”).
- one of the set of abstraction methods may preferably comprise the normalization of the alphabetic case of the file specification (e.g. conversion of "SLOTh.dAt" to "SLOTH.DAT").
- one of the set of abstraction methods may preferably comprise the removal of any trailing ".” of the file specification (e.g. conversion of "SLOTH.” to "SLOTH").
- one of the set of abstraction methods may preferably comprise the truncation of the file specification extension to a predetermined number of bytes (e.g. conversion of "SLOTH.DATA" to "SLOTH.DAT").
- one of the set of abstraction methods may preferably comprise the truncation of the file specification identifier to a predetermined number or bytes (e.g. conversion of "SLOTH - DOCUMENT.DAT” to "SLOTH - DO.DAT”).
- a method for sorting a group of file specifications of an operating system in such a way that the order of the file specifications is unlikely to change if the group is moved to a different operating system comprises the step of:
- a method for representing and sorting a group of file specifications as provided on an operating system in such a way that the order of the file specifications is unlikely to change if the group is moved to a different operating system comprises the steps of:
- a method, shown in FIG. 1, and, shown in FIG. 2, for matching elements of two ordered lists X and Y formed from two groups of data elements comprises the steps of:
- step (b) for y in the second group (203);
- step h if one or both of x and y has run off the end of its list, skipping to step h (204);
- a far more tractable solution becomes available if the distance metric is constrained to be compatible with a sort order. If the elements of each group can be partially or fully sorted by some criteria so that we can express inequalities such as A ⁇ B, then the distance metric is compatible if and only if (iff)
- the elements of each group are first sorted each into a list of elements, in accordance with the sort order. A single pass is then made simultaneously through both lists. At each step, the current pair of elements, one from each list, are compared with each other and with their successor elements, with the aim of establishing the condition "must be closer to the opposing candidate than to any other element in either group".
- RO is the identity function.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (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
A method for matching-elements of two groups of data objects whose elements do not necessarily exactly match. The method consists of examining successively more abstract projections of the two groups until exact matches occur within elements of the same group, or between elements of the different groups or until there are no longer any more abstract projections to apply. Both random access end sequential embodiments are described.
Description
The problem of performing inexact matches typically arises when a group of data elements have been corrupted or transformed for some purpose and must be compared with their originals.
In particular, the problem arises when comparing the group of names of a group of files that have been transferred from a computer running one operating system to a computer running a different operating system. For example, if a group of five files were transferred from Unix to MSDOS, the two groups of filenames might be:
______________________________________ UNIX => MSDOS ______________________________________ aardvark.sub.-- database.database => AARDVARK.DAT emu EMU playpuses.text => PLATYPUS.TEX sloth.data => SLOTH.DAT walrus.sub.-- document.tex => WALRUS.sub.-- D.TEX ______________________________________
The present invention allows the elements of two such lists to be correctly paired. The techniques no be described in this patent specification are also applicable to paths (e.g. "/sloth/walrus/") and pathnames (e.g. "/sloth/walrus/aardvark.dat"), of which filenames form a component. In this patent specification the term "file specification" will be used to refer to all data elements that partially or fully identify a file or a group of files in a computer system. The term encompasses, but is not limited to, paths, filenames, and pathnames.
The invention is, however, applicable to far more than file specifications, allowing groups of any type of data element to be matched.
The problem of matching two groups of data elements exactly is straightforward. By various means, the elements of the two groups can be compared and the pairs that match identified. However, if the elements of the two groups do not exactly match, the problem becomes more difficult. For example, consider the problem of matching elements of the following two groups of strings:
______________________________________ goanna goanna goanna goanna kangaroo.sub.-- one kangaroo kangaroo.sub.-- two sloth sloth walrus2 walrus zoo zebra ______________________________________
By inspection it seems clear that (sloth,sloth) should be matched, as they are identical. Similarly, it makes sense to match (walrus,walrus2), as they are nearly identical. The other names are more difficult to assess. It's clear that "zebra" corresponds, in some sense, to "zoo" as they are the only two strings that start with "z", and neither "looks like" any of the other strings. However, should they be matched just because they share the first letter? The kangaroo strings pose a different problem. In the absence of "kangaroo- one", it would make sense to form the match (kangaroo- two,kangaroo). However, as both "kangaroo- one" and "kangaroo- two" appear in the first group, it is not clear which one should be matched with "kangaroo". Finally, the two pairs of "goanna" are identical, but probably shouldn't be matched, as it is not clear which of the two possible pairings to make (straight or crossed).
The problems encountered in the example are summarized as follows:
(a) What if two elements in the same group are identical?
(b) How similar must two elements be to match?
(c) How should we define "similar"?
(d) What if an element A in one group is close enough to match element B in the second group, but is even closer to C in the first group?
In problem (a) where two or more data elements in the same group are identical, none of the identical elements should be matched to any element, as it could never be clear which one should match a candidate element in the other group. This resolves the goanna/goanna problem.
The other problems are somewhat more difficult and are solved in this invention by defining a DISTANCE METRIC which is a function of two data element arguments d(A,B) that returns a number being the "distance" between the two arguments. For example, in the example above, if we defined the distance to be 0 for identical strings, and otherwise the inversion of the number of characters in the longest common prefix of the two argument strings, then the distance between "walrus" and "walrus" would be 0, the distance between "zebra" and "zoo" would be 1/1 which is 1, and the distance between "kangaroo- one" and "kangaroo" would be 1/8, which is 0.125.
The concept of distance can also be used to define the concept of "closeness", and in this patent specification closeness is defined to be a property that is inversely related to distance.
A distance metric exemplifies the concept of "distance". With this in place, we can solve the zebra/zoo problem (b) by defining a maximum distance T that two strings can be apart and still be matched. The distance metric also provides an approach to solving the final problems. In problem (d), A should not match B.
The invention incorporates all these solutions to provide a method for matching, within a specified tolerance (by the distance metric), two groups of data elements.
FIG. 1 depicts a flowchart of the preferred embodiment of the instant method for matching elements of two groups of data elements.
FIG. 2 depicts a flowchart of the preferred embodiment of the instant method for matching elements of two ordered lists formed from two groups of data elements.
In a broad aspect of the invention, a method, shown in FIG. 1, and, shown in FIG. 2, for matching elements of two groups A and B of data elements, comprises the step of:
a. identifying matches between pairs of elements that are closer to each other than either element in the pair is to any other element in either group, and such that each pair contains an element from group A and an element from group B.
In a further aspect of the invention, a data element is a file specification.
In a further aspect of the invention, a method for matching elements of two groups of data elements, comprises the steps of:
a. forming an abstract representation of each of the groups according to one of a set of abstraction methods (101);
b. classifying as UNMATCHED each element of the abstract representation that is identical to another element of the abstract representation within its own group (102);
c. classifying as UNMATCHED each element of the abstract representation in each group that is identical to an element of the abstract representation of the other group that is already classified as MATCHED or UNMATCHED (103):
d. classifying as MATCHED, and identifying a match between, each pair of identical elements of the abstract representation such that one element of the pair is in one group and the other element is in the other group and each element of the pair is not classified as MATCHED or UNMATCHED (104);
e. repeating steps a through d until all elements of both groups have been classified as MATCHED or UNMATCHED, or until all abstraction methods in the set of abstraction methods have been used (105);
f. classifying as UNMATCHED all elements that are not already classified as MATCHED or UNMATCHED (106).
In a further aspect of the invention, where the data elements are file specifications, one of the set of abstraction methods may preferably comprise the removal of the "version number" of the file specification (e.g. removal of ";67" in "sloth.dat;67").
In a further aspect of the invention, where the data elements are file specifications, one of the set of abstraction methods may preferably comprise the normalization of the alphabetic case of the file specification (e.g. conversion of "SLOTh.dAt" to "SLOTH.DAT").
In a further aspect of the invention, where the data elements are file specifications, one of the set of abstraction methods may preferably comprise the removal of any trailing "." of the file specification (e.g. conversion of "SLOTH." to "SLOTH").
In a further aspect of the invention, where the data elements are file specifications, one of the set of abstraction methods may preferably comprise the truncation of the file specification extension to a predetermined number of bytes (e.g. conversion of "SLOTH.DATA" to "SLOTH.DAT").
In a further aspect of the invention, where the data elements are file specifications, one of the set of abstraction methods may preferably comprise the truncation of the file specification identifier to a predetermined number or bytes (e.g. conversion of "SLOTH- DOCUMENT.DAT" to "SLOTH- DO.DAT").
In a further aspect of the invention, a method for sorting a group of file specifications of an operating system in such a way that the order of the file specifications is unlikely to change if the group is moved to a different operating system, comprises the step of:
a. sorting the file specifications of said group by two keys, the first being the case-normalized (upper or lower case) representation of each file specification, and the second being the file specification, with the first key dominating the second.
In a further aspect of the invention, a method for representing and sorting a group of file specifications as provided on an operating system in such a way that the order of the file specifications is unlikely to change if the group is moved to a different operating system, comprises the steps of:
a. forming a representation of the group of file specifications by replacing each directory path component delimiter (if any) of the file specification by a standard character (e.g. convert " sloth.walrus!" to "/sloth/walrus/");
b. sorting the file specifications in the group by two keys, the first being the case-normalized (upper or lower case) representation of the file specification, and the second being the file specification, with the first key dominating the second.
In a further aspect of the invention, a method, shown in FIG. 1, and, shown in FIG. 2, for matching elements of two ordered lists X and Y formed from two groups of data elements, comprises the steps of:
a. initializing an index x into the first list X, and an index y into the second list Y, setting them both to 1 (201);
b. classifying as UNMATCHED, elements x . . . x+n (where n>=0) such that each element x . . . x+n-1 is identical to either its predecessor or successor element and element x+n is not identical to its predecessor or successor element, and incrementing x by n (202);
c. performing step (b) for y in the second group (203);
d. if one or both of x and y has run off the end of its list, skipping to step h (204);
e. if the distance d(X x!,Y y!) is at most a maximum distance T, and X x! and Y y! are closer to each other than either is to either X x+1! or Y y+1!, then classifying elements X x! and Y y! as MATCHED with each other, incrementing x and y by 1, and skipping to step b (205);
f. Classifying the lower in the sort order of X x! and Y y! as UNMATCHED and incrementing its corresponding index by 1 (206);
g. repeating steps b to f until one or both of x and y has run off the end of its list (209);
h. classifying as UNMATCHED all elements that are not already classified as MATCHED or UNMATCHED (208).
The following embodiments should not be interpreted as a limitation on the scope of the claims of this patent.
The most obvious way to implement the invention is to calculate the distance between all pairs of elements within both groups, and then sort all these pairs by distance. Unfortunately, this is an O(mn) operation (where n and m are the number of elements in each group respectively) and so could be very tame consuming if m and n are large.
A far more tractable solution (the SEQUENTIAL embodiment) becomes available if the distance metric is constrained to be compatible with a sort order. If the elements of each group can be partially or fully sorted by some criteria so that we can express inequalities such as A<B, then the distance metric is compatible if and only if (iff)
A<=B<=C implies d(A,B)<=d(A,C)
In this embodiment, the elements of each group are first sorted each into a list of elements, in accordance with the sort order. A single pass is then made simultaneously through both lists. At each step, the current pair of elements, one from each list, are compared with each other and with their successor elements, with the aim of establishing the condition "must be closer to the opposing candidate than to any other element in either group".
______________________________________ list1 list2 ______________________________________ . . . . . . | | A B | | | | C D | | . . . . . . ______________________________________
Because previous elements have already been processed, only the next element needs to be checked. In the diagram, to determine if A matches B, the only distances that need to be calculated are AB, AD, and BC.
The cost of this method is O(nLOG(n)+mLOG(m)+n+m), which is much better than O(mn). If the elements are already sorted, the method becomes linear in m and n (O(m+n)).
Another way to make the solution tractable is to approach the concept of distance in a different way. This leads to the RANDOM ACCESS embodiment. Suppose that the set of all matching distances is a small set of non-negative integers. 0,P! (where P is analogous to T) and that it is computationally cheap to find all pairs that are at any particular distance. Then a preferred method to perform the match is to start with d=0 and increment d until d=P, at each increment identifying all the pairs of exactly distance d. Because at any d, all distances 0. . . d-1 have already been considered, we can be sure that each element of each pair that match at exactly distance d does not match any other element at a shorter distance.
One interesting way to define the distance between two elements is as the number of incremental information removal methods (from the set of information removal methods R- O . . . R p) that must be applied before the two elements become identical. For example, for two elements X and Y, if R- O(X) <>R- O(Y) and R- 1(R- O(X))<>R- 1(R- O(Y)), but R- 2(R- i(R O(X)))=R- 2(R- 1(R- 0(Y))), then the distance would be 2. Note: RO is the identity function.
If we then construct a sort order that is consistent with this distance metric, then we can construct a sequential algorithm from the random access one. A consistent sort order can be defined by mapping each data element X to a key K being the ordered tuple (Kp, . . . ,K1, KO) where KO=R- O(X) and Ki=R- i(Ki-1). The sorting is then performed with Ki dominating Ki-1, and with the sort order for each K- i not marketing, so long as it is a deterministic complete ordering.
To prove that the distance metric is consistent with the key ordering:
Consider three elements X, Y, and Z that have been sorted (XYZ) by the sort order. Suppose that D(X,Z)<D(X,Y). Then X and Z must share more leading (i.e. Kp..) K's than X and Y. This implies that X and Z have the same value for the key K- D(X,Y)-1, but Y does not have that value. This means that Y could not possibly come between X and Z in the sort order, which breaks the premise. Thus, if X, Y and Z appear in that order in the sorting order then D(X,Z)>=D(X,Y), which proves that the sorting order is compatible with the distance metric, and when this is true, a sequential algorithm such as the one described earlier can be constructed.
Thus, while the information removal approach would appear to be most closely aligned with the random access approach, it can always be implemented as a sequential algorithm.
Claims (7)
1. A method for matching elements of two groups of data elements, comprises the steps of:
a. forming an abstract representation of each of the groups according to one of a set of abstraction methods;
b. classifying as UNMATCHED each unclassified element of said abstract representation that is identical to any other element of said abstract representation within its own group;
c. classifying as UNMATCHED each unclassified element of said abstract representation in each group that is identical to an element of said abstract representation of the other group that is already classified as MATCHED or UNMATCHED;
d. classifying as MATCHED, and identifying a match between, each pair of identical elements of said abstract representation such that one element of the pair is in one group and the other element is in the other group and each element of the pair is not classified as MATCHED OR UNMATCHED;
e. repeating steps a through d until all elements of both groups have been classified as MATCHED or UNMATCHED, or until all abstraction methods in said set of abstraction methods have been used;
f. classifying as UNMATCHED all elements that are not already classified as MATCHED or UNMATCHED.
2. The method in accordance with claim 1 wherein the data elements are file specifications and one of the set of abstraction methods is the removal of the "version number" of the file specification.
3. The method in accordance with claim 1 wherein the data elements are file specifications and one of the set of abstraction methods is the normalization of the alphabetic case of the file specification.
4. The method in accordance with claim 1 wherein the data elements are file specifications and one of the set of abstraction methods is the removal of any trailing "." of file specification.
5. The method in accordance with claim 1 wherein the data elements are file specifications and one of the set of abstraction methods is the truncation of the file specification extension to a predetermined number of bytes.
6. The method in accordance with claim 1 wherein the data elements are file specifications and one of the set of abstraction methods is the truncation or the file specification identifier to a predetermined number of bytes.
7. A method for matching elements of two ordered lists X and Y formed from two groups of data elements, comprises the steps of:
a. initializing an index x into the first list X, and an index y into the second list Y, setting them both to 1;
b. classifying as UNMATCHED, elements x . . . x+n (where n>=0) such that each element x . . . x+n-1 is identical to either its predecessor or successor element, and element x+n is not identical to its predecessor or successor element, and incrementing x by n;
c. performing step (b) for y in the second group;
d. if one or both of x and y has run off the end of its list, skipping to step h;
e. if the distance d(X x!,Y y!) is at most a maximum distance T, and X x! and Y y! are closer to each other than either is to either X x+1! or Y y+1!, then classifying elements X x! and Y y! as MATCHED with each other, incrementing x and y by 1, and skipping to step b;
f. classifying the lower in the sort order of X x! and Y Y! as UNMATCHED and incrementing its corresponding index by 1;
g. repeating steps b to f until one or both of x and y has run off the end of its list;
h. classifying as UNMATCHED all elements that are not already classified as MATCHED or UNMATCHED.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU6616894 | 1994-07-05 | ||
AU66168/94 | 1994-07-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
US5737594A true US5737594A (en) | 1998-04-07 |
Family
ID=3750779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/525,281 Expired - Fee Related US5737594A (en) | 1994-07-05 | 1995-07-05 | Method for matching elements of two groups |
Country Status (1)
Country | Link |
---|---|
US (1) | US5737594A (en) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6460033B1 (en) * | 1999-02-03 | 2002-10-01 | Cary D. Perttunen | Browsing methods, articles and apparatus |
US6701313B1 (en) * | 2000-04-19 | 2004-03-02 | Glenn Courtney Smith | Method, apparatus and computer readable storage medium for data object matching using a classification index |
US20040088376A1 (en) * | 2002-10-30 | 2004-05-06 | Nbt Technology, Inc. | Transaction accelerator for client-server communication systems |
US20040174276A1 (en) * | 2002-10-30 | 2004-09-09 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US20040243703A1 (en) * | 2003-04-14 | 2004-12-02 | Nbt Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US20050144553A1 (en) * | 2000-04-06 | 2005-06-30 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US20060139187A1 (en) * | 2003-05-08 | 2006-06-29 | Sap Ag | Pattern-driven, message-oriented compression apparatus and method |
US20060235846A1 (en) * | 2005-04-14 | 2006-10-19 | International Business Machines Corporation | List update employing neutral sort keys |
US20070051406A1 (en) * | 2002-08-09 | 2007-03-08 | Carns James A | Shrouded valve apparatus and related methods |
US20080005274A1 (en) * | 2006-05-26 | 2008-01-03 | Riverbed Technology, Inc. | Throttling of predictive acks in an accelerated network communication system |
US20080320154A1 (en) * | 2003-08-12 | 2008-12-25 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US20080320151A1 (en) * | 2002-10-30 | 2008-12-25 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7640262B1 (en) | 2006-06-30 | 2009-12-29 | Emc Corporation | Positional allocation |
US7673099B1 (en) | 2006-06-30 | 2010-03-02 | Emc Corporation | Affinity caching |
US7685171B1 (en) | 2006-09-22 | 2010-03-23 | Emc Corporation | Techniques for performing a restoration operation using device scanning |
US7720892B1 (en) | 2006-06-30 | 2010-05-18 | Emc Corporation | Bulk updates and tape synchronization |
US7725704B1 (en) | 2006-09-22 | 2010-05-25 | Emc Corporation | Techniques for performing a prioritized data restoration operation |
US20110035371A1 (en) * | 2009-08-06 | 2011-02-10 | Accenture Global Services Gmbh | Data comparison system |
US7930559B1 (en) | 2006-06-30 | 2011-04-19 | Emc Corporation | Decoupled data stream and access structures |
US8082231B1 (en) | 2006-09-22 | 2011-12-20 | Emc Corporation | Techniques using identifiers and signatures with data operations |
US8364815B2 (en) | 2005-03-18 | 2013-01-29 | Riverbed Technology, Inc. | Reliability and availability of distributed servers |
US8386637B2 (en) | 2005-03-18 | 2013-02-26 | Riverbed Technology, Inc. | Connection forwarding |
US8762569B1 (en) | 2006-05-30 | 2014-06-24 | Riverbed Technology, Inc. | System for selecting a proxy pair based on configurations of autodiscovered proxies on a network |
US10361997B2 (en) | 2016-12-29 | 2019-07-23 | Riverbed Technology, Inc. | Auto discovery between proxies in an IPv6 network |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119291A (en) * | 1987-03-26 | 1992-06-02 | International Business Machines Corporation | Modular data storage directories for large-capacity data storage units wherein the index to the records in a sector is located in the next adjacent sector |
US5276776A (en) * | 1990-04-27 | 1994-01-04 | International Business Machines Corporation | System and method for building a computer-based Rete pattern matching network |
US5339435A (en) * | 1991-02-28 | 1994-08-16 | Hewlett-Packard Company | Heterogenous software configuration management apparatus |
US5371885A (en) * | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
US5440482A (en) * | 1993-03-25 | 1995-08-08 | Taligent, Inc. | Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order |
US5495607A (en) * | 1993-11-15 | 1996-02-27 | Conner Peripherals, Inc. | Network management system having virtual catalog overview of files distributively stored across network domain |
US5495603A (en) * | 1993-06-14 | 1996-02-27 | International Business Machines Corporation | Declarative automatic class selection filter for dynamic file reclassification |
-
1995
- 1995-07-05 US US08/525,281 patent/US5737594A/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119291A (en) * | 1987-03-26 | 1992-06-02 | International Business Machines Corporation | Modular data storage directories for large-capacity data storage units wherein the index to the records in a sector is located in the next adjacent sector |
US5371885A (en) * | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
US5276776A (en) * | 1990-04-27 | 1994-01-04 | International Business Machines Corporation | System and method for building a computer-based Rete pattern matching network |
US5339435A (en) * | 1991-02-28 | 1994-08-16 | Hewlett-Packard Company | Heterogenous software configuration management apparatus |
US5440482A (en) * | 1993-03-25 | 1995-08-08 | Taligent, Inc. | Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order |
US5495603A (en) * | 1993-06-14 | 1996-02-27 | International Business Machines Corporation | Declarative automatic class selection filter for dynamic file reclassification |
US5495607A (en) * | 1993-11-15 | 1996-02-27 | Conner Peripherals, Inc. | Network management system having virtual catalog overview of files distributively stored across network domain |
Cited By (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6460033B1 (en) * | 1999-02-03 | 2002-10-01 | Cary D. Perttunen | Browsing methods, articles and apparatus |
US6947931B1 (en) | 2000-04-06 | 2005-09-20 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US7984038B2 (en) | 2000-04-06 | 2011-07-19 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US20080222116A1 (en) * | 2000-04-06 | 2008-09-11 | International Business Machines Corporation | Longest prefix match (lpm) algorithm implementation for a network processor |
US7383244B2 (en) | 2000-04-06 | 2008-06-03 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US20050144553A1 (en) * | 2000-04-06 | 2005-06-30 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US6701313B1 (en) * | 2000-04-19 | 2004-03-02 | Glenn Courtney Smith | Method, apparatus and computer readable storage medium for data object matching using a classification index |
US20070051406A1 (en) * | 2002-08-09 | 2007-03-08 | Carns James A | Shrouded valve apparatus and related methods |
US8762455B2 (en) | 2002-10-30 | 2014-06-24 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7428573B2 (en) | 2002-10-30 | 2008-09-23 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US20060061495A1 (en) * | 2002-10-30 | 2006-03-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US20060069719A1 (en) * | 2002-10-30 | 2006-03-30 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US7852237B2 (en) | 2002-10-30 | 2010-12-14 | Riverbed Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US7116249B2 (en) | 2002-10-30 | 2006-10-03 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US7120666B2 (en) | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US9124666B2 (en) | 2002-10-30 | 2015-09-01 | Riverbed Technology, Inc. | Reliability and availability of distributed servers |
US20050162288A1 (en) * | 2002-10-30 | 2005-07-28 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US8856222B2 (en) | 2002-10-30 | 2014-10-07 | Riverbed Technology, Inc. | Transaction acceleration for client-server communication systems |
US7849134B2 (en) | 2002-10-30 | 2010-12-07 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US20110047295A1 (en) * | 2002-10-30 | 2011-02-24 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US20040088376A1 (en) * | 2002-10-30 | 2004-05-06 | Nbt Technology, Inc. | Transaction accelerator for client-server communication systems |
US6828925B2 (en) | 2002-10-30 | 2004-12-07 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US8176186B2 (en) | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US6961009B2 (en) | 2002-10-30 | 2005-11-01 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US8508389B2 (en) | 2002-10-30 | 2013-08-13 | Riverbed Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US8402085B2 (en) | 2002-10-30 | 2013-03-19 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US8321580B2 (en) | 2002-10-30 | 2012-11-27 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US8312101B2 (en) | 2002-10-30 | 2012-11-13 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US20080320106A1 (en) * | 2002-10-30 | 2008-12-25 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US20080320151A1 (en) * | 2002-10-30 | 2008-12-25 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7477166B2 (en) | 2002-10-30 | 2009-01-13 | Riverbed Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US20090079597A1 (en) * | 2002-10-30 | 2009-03-26 | Riverbed Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US20040174276A1 (en) * | 2002-10-30 | 2004-09-09 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US8271688B2 (en) | 2002-10-30 | 2012-09-18 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US20040243703A1 (en) * | 2003-04-14 | 2004-12-02 | Nbt Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US7318100B2 (en) | 2003-04-14 | 2008-01-08 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US7321322B2 (en) | 2003-05-08 | 2008-01-22 | Sap Portals Israel Ltd. | Pattern-driven, message-oriented compression apparatus and method |
US20060139187A1 (en) * | 2003-05-08 | 2006-06-29 | Sap Ag | Pattern-driven, message-oriented compression apparatus and method |
US20090157888A1 (en) * | 2003-08-12 | 2009-06-18 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US20080320154A1 (en) * | 2003-08-12 | 2008-12-25 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US9172620B2 (en) | 2003-08-12 | 2015-10-27 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US8671205B2 (en) | 2003-08-12 | 2014-03-11 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US7953869B2 (en) | 2003-08-12 | 2011-05-31 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US8316118B1 (en) | 2003-08-12 | 2012-11-20 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US8386637B2 (en) | 2005-03-18 | 2013-02-26 | Riverbed Technology, Inc. | Connection forwarding |
US8364815B2 (en) | 2005-03-18 | 2013-01-29 | Riverbed Technology, Inc. | Reliability and availability of distributed servers |
US7454419B2 (en) | 2005-04-14 | 2008-11-18 | International Business Machines Corporation | List update employing neutral sort keys |
US20080275898A1 (en) * | 2005-04-14 | 2008-11-06 | Murray Douglas G | List update employing neutral sort keys |
US7885964B2 (en) | 2005-04-14 | 2011-02-08 | International Business Machines Corporation | List update employing neutral sort keys |
US20060235846A1 (en) * | 2005-04-14 | 2006-10-19 | International Business Machines Corporation | List update employing neutral sort keys |
US7293022B2 (en) | 2005-04-14 | 2007-11-06 | International Business Machines Corporation | List update employing neutral sort keys |
US20080270443A1 (en) * | 2005-04-14 | 2008-10-30 | Murray Douglas G | List update employing neutral sort keys |
US20080005274A1 (en) * | 2006-05-26 | 2008-01-03 | Riverbed Technology, Inc. | Throttling of predictive acks in an accelerated network communication system |
US8463843B2 (en) | 2006-05-26 | 2013-06-11 | Riverbed Technology, Inc. | Throttling of predictive ACKs in an accelerated network communication system |
US8762569B1 (en) | 2006-05-30 | 2014-06-24 | Riverbed Technology, Inc. | System for selecting a proxy pair based on configurations of autodiscovered proxies on a network |
US7720892B1 (en) | 2006-06-30 | 2010-05-18 | Emc Corporation | Bulk updates and tape synchronization |
US7930559B1 (en) | 2006-06-30 | 2011-04-19 | Emc Corporation | Decoupled data stream and access structures |
US7673099B1 (en) | 2006-06-30 | 2010-03-02 | Emc Corporation | Affinity caching |
US7640262B1 (en) | 2006-06-30 | 2009-12-29 | Emc Corporation | Positional allocation |
US7725704B1 (en) | 2006-09-22 | 2010-05-25 | Emc Corporation | Techniques for performing a prioritized data restoration operation |
US7685171B1 (en) | 2006-09-22 | 2010-03-23 | Emc Corporation | Techniques for performing a restoration operation using device scanning |
US8082231B1 (en) | 2006-09-22 | 2011-12-20 | Emc Corporation | Techniques using identifiers and signatures with data operations |
US20110035371A1 (en) * | 2009-08-06 | 2011-02-10 | Accenture Global Services Gmbh | Data comparison system |
US9122732B2 (en) * | 2009-08-06 | 2015-09-01 | Accenture Global Services Limited | Data comparison system |
US10361997B2 (en) | 2016-12-29 | 2019-07-23 | Riverbed Technology, Inc. | Auto discovery between proxies in an IPv6 network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5737594A (en) | Method for matching elements of two groups | |
US6018734A (en) | Multi-dimensional pattern analysis | |
US5333317A (en) | Name resolution in a directory database | |
Baeza-Yates | Introduction to Data Structures and Algorithms Related to Information Retrieval. | |
US4611280A (en) | Sorting method | |
Gawrychowski et al. | Order-preserving pattern matching with k mismatches | |
Gabbouj et al. | Minimum mean absolute error stack filtering with structural constraint and goals | |
Alstrup et al. | Pattern matching in dynamic texts | |
US20050251509A1 (en) | System and method of paralled pattern matching | |
KR20030011220A (en) | Data sort method, data sort apparatus, and data sort program | |
Sénizergues | Decidability of bisimulation equivalence for equational graphs of finite out-degree | |
Rasool et al. | String matching methodologies: A comparative analysis | |
US6976025B2 (en) | Database and method for storing a searchable set of keywords | |
Idury et al. | Multiple matching of parameterized patterns | |
Chen | Signature files and signature trees | |
Willard | Applications of the fusion tree method to computational geometry and searching | |
Arimura et al. | Maximizing agreement with a classification by bounded or unbounded number of associated words | |
Kwaśny et al. | Asymptotically optimal bound on the adjacent vertex distinguishing edge choice number | |
Merkurev et al. | Computing the maximum exponent in a stream | |
Chen | On the signature trees and balanced signature trees | |
Mizumoto et al. | An efficient query learning algorithm for zero-suppressed binary decision diagrams | |
JP3603395B2 (en) | Matching device and matching method | |
Ahmed et al. | A new string matching algorithm | |
Murtagh | A review of fast techniques for nearest neighbour searching | |
JPH10177582A (en) | Method and device for retrieving longest match |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20020407 |