IP Library Granted Patent US 10,628,466
Granted Patent B2
US 10,628,466 · App. 14/989,657 · Granted Apr 21, 2020

Smart exchange database index

Inventors: Sergey Romanovich Vartanov (St. Petersburg, RU); Alexander Gennadievich Stepanoff (Kolpino, RU); Sergey Evgenievich Zalyadeev (St. Petersburg, RU)
Assignee: Quest Software Inc.
G06F16/316H04L51/06H04L51/08H04L51/22H04L51/34
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 10,628,466
App. No.
14/989,657
Granted
Apr 21, 2020
Kind
B2
Abstract

A full-text index can be created for each mailbox of an EDB to facilitate the performance of complex queries to quickly search for email data. In this way, relevant email data can be identified and retrieved quickly and efficiently from the full-text index rather than from the EDB. To create such indexes, each email in a mailbox can be retrieved and processed to convert the email from its native format into textual name/value pairs which can then be submitted for indexing. This use of name/value pairs to index each email enables the emails across all mailboxes to be efficiently queried using any possible combination of values.

Claims (47)

1. A method for creating a full-text index for each of a plurality of mailboxes stored in an Exchange database (EDB), the method comprising:

identifying a plurality of mailboxes stored in an EDB;

for each of the plurality of mailboxes stored in the EDB, launching a database (DB) mailbox enumerator and an index writer such that each DB mailbox enumerator and each index writer corresponds with a particular mailbox of the plurality of mailboxes stored in the EDB;

wherein each DB mailbox enumerator;

accesses the EDB to retrieve each email in the corresponding mailbox, at least some of the emails including content that is not formatted as plain text;

for each email that was retrieved from the corresponding mailbox stored in the EDB, converts content of the email that is not formatted as plain text into plain text and provides the content of the email formatted in plain text to the corresponding index writer,

wherein, for each email that was retrieved by the corresponding DB mailbox enumerator from the corresponding mailbox stored in the EDB, each index writer:

receives the content of the email formatted in plain text;

creates an indexing request that identifies a full-text index corresponding to the mailbox from which the email was accessed, the indexing request also including the content of the email, that was retrieved from the corresponding mailbox stored in the EDB, in plain text format; and

submits the indexing request to cause the content of the email to be stored in the corresponding full-text index such that the content that is not formatted as plain text in the email retrieved from one of the plurality of mailboxes stored in the EDB is stored in plain text format in the full-text index that corresponds to the mailbox from which the email was accessed.

2. The method of claim 1 , wherein the content that is not formatted as plain text comprises a body of the email.

3. The method of claim 1 , wherein the content that is not formatted as plain text comprises an attachment of the email.

4. The method of claim 1 , wherein the indexing request comprises an Hypertext Transfer Protocol (HTTP) request that includes a name of the mailbox to identify the corresponding full-text index.

5. The method of claim 1 , wherein the content of the email is included in the indexing request as name/value pairs.

6. The method of claim 5 , wherein the name/value pairs are structured in JavaScript Object Notation (JSON) format.

7. The method of claim 5 , wherein the name/value pairs include a name/value pair for one or both of the following:

contents of a body of the email; or

contents of an attachment to the email.

8. The method of claim 5 , wherein, for any email that includes an attachment, the indexing request is structured to cause the content of the attachment to be stored separately from but hierarchically associated with the content of the email.

9. The method of claim 1 , wherein the plurality of DB mailbox enumerators access the plurality of mailboxes in parallel.

10. A method for creating a full-text index for each of a plurality of mailboxes stored in an Exchange database (EDB), the method comprising:

identifying a plurality of mailboxes stored in an EDB;

launching, by a database (DB) worker pool and for each of the plurality of mailboxes stored in the EDB, a DB mailbox enumerator such that each DB mailbox enumerator corresponds with a particular mailbox of the plurality of mailboxes stored in the EDB;

launching, by an index writer pool, an index writer for each of the DB mailbox enumerators such that each index writer corresponds with a particular DB mailbox enumerator;

wherein each DB mailbox enumerator:

accesses the EDB to retrieve each email in the corresponding mailbox, at least some of the emails including content that is not formatted as plain text;

for each email that was retrieved from the corresponding mailbox stored in the EDB, converts content of the email that is not formatted as plain text into plain text and provides the content of the email formatted in plain text to the corresponding index writer;

