IP Library Granted Patent US 9,542,387
Granted Patent B2
US 9,542,387 · App. 14/326,230 · Granted Jan 10, 2017

Efficient string search

Inventors: Thomas E. Raffill (Sunnyvale, CA); Shunhui Zhu (San Jose, CA); Roman Yanovsky (Los Altos, CA); Boris Yanovsky (Saratoga, CA); John Gmuender (San Jose, CA)
Assignee: DELL SOFTWARE INC.
G06F17/28G06F17/2705G06F17/2863G06F17/30985
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,542,387
App. No.
14/326,230
Granted
Jan 10, 2017
Kind
B2
Abstract

Some embodiments of an efficient string search have been presented. In one embodiment, a string of bytes representing content written in a non-delimited language is received, wherein the content has been classified into a predetermined category. In a single pass through the string of bytes, a set of N-grams is searched for simultaneously. Statistical information on occurrences of the N-grams, if any, in the string of bytes is collected. In some embodiments, a model is generated based on the statistical information, where the model is usable by a content filter to classify content.

Claims (51)

1. A method for classifying content written in a non-delimited language, the method comprising:

receiving a string of bytes at a finite state machine (FSM), wherein the string of bytes is received by electronic hardware associated with the FSM after a user attempts to access information related to the string of bytes;

performing a string search on the string of bytes, wherein the string search identifies that the string of bytes includes a set of N-grams that match one or more states in a set of states, wherein the FSM connects the one or more states in the set of states;

collecting statistical information regarding the set of N-grams received in the string of bytes, wherein the collected statistical information corresponds to a condition in a model stored in a model repository;

receiving the model from the model repository;

identifying that the one or more states and that one or more N-grams in the set of N-grams correspond to the received model;

identifying that a length of the received string of bytes also corresponds to the condition in the received model when the length of the received string of bytes is of a certain length;

classifying content of the one or more N-grams as being prohibited according to the one or more states, the one or more N-grams, and the length that corresponds to the condition; and

denying access to the content when the classification of the content is prohibited, wherein denying access to the content prevents the content from being displayed on a display accessible to the user after the user attempt to access the information relating to the string of bytes.

2. The method of claim 1 , further comprising, counting the number of N-grams that correspond to the one or more states in the string of bytes when collecting the statistical information.

3. The method of claim 2 , wherein another model is generated when the number of N-grams counted is equal to or greater than a predetermined number.

4. The method of claim 2 , wherein:

the content is classified when the number of N-grams counted is equal to or greater than a predetermined number, and

the content classified is written in a non-delimited language.

5. The method of claim 1 , wherein the model is received by a content filter.

6. The method of claim 1 , wherein the one or more N-grams of the set of N-grams are stored when a finite state machine transitions to a state that is mapped to the one or more N-grams.

7. A non-transitory computer readable storage medium having embodied thereon a program executable by a processor to perform a method for classifying content written in a non-delimited language, the method comprising:

receiving a string of bytes by the processor, wherein the processor executing instructions out of the memory performs the function of a finite state machine (FSM) after a user attempts to access information related to the string of bytes;

performing a string search on the string of bytes, wherein the string search determines that the string of bytes matches one or more states in the set of states;

performing a string search on the string of bytes, wherein the string search identifies that the string of bytes includes a set of N-grams that match one or more states in a set of states, wherein the FSM connects the one or more states in the set of states;

collecting statistical information regarding the set of N-grams received in the string of bytes, wherein the collected statistical information corresponds to a condition in a model stored in a model repository;

receiving the model from the model repository;

identifying that the one or more states and that one or more N-grams in the set of N-grams correspond to the received model;

identifying that a length of the received string of bytes also corresponds to the condition in the received model when the length of the received string of bytes is of a certain length;

classifying content of the one or more N-grams as being prohibited according to the one or more states, the one or more N-grams, and the length that corresponds to the condition; and

denying access to the content when the classification of the content is prohibited, wherein denying access to the content prevents the content from being displayed on a display accessible to the user after the user attempt to access the information relating to the string of bytes.

