Patent ID: 8407245

Claim:
A computer-implemented method for determining whether a candidate string matches any string stored in a string data store, the method comprising: invoking the method during a startup process that prepares a string data structure for use by an application that tests candidate strings for matches within the string data structure, the string data structure holding a set of string in one or more instances of a tree-like form against a large pattern of strings; receiving a candidate string from the application, wherein the candidate string is specific to the application, for which to search the string data store to identify zero or more matches to the candidate string; dividing the received candidate string into one or more segments by dividing the candidate string using a same segmentation criteria used to previously store strings in the string data store; selecting a root node of the string data store that identifies an entry to a data structure for efficiently storing a set of strings in a tree-like form, the root node comprising at least one segment common to all segmented strings in the string data store; searching the string data store segment-by-segment to identify segments that match the segments of the candidate string; upon determining that each segment in the candidate string matches a segment stored in the string data store, reporting that the candidate string matches a string stored in the string data store, by declaring a match and returning metadata associated with the matching string; upon determining that a segment in the candidate string does not match a segment stored in the string data store, creating a new entry in the string data store; updating the sting store with new strings without locking access to all of the strings in the string data store; and wherein the preceding steps of the dividing, selecting and searching are performed by at least one processor.