IP Library Granted Patent US 12,253,997
Granted Patent B2
US 12,253,997 · App. 17/655,682 · Granted Mar 18, 2025

Data objects in a distributed file system

Inventors: Shyam Narayan Singh (Hyderabad Telangana, IN); Anshul Data (Hyderabad Telangana, IN); Rajesh Boddu (Hyderabad Telangana, IN); Prasad Boddupalli (Hyderabad Telangana, IN); Giri Prasad Reddy Desireddygari (Hyderabad Telangana, IN); Premkumar Jonnala (Hyderabad Telangana, IN); Chandra Guru Kiran Babu Sanapala (Hyderabad Telangana, IN)
Assignee: Hewlett Packard Enterprise Development LP
G06F16/2358G06F16/14G06F16/285
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,253,997
App. No.
17/655,682
Granted
Mar 18, 2025
Kind
B2
Abstract

Approaches for writing data objects to a distributed file system are described. In an example, a size of a data object to be created within a distributed file system may be determined based on a client request. Based on the size of the data object, data content of the data object is inserted into one of the object location table, object data table or a data container within the distributed file system. In an example, metadata corresponding to the data object may be written to an object location table.

Claims (71)

1. A system comprising:

a processor; and

a non-transitory machine-readable storage medium comprising instructions executable on the processor to:

determine, in response to a receiving a client request, that a size of a first data object to be created, including first data content, is less than a first size threshold;

based on determining that the size of the first data object including the first data content is less than the first size threshold, insert the first data content of the first data object together with metadata of the first data object into an object location table, wherein the object location table stores metadata pertaining to a plurality of data objects within a distributed file system;

determine a second data object to be created within the distributed file system, wherein the second data object, including second data content, is of a size greater than or equal to the first size threshold;

write metadata of the second data object into the object location table; and

insert the second data content of the second data object into an object data table, wherein the metadata of the second data object written into the object location table comprises a reference to the object data table.

2. The system of claim 1 , wherein the instructions are executable on the processor to further:

set an in-progress flag in the object location table to true while inserting the second data content of the second data object into the object data table.

3. The system of claim 1 , wherein the object location table comprises a data presence flag indicating whether the first data content of the first data object is inserted into the object location table.

4. The system of claim 1 , wherein the size of the second data object is less than a second size threshold, and the instructions are executable on the processor to:

determine a third data object to be created within the distributed file system, wherein the third data object, including third data content, is of a size greater than or equal to the second size threshold and less than a third size threshold;

write metadata of the third data object into the object location table; and

insert the third data content of the third data object into a data container within the distributed file system.

5. The system of claim 4 , wherein the object location table comprises a record containing:

an object location field that points to a location of the third data content stored in the data container within the distributed file system, and

a metadata field containing the metadata of the third data object.

6. The system of claim 4 , wherein the instructions are executable on the processor to:

determine a fourth data object to be created within the distributed file system, wherein the fourth data object, including fourth data content, is of a size greater than or equal to the third size threshold;

write metadata of the fourth data object into the object location table;

insert the fourth data content of the fourth data object as a plurality of data chunks into a further data container within the distributed file system; and

update the object location table with a reference to a table of pointers that reference the plurality of data chunks corresponding to the fourth data object.

7. The system of claim 6 , wherein to update the object location table, the instructions are executable on the processor to update a pointer of the pointers concurrently with inserting a corresponding data chunk of the plurality of data chunks into the further data container.

8. A system comprising:

a processor; and

a non-transitory machine-readable storage medium comprising instructions executable on the processor to:

determine, in response to a receiving a client request, that a size of a first data object to be created, including data content, is less than a first size threshold;

based on determining that the size of the first data object including the data content is less than the first size threshold, insert the data content of the first data object together with metadata of the first data object into an object location table, wherein the object location table stores metadata pertaining to a plurality of data objects within a distributed file system; and

for respective data objects of the plurality of data objects that are of sizes greater than the first size threshold, store the data content of the respective data objects outside of the object location table,

wherein the object location table is stored in a main memory of a computing device of the distributed file system, and the object location table comprises a plurality of records containing the metadata of respective data objects of the plurality of data objects, and wherein the metadata of the first data object is inserted into a first field of a first record of the plurality of records, and the data content of the first data object is inserted into a second field of the first record.

9. The system of claim 8 , wherein the inserting of the data content together with the metadata of the first data object into the object location table comprises:

performing a single row update that writes the metadata of the first data object to a metadata field of a row of the object location table, and inserts the data content of the first data object into an object data field of the row.

10. A method comprising:

identifying, by a system comprising a hardware processor, a first data object and a second data object to be created within a distributed file system, the first data object including first data content, and the second data object including second data content;

determining, by the system, a first size of the first data object and a second size of the second data object, the second size greater than the first size; and

based on determining the first size of the first data object and the second size of the second data object:

writing, by the system, metadata of the first data object into a first row of an object location table, and inserting the first data content of the first data object into the first row of the object location table, and

