IP Library › Granted Patent US 12,475,146
Granted Patent B2
US 12,475,146 · App. 18/817,998 · Granted Nov 18, 2025

Mass insertion into single-threaded databases

Inventor: Roberto Mirizzi (Santa Clara, CA)
Assignee: Roku, Inc.
G06F16/285G06F16/18G06F16/21G06F16/23G06F16/2308G06F16/24532G06F16/256
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 12,475,146
App. No.
18/817,998
Granted
Nov 18, 2025
Kind
B2
Abstract

Disclosed herein are system, method, and computer-readable device embodiments for mass insertion into single-threaded databases. An embodiment includes a processor and a memory, a storage layer to interface with a plurality of software applications and to receive data output from the plurality of software applications, and a listener that runs according to an update policy, to detect the presence of information newly stored within the storage layer. The processor and memory may be configured to maintain at least a part of a running database cluster including a plurality of nodes, with at least two nodes configured to run without multi-threading, and to execute an intermediate module to send at least part of the information to the database cluster, and to perform simultaneous access to multiple database nodes running without multi-threading.

Claims (34)

1 . A system, comprising:

at least one processor;

at least one storage layer configured to interface with a plurality of software applications and to receive data output from the plurality of software applications;

at least one listener configured to detect a presence of a data entry newly stored within the at least one storage layer, wherein the data entry comprises at least a key and a value in a key-value pair corresponding to the data entry; and

a memory operatively coupled to the at least one processor, the at least one processor configured to perform operations comprising:

sending the key-value pair to a computer cluster, wherein the computer cluster comprises a master node interfacing with a plurality of slave nodes, each slave node of the plurality of slave nodes assigned to a corresponding database node based on a hash value of the key of the key-value pair being unique to the corresponding database node, and wherein each of the corresponding database nodes is configured to run as a single-threaded database; and

performing at least one mass insertion of the data entry from the at least one storage layer by simultaneous access and storage of the data entry to at least two of a plurality of the corresponding database nodes.

2 . The system of claim 1 , wherein the hash value of the key is within a range of hashes assigned to the corresponding database node.

3 . The system of claim 1 , the operations further comprising performing the at least one mass-insertion across the plurality of corresponding database nodes, for a quantity of the plurality of corresponding database nodes equal to a corresponding quantity of the plurality of slave nodes.

4 . The system of claim 3 , wherein the quantity of the plurality of corresponding database nodes and the corresponding quantity of the plurality of slave nodes excludes overprovisioned nodes corresponding to the plurality of corresponding database nodes or to the plurality of slave nodes.

5 . The system of claim 1 , the operations further comprising generating or updating at least one content recommendation based at least in part on the key-value pair.

6 . The system of claim 1 , wherein a function of the at least one listener comprises a wait state and a lambda function.

7 . The system of claim 1 , wherein the at least one storage layer comprises object storage, and wherein the object storage comprises distributed objects in a unified namespace.

8 . A computer-implemented method, comprising:

interfacing, via at least one processor, with at least one storage layer to receive data output from a plurality of software applications;

detecting, via at least one listener, a presence of a data entry newly stored within the at least one storage layer, wherein the data entry comprises at least a key and a value in a key-value pair corresponding to the data entry;

sending the key-value pair to a computer cluster, wherein the computer cluster comprises a master node interfacing with a plurality of slave nodes, each slave node of the plurality of slave nodes assigned to a corresponding database node based on a hash value of the key of the key-value pair being unique to the corresponding database node, and wherein each of the corresponding database nodes is configured to run as a single-threaded database; and

performing at least one mass insertion of the data entry from the at least one storage layer by simultaneous access and storage of the data entry to at least two of a plurality of the corresponding database nodes.

9 . The computer-implemented method of claim 8 , further comprising performing a mass-insertion across the plurality of corresponding database nodes, for a quantity of the plurality of corresponding database nodes equal to a corresponding quantity of the plurality of slave nodes.

10 . The computer-implemented method of claim 9 , wherein the quantity of the plurality of corresponding database nodes and the corresponding quantity of the plurality of slave nodes excludes overprovisioned nodes corresponding to the plurality of corresponding database nodes or to the plurality of slave nodes.

11 . The computer-implemented method of claim 8 , further comprising generating or updating at least one content recommendation based at least in part on the key-value pair.

12 . The computer-implemented method of claim 8 , wherein the at least one listener comprises a wait state and a lambda function.

13 . The computer-implemented method of claim 8 , wherein the at least one storage layer comprises object storage, and wherein the object storage comprises distributed objects in a unified namespace.

14 . A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computer processor, cause the at least one computer processor to perform operations comprising:

interfacing, via the at least one computer processor, with at least one storage layer to receive data output from a plurality of software applications;

