IP Library Granted Patent US 12,689,549
Granted Patent B2
US 12,689,549 · App. 18/332,523 · Granted Jul 21, 2026

Techniques for managing storage and retention of time-series based event data

Inventors: Clemens Alden Szyperski (Bellevue, WA); John Te-Jui Sheu (Bellevue, WA); Jakub Sakowicz (Redmond, WA); Miquel Martin Lopez (Redmond, WA); Nuno Jose Pinto Bessa De Melo Cerqueira (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L41/0631G06F11/0784G06F11/3058G06F11/3075G06F16/24568G06F16/2474G06F16/26H04L41/22
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,689,549
App. No.
18/332,523
Filed
Jun 9, 2023
Granted
Jul 21, 2026
Kind
B2
Art Unit
2161
USPC
707/769
Abstract

Aspects of the present disclosure relate to data management of event representations within a discoverable event stream. These techniques may include determining historical query information based upon historical execution of a query over an event stream, and identifying a storage attribute of data associated with the historical execution of the query over the event stream, the storage attribute indicating at least one of a size of the data or an assigned storage location of the data in a first storage location or a second storage location. In addition, the techniques may include identifying an execution attribute of a future execution of the query over the event stream, and modifying the assigned storage location of the data based on the historical query information, the storage attribute, and the execution attribute.

Claims (57)

1 . A method comprising:

determining historical query information based upon historical execution of a query over an event stream;

identifying a storage attribute of data associated with the historical execution of the query over the event stream, the storage attribute indicating at least one of a size of the data or an assigned storage location of the data in a first storage location or a second storage location, wherein the data is an event representation of a discoverable event stream, the event representation identifying an event of an object of the discoverable event stream;

identifying an execution attribute of a future execution of the query over the event stream including that the query is executed within an upcoming period of time;

modifying, based on the historical query information and based on the execution attribute indicating that the query is executed within the upcoming period of time, the assigned storage location of the data from a first level of a multi-tiered storage system to assign the data to non-persistent cache memory in a second level of the multi-tiered storage system;

storing, based on modifying the assigned storage location of the data, the data in the non-persistent cache memory;

identifying one or more other event representations associated with the object;

determining a query attribute of a future execution of the query over the discoverable event stream;

determining whether to delete the event representation based upon the historical query information, the one or more other event representations, and/or the query attribute; and

updating the data based on the determining whether to delete the event representation.

2 . The method of claim 1 , wherein the execution attribute is a first execution attribute, and further comprising:

identifying, for deletion from the event stream based on an age of the data or a position of the data within the event stream, query data associated within the event stream; and

determining, based on a second execution attribute, whether to delete the data from the event stream.

3 . The method of claim 1 , wherein one of the first level or the second level is a persistent storage, and the other one of the first level or the second level is a non-persistent storage.

4 . The method of claim 1 , wherein the execution attribute is a next execution of the query, a look back threshold of the query, or a tolerance delay of the query.

5 . The method of claim 1 , wherein

determining whether to delete the event representation is further based upon an age of the event representation and a retention policy for retaining data in the discoverable event stream.

6 . The method of claim 5 , wherein the retention policy indicates to delete the event representation based on being an oldest among a plurality of event representations.

7 . The method of claim 1 , wherein determining whether to delete the event representation comprises retaining the event representation based upon the event representation being associated with a query scheduled to execute within a predefined period.

8 . The method of claim 1 , wherein determining whether to delete the event representation comprises deleting the event representation based upon the event representation being associated with a query that is not scheduled to execute within a predefined period.

9 . An apparatus, comprising:

a memory; and

a processor coupled with the memory and configured to:

determine historical query information based upon historical execution of a query over an event stream;

identify a storage attribute of data associated with the historical execution of the query over the event stream, the storage attribute indicating at least one of a size of the data or an assigned storage location of the data in a first storage location or a second storage location, wherein the data is an event representation of a discoverable event stream, the event representation identifying an event of an object of the discoverable event stream;

identify an execution attribute of a future execution of the query over the event stream including that the query is executed within an upcoming period of time;

modify, based on the historical query information and based on the execution attribute indicating that the query is executed within the upcoming period of time, the assigned storage location of the data from a first level of a multi-tiered storage system to assign the data to non-persistent cache memory in a second level of the multi-tiered storage system;

store, based on the modifying the assigned storage location of the data, the data in the non-persistent cache memory;

identify one or more other event representations associated with the object;

determine a query attribute of a future execution of the query over the discoverable event stream;

determine whether to delete the event representation based upon the historical query information, the one or more other event representations, and/or the query attribute; and

update the data based on the determining whether to delete the event representation.

10 . The apparatus of claim 9 , wherein the execution attribute is a first execution attribute, and wherein the processor is further configured to:

identify, for deletion from the event stream based on an age of the data or a position of the data within the event stream, query data associated within the event stream; and

determine, based on a second execution attribute, whether to delete the data from the event stream.

11 . The apparatus of claim 9 , wherein the first storage location is a persistent storage, and the second storage location is a non-persistent storage, or the first storage location is a first level of persistent storage or non-persistent storage, and the second storage location is a second level of persistent storage or non-persistent storage.

12 . The apparatus of claim 9 , wherein the execution attribute is a next execution of the query, a look back threshold of the query, or a tolerance delay of the query.

13 . The apparatus of claim 9 , wherein the data is an event representation of a discoverable event stream, the event representation identifying an event of an object of the discoverable event stream, and the processor is further configured to:

identify a storage attribute of data associated with the historical execution of the query over the discoverable event stream;

determine, based on the historical query information and/or the storage attribute, that a query performance attribute is greater than a predefined threshold; and

repartition, dynamically, a cluster resource based at least in part on the query performance attribute being greater than the predefined threshold, the repartitioning modifying an assignment of a plurality of objects of the discoverable event stream to the cluster resource.

14 . The apparatus of claim 9 , wherein the processor is further configured to

determine whether to delete the event representation based upon an age of the event representation and a retention policy for retaining data in the discoverable event stream.

15 . The apparatus of claim 9 , wherein to determine whether to delete the event representation, the processor is further configured retain the event representation based upon the event representation being associated with a query scheduled to execute within a predefined period.

16 . The apparatus of claim 9 , wherein to determine whether to delete the event representation, the processor is further configured delete the event representation based upon the event representation being associated with a query that is not scheduled to execute within a predefined period.

17 . A non-transitory computer-readable device having instructions thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:

determining historical query information based upon historical execution of a query over an event stream;

identifying a storage attribute of data associated with the historical execution of the query over the event stream, the storage attribute indicating at least one of a size of the data or an assigned storage location of the data in a first storage location or a second storage location, wherein the data is an event representation of a discoverable event stream, the event representation identifying an event of an object of the discoverable event stream;

identifying an execution attribute of a future execution of the query over the event stream including that the query is executed within an upcoming period of time;

modifying, based on the historical query information and based on the execution attribute indicating that the query is executed within the upcoming period of time, the assigned storage location of the data from a first level of a multi-tiered storage system to assign the data to non-persistent cache memory in a second level of the multi-tiered storage system;

storing, based on modifying the assigned storage location of the data, the data in the non-persistent cache memory;

identifying one or more other event representations associated with the object;

determining a query attribute of a future execution of the query over the discoverable event stream;

determining whether to delete the event representation based upon the historical query information, the one or more other event representations, and/or the query attribute; and

updating the data based on the determining whether to delete the event representation.

18 . The non-transitory computer-readable device of claim 17 , wherein

determining whether to delete the event representation is further based upon an age of the event representation and a retention policy for retaining data in the discoverable event stream.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: SZYPERSKI, CLEMENS ALDEN; SHEU, JOHN TE-JUI; SAKOWICZ, JAKUB; MARTIN LOPEZ, MIQUEL; DE MELO CERQUEIRA, NUNO JOSE PINTO BESSA
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063972/0959 →
Continuity (2)
Provisional Application 63487609 · Feb 28, 2023
Related Publication 20240289337A1 · Aug 29, 2024
References Cited (176)
US 8560611B2 · Martinez · 2013 [cited by applicant]
US 9516053B1 · Muddu et al. · 2016 [cited by applicant]
US 9798830B2 · Imaki et al. · 2017 [cited by applicant]
US 10514966B2 · Alfred · 2019 [cited by examiner]
US 10558516B2 · Leverich · 2020 [cited by examiner]
US 10762097B1 · Porath · 2020 [cited by applicant]
US 10936585B1 · Echeverria · 2021 [cited by examiner]
US 11042454B1 · Jain et al. · 2021 [cited by applicant]
US 11055273B1 · Meduri · 2021 [cited by applicant]
US 11269808B1 · Yuan et al. · 2022 [cited by applicant]
US 11341150B1 · Ganesan · 2022 [cited by applicant]
US 11397752B1 · Goyal et al. · 2022 [cited by applicant]
US 11461347B1 · Das · 2022 [cited by examiner]
US 11487762B2 · May et al. · 2022 [cited by applicant]
US 11803562B2 · Sarma et al. · 2023 [cited by applicant]
US 11818156B1 · Parikh et al. · 2023 [cited by applicant]
US 11847038B1 · Jha · 2023 [cited by examiner]
US 11853317B1 · Goyal et al. · 2023 [cited by applicant]
US 12028208B1 · Hsiao · 2024 [cited by examiner]
US 20030172151A1 · Schade · 2003 [cited by applicant]
US 20040073720A1 · Clough · 2004 [cited by applicant]
US 20070203816A1 · Costache et al. · 2007 [cited by applicant]
US 20080215546A1 · Baum et al. · 2008 [cited by applicant]
US 20090018994A1 · Hajdukiewicz · 2009 [cited by applicant]
US 20090292877A1 · Piper · 2009 [cited by examiner]
US 20110131588A1 · Allam · 2011 [cited by examiner]
US 20120148088A1 · Mital et al. · 2012 [cited by applicant]
US 20130262369A1 · Guanwardana · 2013 [cited by examiner]
US 20140095483A1 · Toillion · 2014 [cited by examiner]
US 20140095535A1 · Deshmukh · 2014 [cited by examiner]
US 20140095541A1 · Herwadkar · 2014 [cited by examiner]
US 20140149444A1 · Pompey · 2014 [cited by applicant]
US 20150149507A1 · Imaki · 2015 [cited by applicant]
US 20150186434A1 · Eichinger · 2015 [cited by applicant]
US 20150199413A1 · Brown · 2015 [cited by applicant]
US 20150278355A1 · Hassanpour et al. · 2015 [cited by applicant]
US 20150293954A1 · Hsiao et al. · 2015 [cited by applicant]
US 20150295778A1 · Hsiao et al. · 2015 [cited by applicant]
US 20150295779A1 · Ching et al. · 2015 [cited by applicant]
US 20150295780A1 · Hsiao et al. · 2015 [cited by applicant]
US 20150295796A1 · Hsiao · 2015 [cited by examiner]
US 20150317363A1 · Manzano Macho · 2015 [cited by examiner]
US 20150324439A1 · Bhave · 2015 [cited by applicant]
US 20150341212A1 · Hsiao · 2015 [cited by examiner]
US 20150363464A1 · Alves · 2015 [cited by examiner]
US 20160019266A1 · Katsunuma · 2016 [cited by applicant]
US 20160054952A1 · Mathur · 2016 [cited by applicant]
US 20160063080A1 · Nano · 2016 [cited by applicant]
US 20160070430A1 · Kim et al. · 2016 [cited by applicant]
US 20160070451A1 · Kim et al. · 2016 [cited by applicant]
US 20160085810A1 · De Castro Alves · 2016 [cited by applicant]
US 20160127180A1 · Shcherbakov et al. · 2016 [cited by applicant]
US 20160127401A1 · Chauhan et al. · 2016 [cited by applicant]
US 20160127517A1 · Shcherbakov et al. · 2016 [cited by applicant]
US 20160210332A1 · Milton · 2016 [cited by applicant]
US 20160224899A1 · Nguyen et al. · 2016 [cited by applicant]
US 20160359910A1 · Chen · 2016 [cited by examiner]
US 20160359940A1 · Chen · 2016 [cited by examiner]
US 20170060947A1 · Zhang · 2017 [cited by applicant]
US 20170083175A1 · Layman · 2017 [cited by applicant]
US 20170124151A1 · Ji · 2017 [cited by examiner]
US 20170177546A1 · Heinz · 2017 [cited by examiner]
US 20170201606A1 · Ding · 2017 [cited by applicant]
US 20180004812A1 · Shawver et al. · 2018 [cited by applicant]
US 20180074856A1 · Park · 2018 [cited by applicant]
US 20180075125A1 · Stiel · 2018 [cited by examiner]
US 20180089205A1 · Soora · 2018 [cited by applicant]
US 20180107530A1 · Gupta · 2018 [cited by examiner]
US 20180181537A1 · Crabtree et al. · 2018 [cited by applicant]
US 20180218046A1 · Woo · 2018 [cited by applicant]
US 20180253468A1 · Gurajada et al. · 2018 [cited by applicant]
US 20180268003A1 · Barsness · 2018 [cited by applicant]
US 20180314740A1 · Van Osten · 2018 [cited by applicant]
US 20180357267A1 · Zenger et al. · 2018 [cited by applicant]
US 20190028506A1 · Rodriguez · 2019 [cited by applicant]
US 20190095510A1 · Cruise · 2019 [cited by applicant]
US 20190102431A1 · Bishnoi · 2019 [cited by examiner]
US 20190102791A1 · Park et al. · 2019 [cited by applicant]
US 20190124105A1 · Chauhan et al. · 2019 [cited by applicant]
US 20190138641A1 · Pal · 2019 [cited by applicant]
US 20190138967A1 · Akella · 2019 [cited by applicant]
US 20190146970A1 · Chamieh · 2019 [cited by applicant]
US 20190155809A1 · Shankar · 2019 [cited by applicant]
US 20190171748A1 · Duffield · 2019 [cited by applicant]
US 20190294598A1 · Hsiao · 2019 [cited by applicant]
US 20190303385A1 · Ching et al. · 2019 [cited by applicant]
US 20200320005A1 · Shulman · 2020 [cited by examiner]
US 20200412810A1 · Knight · 2020 [cited by applicant]
US 20210004144A1 · Burke et al. · 2021 [cited by applicant]
US 20210019292A1 · Kholodkov · 2021 [cited by examiner]
US 20210026888A1 · Pang · 2021 [cited by applicant]
US 20210049797A1 · Cervelli et al. · 2021 [cited by applicant]
US 20210081373A1 · Tian · 2021 [cited by examiner]
US 20210117384A1 · Leite et al. · 2021 [cited by applicant]
US 20210124786A1 · Bursik · 2021 [cited by applicant]
US 20210157811A1 · Wang · 2021 [cited by applicant]
US 20210191769A1 · Eschinger · 2021 [cited by applicant]
US 20210311834A1 · Sapuntzakis · 2021 [cited by examiner]
US 20210397616A1 · Iranmanesh · 2021 [cited by applicant]
US 20220030066A1 · Govindaraju · 2022 [cited by applicant]
US 20220058174A1 · Lemberg · 2022 [cited by examiner]
US 20220100763A1 · Sen · 2022 [cited by examiner]
US 20220121689A1 · James · 2022 [cited by applicant]
US 20220147518A1 · Schindlauer et al. · 2022 [cited by applicant]
US 20220198263A1 · Guo · 2022 [cited by examiner]
US 20220292021A1 · Bitincka · 2022 [cited by examiner]
US 20230048668A1 · Danilov et al. · 2023 [cited by applicant]
US 20230134030A1 · Zhou · 2023 [cited by applicant]
US 20230401466A1 · Zhao · 2023 [cited by applicant]
US 20240039954A1 · Shete et al. · 2024 [cited by applicant]
US 20240070233A1 · Blackburn · 2024 [cited by applicant]
US 20240078221A1 · Song · 2024 [cited by applicant]
US 20240289336A1 · Panwar et al. · 2024 [cited by applicant]
US 20240289337A1 · Szyperski et al. · 2024 [cited by applicant]
US 20240289347A1 · Panwar et al. · 2024 [cited by applicant]
US 20240289714A1 · Panwar et al. · 2024 [cited by applicant]
US 20240291708A1 · Panwar · 2024 [cited by applicant]
US 20250151126A1 · Yin et al. · 2025 [cited by applicant]
US 20260032013A1 · Danielson et al. · 2026 [cited by applicant]
WO 2016032986A1 · 2016 [cited by applicant]
Martin Grund, Jens Krüger, Hasso Plattner, Alexander Zeier, Philippe Cudre-Mauroux, and Samuel Madden. 2010. HYRISE: a main memory hybrid storage engine. Proc. VLDB Endow. 4, 2 (Nov. 2010), 105-116. https://doi.org/10.1… [cited by examiner]
Non-Final Office Action mailed on Sep. 10, 2024, in U.S. Appl. No. 18/332,428, 15 pages. [cited by applicant]
Etzion, et al., “Event Processing in Action,” Retrieved from URL: https://web.archive.org/web/20190711095302if / http://www-di.inf.puc-rio.br:80/-endler/courses/RT-Analytics/transp/Books/Event%20Processing%20in%20Action… [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016455, Jul. 18, 2024, 15 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016587, mailed on Jul. 22, 2024, 22 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016789, Jul. 2, 2024, 15 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016968, mailed on Jul. 29, 2024, 10 pages. [cited by applicant]
Non-Final Office Action mailed on Aug. 1, 2024, in U.S. Appl. No. 18/332,502, 37 pages. [cited by applicant]
Non-Final Office Action mailed on Jul. 31, 2024, in U.S. Appl. No. 18/332,316, 12 pages. [cited by applicant]
Non-Final Office Action mailed on Jun. 11, 2024, in U.S. Appl. No. 18/332,301, 18 pages. [cited by applicant]
Buddhika, et al., “Living on the Edge”, ACM Transactions on internet of things, vol. 2, Issue 3, Jul. 8, 2021, pp. 1-31. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016446, May 17, 2024, 13 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016573, Jun. 5, 2024, 15 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016580, Jun. 5, 2024, 12 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/016590, Jun. 6, 2024, 13 pages. [cited by applicant]
Invitation to pay additional fees received for PCT Application No. PCT/US2024/016587 May 29, 2024, 13 pages. [cited by applicant]
Levy, Eran, “Batch, Stream, and Micro-batch Processing: A Cheat Sheet Upsolver”, Retrieved from the URL: https://web.archive.org/web/20221207202218/https://www.upsolver.com/blog/batch-stream-a-cheat-sheet, Dec. 7, 2022,… [cited by applicant]
Non-Final Office Action mailed on Sep. 30, 2024, in U.S. Appl. No. 18/332,312, 19 pages. [cited by applicant]
Final Office Action mailed on Dec. 13, 2024, in U.S. Appl. No. 18/332,301, 19 Pages. [cited by applicant]
Final Office Action mailed on Dec. 27, 2024, in U.S. Appl. No. 18/332,428, 18 Pages. [cited by applicant]
Final Office Action mailed on Nov. 22, 2024, in U.S. Appl. No. 18/332,502, 39 pages. [cited by applicant]
Non-Final Office Action mailed on Oct. 23, 2024, in U.S. Appl. No. 18/332,316, 12 pages. [cited by applicant]
Final Office Action mailed on Apr. 22, 2025, in U.S. Appl. No. 18/332,316, 15 pages. [cited by applicant]
Final Office Action mailed on May 22, 2025, in U.S. Appl. No. 18/332,312, 15 pages. [cited by applicant]
Golab Lukasz, “Sliding Window Query Processing over Data Streams”, 2006, 180 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 25, 2025, in U.S. Appl. No. 18/332,466, 17 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 28, 2025, in U.S. Appl. No. 18/332,301, 15 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 13, 2025, in U.S. Appl. No. 18/332,502 13 pages. [cited by applicant]
Penchikala, Srini, “Big Data Processing with Apache Spark—Part 3: Spark Streaming”, Retrieved from URL: https://www.infoq.com/articles/apache-spark-streaming/, Jan. 7, 2016, 17 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 24, 2025, in U.S. Appl. No. 18/332,502, 14 pages. [cited by applicant]
Armstrong, et al., “LinkBench: a database benchmark based on the Facebook social graph”, In Proceedings of the ACM SIGMOD International Conference on Management of Data, Jun. 2013, pp. 1185-1196. [cited by applicant]
Final Office Action mailed on Oct. 1, 2025, in U.S. Appl. No. 18/332,466, 36 pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter 1) received for PCT Application No. PCT/US2024/016580, mailed on Sep. 11, 2025, 7 Pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter I) received for PCT Application No. PCT/US2024/016455, Sep. 11, 2025, 9 pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter I) received for PCT Application No. PCT/US2024/016573, mailed on Sep. 11, 2025, 9 Pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter I) received for PCT Application No. PCT/US2024/016590, Sep. 11, 2025, 7 pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter I) received for PCT Application No. PCT/US2024/016446, mailed on Sep. 11, 2025, 8 pages. [cited by applicant]
International Preliminary Report on Patentability received for PCT Application No. PCT/US2024/016587, Sep. 11, 2025, 15 pages. [cited by applicant]
International Preliminary Report on Patentability received for PCT Application No. PCT/US2024/016789, mailed on Sep. 11, 2025, 9 pages. [cited by applicant]
International Preliminary Report on Patentability received for PCT Application No. PCT/US2024/016968, Sep. 11, 2025, 7 pages. [cited by applicant]
Kim, et al., “A Review of Window Query Processing for Data Streams”, Journal of Computing Science and Engineering, Dec. 2013, vol. 7, No. 4, pp. 220-230. [cited by applicant]
Notice of Allowance mailed on Aug. 20, 2025, in U.S. Appl. No. 18/332,428, 08 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 26, 2025, in U.S. Appl. No. 18/332,301, 14 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 4, 2025, in U.S. Appl. No. 18/332,316, 9 pages. [cited by applicant]
Notice of Allowance mailed on Oct. 15, 2025, in U.S. Appl. No. 18/332,483, 12 Pages. [cited by applicant]
Notice of Allowance mailed on Oct. 23, 2025, in U.S. Appl. No. 18/332,316, 10 Pages. [cited by applicant]
Tulone, et al., “PAQ: Time Series Forecasting for Approximate Query Answering in Sensor Networks”, Wireless Sensor Networks, 2006, 16 Pages. [cited by applicant]
Bozkurt, et al., “Utilizing Flink and Kafka Technologies for Real-Time Data Processing: A Case Study”, The Eurasia Proceedings of Science Technology Engineering and Mathematics, vol. 24, Dec. 2023, pp. 177-183. [cited by applicant]
Non-Final Office Action mailed on Jan. 16, 2026, in U.S. Appl. No. 18/332,312, 14 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 26, 2026, in U.S. Appl. No. 18/332,466, 20 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 30, 2025, in U.S. Appl. No. 18/332,428, 6 Pages. [cited by applicant]
Notice of Allowance mailed on Mar. 4, 2026, in U.S. Appl. No. 18/332,316, 10 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 9, 2026, in U.S. Appl. No. 18/332,502, 11 Pages. [cited by applicant]
Notice of Allowance mailed on Mar. 10, 2026, in U.S. Appl. No. 18/332,483, 7 Pages. [cited by applicant]
Notice of Allowance mailed on Mar. 13, 2026, in U.S. Appl. No. 18/332,301, 14 Pages. [cited by applicant]
Notice of Allowance mailed on Nov. 10, 2025, in U.S. Appl. No. 18/332,502, 14 Pages. [cited by applicant]