writing, by the system, metadata of the second data object into a second row of the object location table, and inserting the second data content of the second data object into a storage location outside the object location table.

11. The method of claim 10 , wherein the storage location outside the object location table comprises an object data table or a data container within the distributed file system, the method further comprising:

responsive to a completion of the inserting of the second data content into the object data table or the data container, setting an in-progress flag to indicate that writing of the second data content has completed.

12. The method of claim 11 , comprising:

detecting a client request seeking to access the second data content; and

returning the second data content based on a state of the in-progress flag.

13. The method of claim 11 , wherein the in-progress flag is set to a first state to indicate that the writing of the second data content has completed, and to a different second state to indicate that the writing of the second data content is in progress.

14. The method of claim 10 , wherein the first row comprises a metadata field and an object data field, the method comprising:

performing a single row update that writes the metadata of the first data object to the metadata field of the first row, and inserts the first data content of the first data object into the object data field of the first row.

15. The method of claim 10 , wherein:

the inserting of the first data content of the first data object into the first row of the object location table is based on the first size of the first data object being less than a first size threshold, and

the inserting of the second data content of the second data object into the storage location outside the object location table is based on the second size of the second data object being greater than the first size threshold.

16. The method of claim 15 , wherein the storage location comprises an object data table, and the second data content is inserted into the object data table based on the second size of the second data object being greater than or equal the first size threshold and less than a second size threshold, the method further comprising:

determining, by the system, that a third size of a third data object including third data content is greater than or equal to the second size threshold and less than a third size threshold; and

based on determining that the third size of the third data object is greater than or equal the second size threshold and less than the third size threshold, inserting, by the system, the third data content of the third data object into a data container within the distributed file system, and updating an object location field in a third row of the object location table with a reference to the data container.

17. The method of claim 10 , further comprising:

receiving, by the system, a request to access the first data object; and

returning, by the system, the first data content from the first row of the object location table as a response to the request.

18. A non-transitory computer-readable medium comprising instructions that, when executed on a processor, cause a system to:

determine a size of a data object, including data content, to be created within a distributed file system based on a client request; and

based on the size of the data object being less than a first size threshold:

perform a single row update in an object location table by writing metadata of the data object into a row of the object location table, and inserting the data content of the data object into the row of the object location table, wherein the object location table is to store metadata pertaining to a plurality of data objects within the distributed file system.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions when executed on the processor cause the system to:

determine a size of a second data object, including second data content, to be created within the distributed file system; and

based on the size of the second data object being greater than or equal the first size threshold and less than a second size threshold:

write metadata of the second data object into a second row of the object location table,

insert the second data content into a storage location outside the object location table, and

set an in-progress flag in the second row of the object location table to indicate that the second data content is in process of being inserted into the storage location outside the object location table.

20. The non-transitory computer-readable medium of claim 19 , wherein the storage location outside the object location table comprises an object data table, and the instructions when executed on the processor cause the system to:

determine a size of a third data object, including third data content, to be created within the distributed file system; and

based on the size of the third data object being greater than or equal the second size threshold and less than a third size threshold:

write metadata of the third data object into a third row of the object location table, and

