Patent Document ID: 9916347
Application ID: 14584516
Patent Status: 1

Claim One:
1. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to: create a state transition, result, and mask (STR&M) table based on a set of signatures, wherein the STR&M table comprises a state column, a plurality of condition columns, a result column, and a mask column, wherein each condition column corresponds to a set of input conditions that result from applying an input symbol map to an input character value, wherein for a given state each condition column corresponds to a set of input conditions and provides a next state transition, wherein the result column provides an identifier of a matched signature or an indicator of no match, and wherein the mask column provides a mask for updating a result, wherein a first row of the STR&M table corresponds to an initial state, a last row of the STR&M table corresponds to a persistent final NO_MATCH state, and other rows of the STR&M table correspond to input strings with continuations to a signature; execute scanner code in each of a plurality of hardware devices in parallel to form a plurality of matching engines; load the STR&M table into each of the plurality of matching engines; responsive to receiving a plurality of input records, extract input stings from the plurality of input records; submit the plurality of input strings for scanning by the plurality of matching engines; scan, by the scanner code in each given matching engine, the plurality of input strings based on the STR&M table, comprising: for a current state, responsive to at least a portion of a current input string matching a set of conditions corresponding to a given condition column, updating a signature set match result based on a result value in the result column and a mask value in the mask column without use of branching logic; and responsive to reaching an end of the current input string or the NO_MATCH state, returning the signature set match result; and receive signature set match results from the plurality of matching engines.