detecting, via at least one listener, a presence of a data entry newly stored within the at least one storage layer, wherein the data entry comprises at least a key and a value in a key-value pair corresponding to the data entry;

sending the key-value pair to a computer cluster, wherein the computer cluster comprises a master node interfacing with a plurality of slave nodes, each slave node of the plurality of slave nodes assigned to a corresponding database node based on a hash value of the key of the key-value pair being unique to the corresponding database node, and wherein each of the corresponding database nodes is configured to run as a single-threaded database; and

performing at least one mass insertion of the data entry from the at least one storage layer by simultaneous access and storage of the data entry to at least two of a plurality of the corresponding database nodes.

15 . The non-transitory computer-readable medium of claim 14 , the operations further comprising performing a mass-insertion across the plurality of corresponding database nodes, for a quantity of the plurality of corresponding database nodes equal to a corresponding quantity of the plurality of slave nodes.

16 . The non-transitory computer-readable medium of claim 15 , wherein the quantity of the plurality of corresponding database nodes and the corresponding quantity of the plurality of slave nodes excludes overprovisioned nodes corresponding to the plurality of corresponding database nodes or to the plurality of slave nodes.

17 . The non-transitory computer-readable medium of claim 14 , the operations further comprising generating or updating at least one content recommendation based at least in part on the key-value pair.

18 . The non-transitory computer-readable medium of claim 14 , wherein the detecting comprises a wait state and a lambda function.

19 . The non-transitory computer-readable medium of claim 14 , wherein the at least one storage layer comprises object storage, and wherein the object storage comprises distributed objects in a unified namespace.

20 . The non-transitory computer-readable medium of claim 14 , the operations further comprising updating at least one state indicator for a shared resource among the plurality of corresponding database nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2024
From: MIRIZZI, ROBERTO
To: ROKU, INC.
Reel/Frame 068544/0200 →
Continuity (4)
Continuation 18303615 · Apr 20, 2023
Continuation 16939758 · Jul 27, 2020
Continuation 15849103 · Dec 20, 2017
Related Publication 20240419692A1 · Dec 19, 2024
References Cited (23)
US 9842031B1 · Kharatishvilli · 2017 [cited by applicant]
US 10726051B2 · Mirizzi · 2020 [cited by applicant]
US 11663242B2 · Mirizzi · 2023 [cited by applicant]
US 20060010170A1 · Lashley et al. · 2006 [cited by applicant]
US 20090089334A1 · Mohamed et al. · 2009 [cited by applicant]
US 20130339516A1 · Chauhan et al. · 2013 [cited by applicant]
US 20150052104A1 · Shadmon · 2015 [cited by applicant]
US 20150142733A1 · Shadmon · 2015 [cited by applicant]
US 20160085809A1 · de Castro Alves et al. · 2016 [cited by applicant]
US 20160292257A1 · Bar et al. · 2016 [cited by applicant]
US 20160378691A1 · Sherman · 2016 [cited by applicant]
US 20170006135A1 · Siebel et al. · 2017 [cited by applicant]
US 20170111365A1 · Michael et al. · 2017 [cited by applicant]
US 20190188314A1 · Mirizzi · 2019 [cited by applicant]
US 20210149922A1 · Mirizzi · 2021 [cited by applicant]
US 20230259532A1 · Mirizzi · 2023 [cited by applicant]
International Search Report and Written Opinion for International Patent Application No. PCT/US2018/062562, dated Mar. 11, 2019. [cited by applicant]
Supplementary European Search Report from European Patent Application No. 18891115.0, dated Aug. 2, 2021 (8 pages). [cited by applicant]
Gong, Weiwei, “Improving Main-Memory Database (MMDB) Distributed Transactional Concurrency,” U. Mass. Boston (Dec. 2014) (95 pages). [cited by applicant]
“Transaction log,” Wikipedia (User Hocngo), Jul. 23, 2017 (3 pages), https ://en. wikipedia. org/w /index. php?title=Transaction _ lo g&oldid=792004 931. [cited by applicant]
Communication pursuant to Article 94(3) EPC issued in corresponding European Application No. 18891115.0 mailed Jul. 28, 2022, 9 pages. [cited by applicant]
Rabelo, B.M. and DAVIS Jr., C.A., “SODDA—A Service-Oriented Distributed Database Architecture,” Accession No. XP055937606, Dec. 31, 2008, accessed at https://homepages.dcc.ufmg.br/˜clodoveu/files/100.40/AC042.%202008%20… [cited by applicant]
Summons to Attend Oral Proceedings Pursuant to Rule 115(1) EPC directed to related European Patent Application No. 18891115.0, mailed May 13, 2024; 50 pages. [cited by applicant]