8. The non-transitory computer readable storage medium of claim 7 , the program further executable to count the number of N-grams that correspond to the one or more states in the string of bytes when collecting the statistical information.

9. The non-transitory computer readable storage medium of claim 8 , wherein another model is generated when the number of N-grams counted is equal to or greater than a predetermined number.

10. The non-transitory computer readable storage medium of claim 8 , wherein:

the content is classified when the number of N-grams counted is equal to or greater than a predetermined number, and

the content classified is written in a non-delimited language.

11. The non-transitory computer readable storage medium of claim 7 , wherein the model is received by a content filter.

12. The non-transitory computer readable storage medium of claim 7 , wherein the one or more N-grams of the set of N-grams are stored when a finite state machine transitions to a state that is mapped to the one or more N-grams.

13. A system for classifying content written in a non-delimited language, the system comprising:

a processor; and

a memory, wherein the processor:

receives a string of bytes after a user attempts to access information related to the string of bytes;

performs a string search on the string of bytes according to a finite state machine (FSM), wherein the string search identifies that the string of bytes includes a set of N-grams that match one or more states in a set of states;

collects statistical information regarding the set of N-grams received in the string of bytes, wherein the collected statistical information corresponds to a condition in a model stored in a model repository;

receives the model from the model repository;

identifies that the one or more states and that one or more N-grams in the set of N-grams corresponds to the received model;

identifies that a length of the received string of bytes also corresponds to the condition in the received model when the length of the received string of bytes is of a certain length;

classify content of the one or more N-grams as being prohibited according to the one or more states, the one or more N-grams, and the length that corresponds to the condition; and

denies access to the content when the classification of the content is prohibited, wherein denying access to the content prevents the content from being displayed on a display accessible to the user after the user attempt to access the information relating to the string of bytes.

14. The system of claim 13 , wherein the processor counts the number of N-grams that correspond to the one or more states in the string of bytes when collecting the statistical information.

15. The system of claim 14 , wherein another model is generated when the number of N-grams counted is equal to or greater than a predetermined number.

16. The system of claim 14 , wherein the processor:

classifies the content when the number of N-grams counted is equal to or greater than a predetermined number; and

the content classified is written in a non-delimited language.

17. The system of claim 13 , further comprising a network, wherein a request is received over the network when the user attempts to access the information related to the string of bytes.

18. The system of claim 13 , wherein the processor stores in the memory the one or more N-grams of the set of N-grams when a finite state machine transitions to a state that is mapped to the one or more N-grams.

Assignments (19)
FIRST LIEN IP SUPPLEMENT Recorded Jun 30, 2025
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 071777/0641 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT RF 046321/0393 Recorded Jun 16, 2025
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: SONICWALL US HOLDINGS INC.
Reel/Frame 071625/0887 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0393 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0414 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
CHANGE OF NAME Recorded Nov 28, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044528/0821 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 041073 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY ASSIGNMENT.. Recorded Apr 5, 2017
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 042168/0114 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
MERGER Recorded Dec 14, 2015
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 037282/0658 →
CONVERSION AND NAME CHANGE Recorded Dec 14, 2015
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 037288/0614 →
CHANGE OF NAME Recorded Jul 8, 2014
From: PSM MERGER SUB (DELAWARE), INC.
To: SONICWALL, INC.
Reel/Frame 033265/0400 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2014
From: RAFFILL, THOMAS E.; ZHU, SHUNHUI; YANOVSKY, ROMAN; YANOVSKY, BORIS; GMUENDER, JOHN
To: SONICWALL, INC.
Reel/Frame 033265/0240 →
MERGER Recorded Jul 8, 2014
From: SONICWALL, INC.
To: PSM MERGER SUB (DELAWARE), INC. C/O THOMA BRAVO, LLC
Reel/Frame 033265/0336 →
Continuity (4)
Continuation 13973859 · Aug 22, 2013
Continuation 13335743 · Dec 22, 2011
Continuation 11881556 · Jul 27, 2007
Related Publication 20140324415A1 · Oct 30, 2014