IP Library › Granted Patent US 10,725,997
Granted Patent B1
US 10,725,997 · App. 13/525,458 · Granted Jul 28, 2020

Method and systems for concurrent collection and generation of shared data

Inventors: Shu-Shang Sam Wei (Danville, CA); Raghavendra A. Rao (Bangalore, IN); Shuaib Hasan Khwaja (Pleasanton, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/2336G06F9/466G06F16/176
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,725,997
App. No.
13/525,458
Filed
Jun 18, 2012
Granted
Jul 28, 2020
Kind
B1
Examiner
LE, MIRANDA
Art Unit
2153
USPC
707/781
Abstract

A system and method for controlling concurrent access to a shared resource in a distributed computing environment. A first user writes new data to the shared resource, then checks to see if at least one concurrent session to access the shared resource is running. If so, then the system does not allow the removal of data out of the shared resource. If not, then older data may be removed from the shared resource to make room for the new data.

Claims (35)

1. A method for controlling concurrent access to a shared resource in a distributed computing environment, comprising:

receiving a first access request to write first data, during a first session associated with a first user, to a shared resource having a fixed size, the first data including a structured query language (SQL) statement to write data to the shared resource, the database including the shared resource represented as a linked list;

based on receipt of the first access request, checking a status indicator counter to determine if any concurrent session associated with a second user is reading any data from the shared resource by requesting a list of SQL statements from the shared resource, the status indicator:

i) being incremented each time a new read concurrent session is initiated,

ii) being decremented each time an existing read concurrent session is released,

iii) having a value of zero when no read concurrent session is running, and

iv) showing that no concurrent session is reading any data from the shared resource when the list of SQL statements issued to the shared resource has been sent to the second user;

based on a determination that no concurrent session is reading any data from the shared resource and that writing the first data to the shared resource will exceed the fixed size of the shared resource, removing oldest data from the shared resource and writing the first data as newest data of the shared resource; and

based on a determination that any data from the shared resource is being read during any concurrent session, preventing the oldest data in the shared resource from being removed until the status indicator indicates that no concurrent session is reading any data from the shared resource, the shared resource further including stored third data that is younger than the second data and older than the first data.

2. The method of claim 1 , wherein the status indicator is a Boolean flag that is set to TRUE when the at least one concurrent session is running and set to FALSE when the at least one concurrent session is not running.

3. The method of claim 1 , wherein the status indicator is a counter that is incremented each time a new read concurrent session is initiated and decremented each time an existing read concurrent session is released, wherein no read concurrent session is running when a value of the counter is zero.

4. The method of claim 1 , wherein the first data comprises a structured query language (SQL) statement to write data to the shared resource, the database including the shared resource.

5. The method of claim 1 , wherein any concurrent session reading any data from the shared resource is requesting a list of structured query language (SQL) statements issued to the shared resource, the status indicator showing that no concurrent session is reading any data from the shared resource when the list of SQL statements issued to the shared resource has been sent to the second user.

6. A non-transitory computer-readable storage medium encoded with instructions, which when executed, cause one or more processors to:

receive a first access request to write first data, during a first session associated with a first user to a shared resource having a fixed size, the shared resource being represented as a linked list;

based on receipt of the first access request, check a status indicator counter to determine if any concurrent session associated with a second user is reading any data from the shared resource by requesting a list of SQL statements from the shared resource, the status indicator:

i) being incremented each time a new read concurrent session is initiated,

ii) being decremented each time an existing read concurrent session is released,

iii) having a value of zero when no read concurrent session is running, and

iv) showing that no concurrent session is reading any data from the shared resource when the list of SQL statements issued to the shared resource has been sent to the second user;

based on a determination that no concurrent session is reading any data from the shared resource and that writing the first data to the shared resource will exceed the fixed size of the shared resource, remove oldest data from the shared resource and write the first data as newest data of the shared resource; and

based on a determination that any data from the shared resource is being read during any concurrent session, prevent the oldest data in the shared resource from being removed until the status indicator indicates that no concurrent session is reading any data from the shared resource, the shared resource further including stored third data that is younger than the second data and older than the first data.

7. The computer-readable medium of claim 6 , wherein the status indicator is defined as a Boolean flag that is set to TRUE when the at least one concurrent session is running and set to FALSE when the at least one concurrent session is not running.

8. A content management system for providing controlled access to a shared resource in a distributed computing environment, comprising:

a repository having access and storage operations controlled by at least one content server; and

the content server including a content management framework, for integrated operation with the repository, and further comprising a processor-based application, which when executed by at least one computer associated with the content server, will cause the processor to:

receive a first access request to write first data, during a first session associated with a first user, to a shared resource having a fixed size in the data repository, the first data including a structured query language (SQL) statement to write data to the shared resource, the database including the shared resource represented as a linked list;

based on receipt of the first access request, check a status indicator counter to determine if any concurrent session associated with a second user by requesting a list of SQL statements from the shared resource, the status indicator:

i) being incremented each time a new read concurrent session is initiated,

ii) being decremented each time an existing read concurrent session is released,

iii) having a value of zero when no read concurrent session is running, and

iv) showing that no concurrent session is reading any data from the shared resource when the list of SQL statements issued to the shared resource has been sent to the second user;

based on a determination that no concurrent session is reading any data from the shared resource in the repository and that writing the first data to the shared resource will exceed the fixed size of the shared resource, request removal of oldest data from the shared resource and request that the first data be written to the repository as newest data of the shared resource, the writing inserting the first data into the linked list, the writing and removing maintaining the fixed size of the shared resource; and

based on a determination that any data from the shared resource in the repository is being read during any concurrent session, generate a command to prevent the oldest data in the shared resource from being removed until the status indicator indicates that no concurrent session is reading any data from the shared resource in the repository, the shared resource further including stored third data that is younger than the second data and older than the first data.

9. The content management system of claim 8 , wherein the status indicator is a Boolean flag that is set to TRUE when the at least one concurrent session is running and set to FALSE when the at least one concurrent session is not running.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052924/0514 →
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 21, 2019
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 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2015
From: WEI, SHU-SHANG SAM; RAO, RAGHAVENDRA A.; KHWAJA, SHUAIB HASAN
To: EMC CORPORATION
Reel/Frame 036337/0453 →