IP Library Granted Patent US 11,500,943
Granted Patent B2
US 11,500,943 · App. 16/686,092 · Granted Nov 15, 2022

Method and system for cached early-binding document search

Inventors: Chao Chen (Shanghai, CN); Jingjing Liu (Shanghai, CN); Lei Zhang (Shanghai, CN); Kunwu Huang (Shanghai, CN); Hongtao Dai (Shanghai, CN); Ying Teng (Pleasanton, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/93G06F16/2237G06F16/24552G06F21/6218
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 11,500,943
App. No.
16/686,092
Granted
Nov 15, 2022
Kind
B2
Abstract

A method for servicing document search requests. The method includes receiving, by a document management service, a document search query from a requesting user, and injecting, into the document search query, a user access vector. The user access vector specifies, for the requesting user, access control lists that are associated with the requesting user. The method further includes identifying, in a document repository, documents that match the document search query with the injected user access vector. A matching document requires a match of terms in the search query with terms in the matching document, and a match of at least one access control list specified in the matching document and at least one of the access control lists specified in the user access vector.

Claims (51)

1. A method for maintaining user groups, comprising:

making, by a document management service, a first determination that a change occurred in a user group repository located on a repository server, wherein the first determination is based on a user being removed from a first user group;

performing an update, based on the first determination, to a user group cache located on the document management service, comprising:

removing, from a user cache entry of the user group cache, a plurality of user groups associated with the user, wherein the plurality of user groups comprises the first user group and a second user group; and

modifying, after the update, a user access vector cache located on the document management service, wherein modifying the user access vector cache is based on a document search query that requests the user access vector cache, and wherein the user access vector cache comprises user access vectors which specify access control lists that are associated with the user, wherein modifying the user access vector cache comprises:

determining that a first access control list of a user access entry of the user access vector cache specifies the first user group; and

removing, based on the first access control list specifying the first user group, the first access control list from the user access entry;

determining that the first access control list does not specify the second user group, wherein removing the first access control list from the user access entry is further based on the first access control not specifying the second user group;

making an identification, in the user group repository, that the user is a member of the second user group; and

associating, based on the identification, the second user group with the user cache entry.

2. The method of claim 1 , wherein modifying the user access vector cache comprises:

removing a user access entry from the user access vector cache;

generating, based on the removing, a new user access entry; and

adding, to the user access vector cache, the new user access entry.

3. The method of claim 2 , wherein generating the new user access entry comprises:

associating a first access control list with the new user access entry, wherein the first access control list specifies the second user group.

4. The method of claim 1 , wherein modifying the user access vector cache further comprises:

making a third determination that a second access control list of the user access entry specifies the second user group; and

leaving, based on the third determination, the second access control list in the user access entry.

5. The method of claim 1 , wherein modifying the user access vector cache is based on the update.

6. A non-transitory computer readable medium comprising instructions which, when executed by a computer processor, enables the computer processor to perform a method for maintaining user groups, the method comprising:

making, by a document management service, a first determination that a change occurred in a user group repository located on a repository server, wherein the first determination is based on a user being removed from a first user group;

performing an update, based on the first determination, to a user group cache located on the document management service, comprising:

removing, from a user cache entry of the user group cache, a plurality of user groups associated with the user, wherein the plurality of user groups comprises the first user group and a second user group; and

modifying, after the update, a user access vector cache located on the document management service, wherein modifying the user access vector cache is based on a document search query that requests the user access vector cache, and wherein the user access vector cache comprises user access vectors which specify access control lists that are associated with the user, wherein modifying the user access vector cache comprises:

determining that a first access control list of a user access entry of the user access vector cache specifies the first user group; and

removing, based on the first access control list specifying the first user group, the first access control list from the user access entry;

determining that the first access control list does not specify the second user group, wherein removing the first access control list from the user access entry is further based on the first access control not specifying the second user group;

making an identification, in the user group repository, that the user is a member of the second user group; and

associating, based on the identification, the second user group with the user cache entry.

7. The non-transitory computer readable medium of claim 6 , wherein modifying the user access vector cache comprises:

removing a user access entry from the user access vector cache;

generating, based on the removing, a new user access entry; and

adding, to the user access vector cache, the new user access entry.

8. The non-transitory computer readable medium of claim 7 , wherein generating the new user access entry comprises:

associating a first access control list with the new user access entry, wherein the first access control list specifies the second user group.

9. The non-transitory computer readable medium of claim 6 , wherein modifying the user access vector cache further comprises:

making a third determination that a second access control list of the user access entry specifies the second user group; and

leaving, based on the third determination, the second access control list in the user access entry.

10. The non-transitory computer readable medium of claim 6 , wherein modifying the user access vector cache is based on the update.

11. A method for maintaining user groups, comprising:

making, by a document management service, a first determination that a change occurred in a user group repository located on a repository server, wherein the first determination is based on a user being removed from a first user group;

performing an update, based on the first determination, to a user group cache located on the document management service, comprising:

removing, from a user cache entry of the user group cache, a plurality of user groups associated with the user, wherein the plurality of user groups comprises the first user group and a second user group; and

modifying, after the update, a user access vector cache located on the document management service, wherein modifying the user access vector cache is based on a document search query that requests the user access vector cache, and wherein the user access vector cache comprises user access vectors which specify access control lists that are associated with the user, wherein modifying the user access vector cache comprises:

determining that a first access control list of a user access entry of the user access vector cache specifies the first user group; and

removing, based on the first access control list specifying the first user group, the first access control list from the user access entry;

determining that a second access control list of the user access entry specifies the second user group;

leaving, based on the second access control list specifying the second user group, the second access control list in the user access entry

making an identification, in the user group repository, that the user is a member of the second user group; and

associating, based on the identification, the second user group with the user cache entry.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: CHEN, CHAO; LIU, JINGJING; ZHANG, LEI; HUANG, KUNWU; DAI, HONGTAO; TENG, YING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051108/0001 →