IP Library Granted Patent US 10,298,681
Granted Patent B1
US 10,298,681 · App. 15/014,046 · Granted May 21, 2019

Systems and methods for rerouting data sent between application containers and storage containers

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,298,681
App. No.
15/014,046
Granted
May 21, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for rerouting data sent between application containers and storage containers may include (1) identifying an application container, a storage container that stores data for the application container, and a host that hosts both the application container and the storage container, (2) configuring the application container and the storage container to share a namespace on the host, (3) creating, within the shared namespace on the host, a resource that enables the application container and the storage container to share data, and (4) rerouting at least one item of data sent between the application container and the storage container to pass through the resource in the shared namespace rather than through a kernel of the host. Various other methods, systems, and computer-readable media are also disclosed.

Claims (54)

1. A computer-implemented method for rerouting data sent between application containers and storage containers, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying an application container, a storage container that stores data for the application container, and a host comprising physical hardware that hosts both the application container and the storage container;

configuring the application container and the storage container to share a namespace on the host, wherein at least one of the application container or the storage container is configured to share the namespace before deployment to the host, and wherein the application container and the storage container are independent of any namespace prior to being configured to share the namespace on the host;

creating, within the shared namespace on the host, a resource that enables the application container and the storage container to share data;

rerouting at least one item of data sent between the application container and the storage container to pass through the resource in the shared namespace rather than through a kernel of the host by:

loading a library that implements a library function comprising a portable operating system interface (POSIX) application programming interface (API) for a file system library, wherein the library is preloaded at a daemon level and hooks a plurality of child processes comprising the application container and the storage container to the library;

intercepting, by the library function, the at least one item of data as part of a write request intended for the storage container, the at least one item of data comprising one or more input/output (I/O) packets; and

redirecting, by the library, the I/O packets to a ring buffer accessible by the storage container, wherein the rerouting reduces a storage and hardware processing resource load on the host and enables the host to more efficiently run a greater number of application containers.

2. The computer-implemented method of claim 1 ,

further comprising identifying a write request initiated by the application container to write data to the storage container;

wherein rerouting the at least one item of data comprises rerouting the write request sent from the application container to the storage container.

3. The computer-implemented method of claim 1 ,

further comprising identifying a read request initiated by the application container to read data from the storage container;

wherein rerouting the at least one item of data comprises rerouting the data sent from the storage container to the application container in response to the read request.

4. The computer-implemented method of claim 1 , wherein the resource comprises a data structure in shared memory that is accessible by both the application container and the storage container.

5. The computer-implemented method of claim 1 , wherein the resource comprises an inter-process communication socket.

6. The computer-implemented method of claim 1 , wherein the ring buffer comprises an array of elements including at least a top element and a bottom element.

7. The computer-implemented method of claim 6 , wherein the bottom element in the array of elements points to the top element in the array of elements.

8. A system for rerouting data sent between application containers and storage containers, the system comprising:

an identification module, stored in memory, that identifies an application container, a storage container that stores data for the application container, and a host comprising physical hardware that hosts both the application container and the storage container;

a configuration module, stored in memory, that configures the application container and the storage container to share a namespace on the host, wherein at least one of the application container or the storage container is configured to share the namespace before deployment to the host, and wherein the application container and the storage container are independent of any namespace prior to being configured to share the namespace on the host;

a creation module, stored in memory, that creates, within the shared namespace on the host, a resource that enables the application container and the storage container to share data;

a rerouting module, stored in memory, that reroutes at least one item of data sent between the application container and the storage container to pass through the resource in the shared namespace rather than through a kernel of the host by:

loading a library that implements a library function comprising a portable operating system interface (POSIX) application programming interface (API) for a file system library, wherein the library is preloaded at a daemon level and hooks a plurality of child processes comprising the application container and the storage container to the library;

intercepting, by the library function, the at least one item of data as part of a write request intended for the storage container, the at least one item of data comprising one or more input/output (I/O) packets; and

redirecting, by the library, the I/O packets to a ring buffer accessible by the storage container, wherein the rerouting reduces a storage and hardware processing resource load on the host and enables the host to more efficiently run a greater number of application containers;

at least one physical processor configured to execute the identification module, the configuration module, the creation module, and the rerouting module.

9. The system of claim 8 , wherein:

the identification module identifies a write request initiated by the application container to write data to the storage container;

the rerouting module reroutes the at least one item of data by rerouting the write request sent from the application container to the storage container.

10. The system of claim 8 , wherein:

the identification module identifies a read request initiated by the application container to read data from the storage container;

the rerouting module reroutes the at least one item of data by rerouting the data sent from the storage container to the application container in response to the read request.

11. The system of claim 8 , wherein the resource comprises a data structure in shared memory that is accessible by both the application container and the storage container.

12. The system of claim 8 , wherein the resource comprises an inter-process communication socket.

13. The system of claim 8 , wherein the ring buffer comprises an array of elements including at least a top element and a bottom element.

14. The system of claim 13 , wherein the bottom element in the array of elements points to the top element in the array of elements.

15. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify an application container, a storage container that stores data for the application container, and a host comprising physical hardware that hosts both the application container and the storage container;

configure the application container and the storage container to share a namespace on the host, wherein at least one of the application container or the storage container is configured to share the namespace before deployment to the host, and wherein the application container and the storage container are independent of any namespace prior to being configured to share the namespace on the host;

create, within the shared namespace on the host, a resource that enables the application container and the storage container to share data;

reroute at least one item of data sent between the application container and the storage container to pass through the resource in the shared namespace rather than through a kernel of the host by:

loading a library that implements a library function comprising a portable operating system interface (POSIX) application programming interface (API) for a file system library, wherein the library is preloaded at a daemon level and hooks a plurality of child processes comprising the application container and the storage container to the library;

intercepting, by the library function, the at least one item of data as part of a write request intended for the storage container, the at least one item of data comprising one or more input/output (I/O) packets; and

redirecting, by the library, the I/O packets to a ring buffer accessible by the storage container, wherein the rerouting reduces a storage and hardware processing resource load on the host and enables the host to more efficiently run a greater number of application containers.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to:

identify a write request initiated by the application container to write data to the storage container;

reroute the at least one item of data by rerouting the write request sent from the application container to the storage container.

17. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to:

identify a read request initiated by the application container to read data from the storage container;

reroute the at least one item of data by rerouting the data sent from the storage container to the application container in response to the read request.

18. The non-transitory computer-readable medium of claim 15 , wherein the resource comprises a data structure in shared memory that is accessible by both the application container and the storage container.

19. The non-transitory computer-readable medium of claim 15 , wherein the ring buffer comprises an array of elements including at least a top element and a bottom element.

20. The non-transitory computer-readable medium of claim 19 , wherein the bottom element in the array of elements points to the top element in the array of elements.

Assignments (14)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
MERGER Recorded May 21, 2021
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 056318/0105 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2016
From: MAKIN, GAURAV; KJELL, JOHN; KANTOR, KODY; MONTAGUE, BRUCE R.
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037650/0768 →
Cited By (1)
US 12,450,355