IP Library Granted Patent US 11,487,551
Granted Patent B2
US 11,487,551 · App. 17/313,965 · Granted Nov 1, 2022

System and method for key value store

Inventors: Andrew M. Rogers (Bellevue, WA); Arthur Zwiegincew (Medina, WA)
Assignee: Meta Platforms Technologies, LLC
G06F9/4401G06F21/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,487,551
App. No.
17/313,965
Granted
Nov 1, 2022
Kind
B2
Abstract

In certain embodiments, a method includes starting an application as a first process within a user space of an operating system. The application instantiates a key-value store library associated with the operating system. The method also includes managing, by a block device service running within the user space, one or more first data blocks of a persistent storage device allocated to the key-value store library. In addition, the method includes receiving, by a kernel of the operating system, a system call request comprising an access request generated by the key-value store library. The method further includes granting, by the block device service, and in response to the access request, the key-value store library access to the one or more first data blocks through an inter process communication channel between the application and the block device service via the kernel.

Claims (51)

1. A method comprising, by a computing device:

starting an application as a first process within a user space of an operating system, wherein the application instantiates a key-value store library associated with the operating system, where the key-value store library is located within the application;

starting a block device service as a second process within the user space of the operating system, the block device service being configured to manage a persistent storage device of the computing device;

managing, by the block device service running as the second process within the user space of the operating system, one or more first data blocks of the persistent storage device allocated to the key-value store library, wherein the key-value store library manages the one or more first data blocks using a mapping between a virtual storage space and the one or more first data blocks;

receiving, by a kernel of the operating system, a system call request generated by the key- value store library, the system call request comprising an access request to access the persistent storage device of the computing device, wherein the kernel is a microkernel;

granting, by the block device service and in response to the access request, the key-value store library access to the one or more first data blocks; and

providing the key-value store library, in response to the system call request, access to the one or more first data blocks through an inter process communication (IPC) channel between the application and the block device service via the kernel.

2. The method according to claim 1 , further comprising:

reading or writing data on the one or more first data blocks using the key-value store library.

3. The method of claim 1 , further comprising:

sending a request to a logical volume service during set-up of the application; and

allocating the one or more first data blocks of the persistent storage device for the key-value store library.

4. The method of claim 3 , wherein the logical volume service informs the block device service of the allocation of the one or more first data blocks.

5. The method of claim 1 , wherein the key-value store library comprises an internal structure indicating a location of the one or more first data blocks in the persistent storage device.

6. The method of claim 1 , wherein the application further instantiates a file system library associated with the operating system, where the file system library is located within the application.

7. The method of claim 6 , further comprising:

managing, by the block device service running as the second process within the user space of the operating system, one or more second data blocks of the persistent storage device allocated to the file system library.

8. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

start an application as a first process within a user space of an operating system, wherein the application instantiates a key-value store library associated with the operating system, where the key-value store library is located within the application;

start a block device service as a second process within the user space of the operating system, the block device service being configured to manage a persistent storage device of a computing device;

manage, by the block device service running as the second process within the user space of the operating system, one or more first data blocks of the persistent storage device allocated to the key-value store library, wherein the key-value store library manages the one or more first data blocks using a mapping between a virtual storage space and the one or more first data blocks;

receive, by a kernel of the operating system, a system call request generated by the key-value store library, the system call request comprising an access request to access the persistent storage device of the computing device, wherein the kernel is a microkernel;

grant, by the block device service and in response to the access request, the key-value store library access to the one or more first data blocks; and

provide the key-value store library, in response to the system call request, access to the one or more first data blocks through an inter process communication (IPC) channel between the application and the block device service via the kernel.

9. The media of claim 8 , wherein the software is further operable when executed to:

read or write data on the one or more first data blocks using the key-value store library.

10. The media of claim 8 , wherein the software is further operable when executed to:

send a request to a logical volume service during set-up of the application; and

allocate the one or more first data blocks of the persistent storage device for the key-value store library.

11. The media of claim 10 , wherein the logical volume service informs the block device service of the allocation of the one or more first data blocks.

12. The media of claim 8 , wherein the key-value store library comprises an internal structure indicating a location of the one or more first data blocks in the persistent storage device.

13. The media of claim 8 , wherein the application further instantiates a file system library associated with the operating system, where the file system library is located within the application.

14. The media of claim 13 , wherein the software is further operable when executed to:

manage, by the block device service running as the second process within the user space of the operating system, one or more second data blocks of the persistent storage device allocated to the file system library.

15. A system comprising:

one or more processors; and

one or more computer-readable non-transitory storage media coupled to the one or more processors and comprising instructions operable upon execution by the one or more processors to cause the system to:

start an application as a first process within a user space of an operating system, wherein the application instantiates a key-value store library associated with the operating system, where the key-value store library is located within the application;

start a block device service as a second process within the user space of the operating system, the block device service being configured to manage a persistent storage device of a computing device;

manage, by the block device service running as the second process within the user space of the operating system, one or more first data blocks of the persistent storage device allocated to the key-value store library, wherein the key-value store library manages the one or more first data blocks using a mapping between a virtual storage space and the one or more first data blocks;

receive, by a kernel of the operating system, a system call request generated by the key-value store library, the system call request comprising an access request to access the persistent storage device of the computing device, wherein the kernel is a microkernel;

grant, by the block device service and in response to the access request, the key-value store library access to the one or more first data blocks; and

provide the key-value store library, in response to the system call request, access to the one or more first data blocks through an inter process communication (IPC) channel between the application and the block device service via the kernel.

16. The system of claim 15 , wherein the processors are further operable when executing the instructions to:

read or write data on the one or more first data blocks using the key-value store library.

17. The system of claim 15 , wherein the processors are further operable when executing the instructions to:

send a request to a logical volume service during set-up of the application; and

allocate the one or more first data blocks of the persistent storage device for the key-value store library.

18. The system of claim 17 , wherein the logical volume service informs the block device service of the allocation of the one or more first data blocks.

19. The system of claim 15 , wherein the key-value store library comprises an internal structure indicating a location of the one or more first data blocks in the persistent storage device.

20. The system of claim 15 , wherein the application further instantiates a file system library associated with the operating system, where the file system library is located within the application.

Assignments (1)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →