IP Library Granted Patent US 11,829,240
Granted Patent B2
US 11,829,240 · App. 17/569,760 · Granted Nov 28, 2023

Preventing duplication of files in a storage device

Inventor: Giuseppe Scrivano (Spezzano della Sila, IT)
Assignee: Red Hat, Inc.
G06F11/1004G06F11/0793G06F11/1435G06F16/1774
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,829,240
App. No.
17/569,760
Granted
Nov 28, 2023
Kind
B2
Abstract

Duplication of files in a storage device of a computing device can be avoided using some techniques described herein. In one example, a system can determine a checksum of a file in a software package. The system can then determine that the file is absent from a storage device by issuing a command for accessing the file based on the checksum. In response to determining that the file is absent from the storage device, the system can download a copy of the file from a remote computing device to the storage device over a network.

Claims (53)

1. A non-transitory computer-readable medium comprising instructions for a kernel of an operating system, the kernel being executable by a processor for causing the processor to:

determine a checksum of a file in a software package by:

retrieving a manifest file from a remote computing device, the manifest file including checksums of files in the software package; and

extracting the checksum of the file from the manifest file;

determine that the file is absent from a storage device by issuing a command for accessing the file based on the checksum; and

in response to determining that the file is absent from the storage device, download a copy of the file from the remote computing device to the storage device over a network.

2. The non-transitory computer-readable medium of claim 1 , wherein the kernel is further executable by the processor for causing the processor to:

determine another checksum of another file of the software package;

determine that the other file exists in the storage device by issuing another command for accessing the other file based on the other checksum; and

in response to determining that the other file exists in the storage device, store a memory link in a second memory location of the storage device, wherein the memory link references a first memory location in which the other file is stored in the storage device.

3. The non-transitory computer-readable medium of claim 2 , wherein the kernel is further executable by the processor for causing the processor to, in response to determining that the other file exists in the storage device:

prevent a copy of the other file from being downloaded over the network from the remote computing device to the storage device.

4. The non-transitory computer-readable medium of claim 1 , wherein the kernel is further executable by the processor for causing the processor to:

prior to issuing the command, modify an attribute of the file such that the file is immutable.

5. The non-transitory computer-readable medium of claim 1 , wherein the command is configured to request a file descriptor of the file, and wherein the kernel is further executable by the processor for causing the processor to:

determine that the file is absent from the storage device based on the command returning an error value rather than the file descriptor.

6. The non-transitory computer-readable medium of claim 1 , wherein the command is an fs-verity command.

7. The non-transitory computer-readable medium of claim 1 , wherein the software package is a container image that includes one or more layers of files.

8. A system comprising:

a processor; and

a memory including instructions for a kernel of an operating system, the kernel being executable by the processor for causing the processor to:

determine a checksum of a file in a software package;

determine that the file is absent from a storage device by:

issuing a command for accessing the file based on the checksum, wherein the command is configured to request a file descriptor of the file; and

receiving an error value rather than the file descriptor in return from issuing the command; and

in response to determining that the file is absent from the storage device, download a copy of the file from a remote computing device to the storage device over a network.

9. The system of claim 8 , wherein the kernel is further executable by the processor for causing the processor to:

determine another checksum of another file of the software package;

determine that the other file exists in the storage device by issuing another command for accessing the other file based on the other checksum; and

in response to determining that the other file exists in the storage device, store a memory link in a second memory location of the storage device, wherein the memory link references a first memory location in which the other file is stored in the storage device.

10. The system of claim 9 , wherein the kernel is further executable by the processor for causing the processor to, in response to determining that the other file exists in the storage device:

prevent a copy of the other file from being downloaded over the network from the remote computing device to the storage device.

11. The system of claim 8 , wherein the kernel is further executable by the processor for causing the processor to:

prior to issuing the command, modify an attribute of the file such that the file is immutable.

12. The system of claim 8 , wherein the kernel is further executable by the processor for causing the processor to determine the checksum of the file by:

retrieving a manifest file from the remote computing device, the manifest file including checksums of files in the software package; and

extracting the checksum of the file from the manifest file.

13. The system of claim 8 , wherein the command is an fs-verity command.

14. The system of claim 8 , wherein the software package is a container image that includes one or more layers of files.

15. A method comprising:

determining, by a kernel executing on a processor, a checksum of a file in a software package by:

retrieving a manifest file from a remote computing device, the manifest file including checksums of files in the software package; and

extracting the checksum of the file from the manifest file;

determining, by the kernel, that the file is absent from a storage device by issuing a command for accessing the file based on the checksum; and

in response to determining that the file is absent from the storage device, downloading, by the kernel, a copy of the file from the remote computing device to the storage device over a network.

16. The method of claim 15 , further comprising:

determining, by the kernel, another checksum of another file of the software package;

determining, by the kernel, that the other file exists in the storage device by issuing another command for accessing the other file based on the other checksum; and

in response to determining that the other file exists in the storage device, storing a memory link in a second memory location of the storage device, wherein the memory link references a first memory location in which the other file is stored in the storage device.

17. The method of claim 16 , further comprising:

preventing, by the kernel, a copy of the other file from being downloaded from the remote computing device to the storage device.

18. The method of claim 15 , further comprising:

prior to issuing the command, modifying, by the kernel, an attribute of the file such that the file is immutable.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2022
From: SCRIVANO, GIUSEPPE
To: RED HAT, INC.
Reel/Frame 058586/0220 →