IP Library Granted Patent US 12,353,734
Granted Patent B2
US 12,353,734 · App. 18/274,313 · Granted Jul 8, 2025

Using object properties for facilitating object storage

Inventors: Peng Xu (Milpitas, CA); Yikang Xu (Redmond, WA); Rui Wang (Redmond, WA); Yu Du (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F3/0631G06F3/0668
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,353,734
App. No.
18/274,313
Granted
Jul 8, 2025
Kind
B2
Abstract

A storage engine may obtain one or more object access properties of an object to be received, and determine a type of storage device that is suitable or desirable for storing the object from among different types of storage devices based at least in part on the one or more object access properties of the object to be received. In response to determining the type of storage device, the storage engine may allocate a storage device of such type for the object. The storage engine may then receive the object, and store the object into the allocated storage device.

Claims (59)

1. A method implemented by one or more processors of a storage engine, the method comprising:

obtaining one or more object access properties of an object to be received;

determining a storage device of a particular type from among storage devices of different types based at least in part on the one or more object access properties of the object to be received;

allocating the storage device of the particular type for storing the object to be received;

receiving the object from a client device, the object comprising a plurality of records; and

storing the plurality of records of the object in the storage device, wherein the one or more object access properties of the object to be received comprise whether a plurality of records of the object is read sequentially, and the method further comprises:

determining whether the plurality of records of the object is read sequentially; and

in response to receiving a request for fetching a record of the plurality of the records of the object from the client device, fetching the record and further pre-fetching one or more records that follows after the record from the storage device.

2. The method of claim 1 , further comprising receiving an object creation instruction from the client device, the object creation instruction comprising the one or more object access properties of the object to be received.

3. The method of claim 2 , wherein the object creation instruction further comprises an object record format.

4. The method of claim 3 , wherein the object record format comprises one of a non-specific format or a fixed format, the non-specific format enabling a maximum record size and a minimum record size of the object to be defined according to a storage specification of the storage device of the particular type, and the fixed format including information of an average physical size of the object and a variation of size of the object.

5. The method of claim 1 , wherein the storage devices of the different types comprise a cache, a random access memory, a solid state device, and a hard drive.

6. The method of claim 1 , wherein the one or more object access properties of the object to be received comprise an amount of data of the object that is to be read in the subsequent access requests, and the method further comprises:

determining whether the amount of data of the object that is to be read in the subsequent access requests is greater than or equal to a predefined read threshold, and a predefined number of individual sizes of the plurality of records of the object stored in the storage device are less than a predefined size threshold; and

triggering a data merging operation on the plurality of records of the object in response to determining that the amount of data of the object that is to be read in the subsequent access requests is greater than or equal to the predefined read threshold, and the predefined number of individual sizes of the plurality of records of the object stored in the storage device are less than the predefined size threshold.

7. The method of claim 1 , wherein the one or more object access properties of the object to be received comprise a latency requirement for responding to subsequent access requests and whether the object is to be modified within a predetermined time period from a current time, and the method further comprises:

determining whether the latency requirement for responding to the subsequent access requests indicates a latency that is longer than a predefined latency threshold being acceptable, and whether the object is indicated to be modified within the predetermined time period from the current time; and

postponing the storing of the plurality of records of the object in the storage device by a predefined amount of time from a time of receiving the object from the client device.

8. The method of claim 1 , wherein allocating the storage device of the particular type for storing the object to be received comprises:

allocating a SLC (single-levelcell) solid state device for storing the object to be received in response to a latency requirement belonging to a first latency range; or

allocating a QLC (quad-levelcell) solid state device for storing the object to be received in response to the latency requirement belonging to a third latency range.

9. One or more processor readable media storing executable instructions that, when executed by one or more processors of a storage engine, cause the one or more processors to perform acts comprising:

receiving an object creation instruction from a client device, the object creation instruction comprising one or more object access properties of an object to be received and an object record format;

obtaining the one or more object access properties of the object to be received;

determining a storage device of a particular type from among storage devices of different types based at least in part on the one or more object access properties of the object to be received; and

allocating the storage device of the particular type for storing the object to be received, wherein the object record format comprises one of a non-specific format or a fixed format, the non-specific format enabling a maximum size and a minimum size of a record of the object to be defined according to a storage specification of the storage device of the particular type, and the fixed format including information of an average physical size of the object and a variation of size of the object.

10. The one or more processor readable media of claim 9 , wherein the one or more object access properties of the object to be received comprise at least one of:

an amount of data of the object that is to be read in subsequent access requests after the object is received,

a potential frequency range for receiving the subsequent access requests,

a latency requirement for responding to the subsequent access requests,

whether records of the object are read sequentially, or

whether the object is to be modified within a predetermined time period from a current time.

11. The one or more processor readable media of claim 9 , the acts further comprising:

receiving the object from a client device, the object comprising a plurality of records; and

storing the plurality of records of the object in the storage device.

12. The one or more processor readable media of claim 11 , wherein the one or more object access properties of the object to be received comprise an amount of data of the object that is to be read in subsequent access requests, and the acts further comprise:

determining whether the amount of data of the object that is to be read in the subsequent access requests is greater than or equal to a predefined read threshold, and a predefined number of individual sizes of the plurality of records of the object stored in the storage device are less than a predefined size threshold; and

triggering a data merging operation on the plurality of records of the object in response to determining whether the amount of data of the object that is to be read in the subsequent access requests is greater than or equal to the predefined read threshold, and the predefined number of individual sizes of the plurality of records of the object stored in the storage device are less than the predefined size threshold.

13. The one or more processor readable media of claim 11 , wherein the one or more object access properties of the object to be received comprise whether the plurality of records of the object is read sequentially, and the acts further comprise:

determining whether the plurality of records of the object is read sequentially; and

in response to receiving a request for fetching a record of the plurality of the records of the object from a client device, fetching the record and further pre-fetching one or more records that follows after the record from the storage device.

14. The one or more processor readable media of claim 11 , wherein the one or more object access properties of the object to be received comprise a latency requirement for responding to subsequent access requests and whether the object is to be modified within a predetermined time period from a current time, and the acts further comprise:

determining whether the latency requirement for responding to the subsequent access requests indicates a latency that is longer than a predefined latency threshold being acceptable, and whether the object is indicated to be modified within the predetermined time period from the current time; and

postponing the storing of the plurality of records of the object in the storage device by a predefined amount of time from a time of receiving the object from the client device.

15. A storage engine comprising:

one or more processors; and

memory storing executable instructions that, when executed by the one or more processors of a storage engine, cause the one or more processors to perform acts comprising:

obtaining one or more object access properties of an object to be received;

determining a storage device of a particular type from among storage devices of different types based at least in part on the one or more object access properties of the object to be received;

allocating the storage device of the particular type for storing the object to be received;

receiving the object from a client device, the object comprising a plurality of records; and

storing the plurality of records of the object in the storage device, wherein the one or more object access properties of the object to be received comprise whether the one or more object access properties of the object to be received comprise a latency requirement for responding to subsequent access requests and whether the object is to be modified within a predetermined time period from a current time, and the method further comprises:

determining whether the latency requirement for responding to the subsequent access requests indicates a latency that is longer than a predefined latency threshold being acceptable, and whether the object is indicated to be modified within the predetermined time period from the current time; and

postponing the storing of the plurality of records of the object in the storage device by a predefined amount of time from a time of receiving the object from the client device.

16. The method of claim 1 , wherein the one or more object access properties of the object to be received further comprise at least one of:

an amount of data of the object that is to be read in subsequent access requests after the object is received,

a potential frequency range for receiving the subsequent access requests,

a latency requirement for responding to the subsequent access requests, or

whether the object is to be modified within a predetermined time period from a current time.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2025
From: XU, YIKANG; XU, PENG; WANG, RUI; DU, YU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 071112/0852 →
Continuity (1)
Related Publication 20240086091A1 · Mar 14, 2024
References Cited (12)
US 9588976B1 · Riel · 2017 [cited by examiner]
US 10176212B1 · Prohofsky · 2019 [cited by examiner]
US 10503406B2 · Kang · 2019 [cited by examiner]
US 10572159B1 · Thrane · 2020 [cited by examiner]
US 11061594B1 · Wang · 2021 [cited by examiner]
US 20090282084A1 · Milby · 2009 [cited by applicant]
US 20140207827A1 · Huang et al. · 2014 [cited by applicant]
US 20180007134A1 · Guim Bernat · 2018 [cited by examiner]
CN 101038590A · 2007 [cited by applicant]
CN 105893531A · 2016 [cited by applicant]
International Search Report mailed Nov. 10, 2021, from PCT/CN2021/076445, 3 pages. [cited by applicant]
Written Opinion mailed Nov. 10, 2021, from PCT/CN2021/076445, 4 pages. [cited by applicant]