wherein, for each email that was retrieved by the corresponding DB mailbox enumerator from the corresponding mailbox stored in the EDB, each index writer:

receives the content of the email formatted in plain text;

creates an indexing request that identifies a full-text index corresponding to the mailbox from which the email was accessed, the indexing request also including the content of the email, that was retrieved from the corresponding mailbox stored in the EDB, in plain text format; and

submits the indexing request to cause the content of the email to be stored in the corresponding full-text index such that the content that is not formatted as plain text in the email retrieved from one of the plurality of mailboxes stored in the EDB is stored in plain text format in the full-text index that corresponds to the mailbox from which the email was accessed.

11. The method of claim 10 , further comprising:

creating a queue for each DB mailbox enumerator, wherein each DB mailbox enumerator provides the content of the emails formatted in plain text to the corresponding index writer via the corresponding queue.

12. The method of claim 10 , wherein each DB mailbox enumerator accesses the corresponding mailbox via a DB controller.

13. The method of claim 10 , wherein each index writer submits each indexing request via an HTTP request.

14. The method of claim 10 , wherein, for any email that includes an attachment, the indexing request is structured to cause the content of the attachment to be stored separately from but hierarchically associated with the content of the email.

15. The method of claim 10 , wherein, for at least some of the emails, the indexing request is structured with a first portion that defines a folder, a second portion that defines a message, and a third portion that defines an attachment.

16. The method of claim 15 , wherein the first portion defines an identifier that is used to identify the corresponding mailbox in the EDB.

17. A method for creating a full-text index for each of a plurality of mailboxes stored in an Exchange database (EDB), the method comprising:

for each of a plurality of mailboxes stored in an EDB, accessing the EDB to retrieve each email in the mailbox, at least some of the emails including content that is not formatted as plain text;

for each accessed email that was retrieved from one of the plurality of mailboxes stored in the EDB:

converting content of the email that is not formatted as plain text into plain text such that the content that is not formatted as plain text of the email that was retrieved from one of the plurality of mailboxes stored in the EDB is converted into plain text;

creating an indexing request that identifies a full-text index corresponding to the mailbox from which the email was accessed such that a full-text index is created for each of the plurality of mailboxes stored in the EDB, the indexing request also including the content of the email, that was retrieved from the corresponding mailbox stored in the EDB, in plain text format; and

submitting the indexing request to cause the content of the email to be stored in the corresponding full-text index such that the content that is not formatted as plain text in the email retrieved from one of the plurality of mailboxes stored in the EDB is stored in plain text format in the full-text index that corresponds to the mailbox from which the email was accessed.

18. The method of claim 17 , wherein, for any email that includes an attachment, the indexing request is structured to cause the content of the attachment to be stored separately from but hierarchically associated with the content of the email.

19. The method of claim 17 , wherein, for at least some of the emails, the indexing request is structured with a first portion that defines a folder, a second portion that defines a message, and a third portion that defines an attachment.

20. The method of claim 19 , wherein the first portion defines a first identifier that is used to identify the corresponding mailbox in the EDB and a second identifier that identifies the corresponding full-text index, and wherein the second portion defines the second identifier to link the second portion to the first portion.

Assignments (33)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
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 Sep 13, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 043834/0852 →
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: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 037848 FRAME 0210 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040031/0725 →
RELEASE OF REEL 038664 FRAME 0908 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0390 →
RELEASE OF REEL 038665 FRAME 0041 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0375 →
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 →
RELEASE OF REEL 037848 FRAME 0001 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0152 →
RELEASE OF REEL 037847 FRAME 0843 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0366 →
RELEASE OF REEL 038665 FRAME 0001 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040021/0348 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 11, 2016
From: DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 038664/0908 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 038665/0041 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038665/0001 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 037848/0210 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037848/0001 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037847/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2016
From: DELL PRODUCTS L.P.
To: DELL SOFTWARE, INC.
Reel/Frame 037492/0238 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2016
From: VARTANOV, SERGEY ROMANOVICH; STEPANOFF, ALEXANDER GENNADIEVICH; ZALYADEEV, SERGEY EVGENIEVICH
To: DELL PRODUCTS L.P.
Reel/Frame 037428/0466 →