insert the third data content of the third data object into a data container within the distributed file system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2022
From: SINGH, SHYAM NARAYAN; DATA, ANSHUL; BODDU, RAJESH; BODDUPALLI, PRASAD; REDDY DESIREDDYGARI, GIRI PRASAD; JONNALA, PREMKUMAR; BABU SANAPALA, CHANDRA GURU KIRAN
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 059340/0554 →
Priority Claims (1)
IN 202141059077 · Dec 17, 2021 · national
Continuity (1)
Related Publication 20230195713A1 · Jun 22, 2023
References Cited (58)
US 5239647A · Anglin et al. · 1993 [cited by applicant]
US 8572055B1 · Wu et al. · 2013 [cited by applicant]
US 8719286B1 · Xing et al. · 2014 [cited by applicant]
US 8799238B2 · Eshghi et al. · 2014 [cited by applicant]
US 8959067B1 · Patiejunas et al. · 2015 [cited by applicant]
US 9183390B2 · Thadikaran et al. · 2015 [cited by applicant]
US 9207930B2 · Srivas et al. · 2015 [cited by applicant]
US 9222893B2 · Hornabrook et al. · 2015 [cited by applicant]
US 9455955B2 · Fetik · 2016 [cited by applicant]
US 9501483B2 · Srivas et al. · 2016 [cited by applicant]
US 9613043B2 · Rao et al. · 2017 [cited by applicant]
US 9633056B2 · Attarde et al. · 2017 [cited by applicant]
US 9696913B1 · Aron et al. · 2017 [cited by applicant]
US 10146793B2 · Srivas et al. · 2018 [cited by applicant]
US 10180809B2 · Fetik · 2019 [cited by applicant]
US 10365974B2 · Todd et al. · 2019 [cited by applicant]
US 10698941B2 · Maybee · 2020 [cited by examiner]
US 11017032B1 · Karppanen · 2021 [cited by applicant]
US 11182256B2 · Mayo et al. · 2021 [cited by applicant]
US 11663234B2 · Falkinder et al. · 2023 [cited by applicant]
US 11726989B2 · Tesse · 2023 [cited by examiner]
US 20040060073A1 · Bialk et al. · 2004 [cited by applicant]
US 20080120544A1 · Treadgold · 2008 [cited by applicant]
US 20100053162A1 · Dammertz et al. · 2010 [cited by applicant]
US 20100332456A1 · Prahlad · 2010 [cited by examiner]
US 20120233522A1 · Barton et al. · 2012 [cited by applicant]
US 20130185259A1 · Guo · 2013 [cited by applicant]
US 20160110260A1 · Chandrasekharan et al. · 2016 [cited by applicant]
US 20170270134A1 · Solis · 2017 [cited by applicant]
US 20170300633A1 · Simon et al. · 2017 [cited by applicant]
US 20180218005A1 · Kuhtz et al. · 2018 [cited by applicant]
US 20180307425A1 · Blount · 2018 [cited by applicant]
US 20190121705A1 · Mayo et al. · 2019 [cited by applicant]
US 20190310968A1 · Attarde et al. · 2019 [cited by applicant]
US 20200097445A1 · Grimaldi · 2020 [cited by applicant]
US 20210081388A1 · Ding et al. · 2021 [cited by applicant]
US 20210397583A1 · Koppaka · 2021 [cited by examiner]
US 20220107921A1 · Mayo et al. · 2022 [cited by applicant]
US 20220318223A1 · Ahluwalia · 2022 [cited by examiner]
CN 105324765A · 2016 [cited by applicant]
CN 105718548A · 2016 [cited by applicant]
CN 110603517A · 2019 [cited by applicant]
CN 112486403A · 2021 [cited by applicant]
WO 2021038558A1 · 2021 [cited by applicant]
Vishal Lall, “Hpe GreenLake edge-to-cloud platform rolls out industry's first cloud-native unified analytics and data lakehouse cloud services optimized for hybrid environments”, HPE, Sep. 28, 2021, 15 pages. [cited by applicant]
Cao, Z. et al.; “TDDFS: A Tier-Aware Data Deduplication-Based File System”; Feb. 2019; 26 pages. [cited by applicant]
Dagnaw, G. et al.; “dCACH: Content Aware Clustered and Hierarchical Distributed Deduplication”; Nov. 27, 2019; 31 pages. [cited by applicant]
DeepAI, “What is the Jaccard Index?”, available online at <https://deepai.org/machine-learning-glossary-and-terms/jaccard-index#:˜: text=The Jaccard Index%2C also known, union of the sample sets>, Apr. 14, 2021, 3 pages. [cited by applicant]
Lee et al.; “TLSM: Tiered Log-Structured Merge-Tree Utilizing Non-Volatile Memory”: Jun. 9, 2020; 15 pages; IEEE Access; vol. 8; <https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9056561 >. [cited by applicant]
MinIO, Inc., “High Performance Object Storage,” available Nov. 14, 2021, <https://web.archive.org/web/20211114192202/https://min.io/resources/docs/MinIO-high-performance-object-storage.pdf>.21 pages. [cited by applicant]
O'Neil, P., et al.; “The Log-Structured Merge-Tree (LSM-Tree)”; 1996; Acta Informatica 33; No. 4; 32 pages. [cited by applicant]
Vaidya, I. et al.; “An Improved De-Duplication Technique for Small Files in Hadoop”; Jul. 2017; 6 pages. [cited by applicant]
Wikipedia, “MinHash”, available online at <https://en.wikipedia.org/w/index.php?title=MinHash&oldid=1018264865>, Apr. 17, 2021, 7 pages. [cited by applicant]
Wikipedia, “MinIO,” Nov. 21, 2021, <https://en.wikipedia.org/w/index.php?title=MinIO&oldid=1056306026>, 3 pages. [cited by applicant]
Wikipedia; “B-tree”; Mar., 4, 2021; 12 pages; printed from webpage: <https://en.wikipedia.org/w/index.php?title=B-tree&oldid=1010261854>. [cited by applicant]
Wikipedia; “Log-structured merge-tree”; Dec. 8, 2020; 3 pages; printed from webpage: <https://en.wikipedia.org/w/index.php?title=Log-structured_merge-tree&oldid=993014830>. [cited by applicant]
Wikipedia.; “inode”; Dec. 31, 2020; 5 pages; printed from webpage: <https://en.wikipedia.org/w/index.php?title=Inode&oldid=997443541>. [cited by applicant]
Wikipedia, “Amazon S3”, available online at <https://en.wikipedia.org/w/index.php?title=Amazon_S3&oldid=1057018762>, Nov. 24, 2021, 12 pages. [cited by applicant]