IP Library Granted Patent US 12,242,543
Granted Patent B1
US 12,242,543 · App. 17/150,064 · Granted Mar 4, 2025

Configuration-based development of analytics pipelines

Inventors: Gurudatta Pai (Matthews, NC); Menglin Cao (Danville, CA); Prahalad Thota (San Ramon, CA); Thomas Mann (Charlotte, NC); Braxton Meyer (Grafton, WI); Ravindra Reddy Pathakota (TegaCay, SC)
Assignee: Wells Fargo Bank, N.A.
G06F16/907G06F8/71G06F9/4843G06N5/025G06F16/2457G06F40/268H04L67/565
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,242,543
App. No.
17/150,064
Granted
Mar 4, 2025
Kind
B1
Abstract

This disclosure describes techniques relating to development of data flow pipelines. In one example, this disclosure describes a method that includes accessing, by a computing system, metadata identifying characteristics of a data flow pipeline; generating, by the computing system and based on the metadata, the data flow pipeline, wherein the data flow pipeline includes a plurality of stages, and wherein the plurality of stages includes a multi-sourced stage in which data output by each of a subset of stages in the plurality of stages are used as input to the multi-sourced stage; executing, by the computing system, the data flow pipeline; detecting, by the computing system, modifications to the metadata; generating, based on the modifications, an updated data flow pipeline; and executing, by the computing system, the updated data flow pipeline.

Claims (48)

1. A method comprising:

accessing, by a computing system, metadata identifying characteristics of a data flow pipeline, wherein the metadata includes a linear list of descriptions of a plurality of stages in the data flow pipeline, and wherein each of the descriptions in the linear list of descriptions is ordered in the metadata pursuant to a set of ordering rules;

constructing, by the computing system and based on the metadata, the data flow pipeline, wherein the data flow pipeline includes a plurality of stages, wherein the plurality of stages includes at least one single sourced stage and a multi-sourced stage in which data output by each of a subset of stages in the plurality of stages are used as input to the multi-sourced stage, and wherein constructing the data flow pipeline includes interpreting the linear list of descriptions in the metadata pursuant to the ordering rules so that (1) the description of each single-sourced stage receiving a single input in the pipeline is immediately preceded by a description of the stage that produces the single input, and (2) the description of the multi-sourced stage is preceded by a description, in a relative order, of each of the subset of stages that produce an input to the multi-sourced stage, wherein the relative order corresponds to an order in which each of the inputs to the multi-sourced stage is received by the multi-sourced stage;

monitoring, by the computing system, changes to the metadata, wherein monitoring the changes to the metadata includes monitoring a storage device storing the metadata;

processing, by the computing system, a first set of data using the data flow pipeline;

detecting, by the computing system, modifications to the metadata resulting in updated metadata, wherein detecting modifications to the metadata includes detecting addition of a reference to a first component in the metadata and detecting removal of a reference to a second component in the metadata;

constructing, by the computing system and based on the updated metadata, an updated data flow pipeline, wherein constructing the updated data flow pipeline includes interpreting the updated metadata by applying the ordering rules to the updated metadata to:

add a stage to the pipeline corresponding to the addition of the reference to the first component, and

remove a stage from the pipeline corresponding to the removal of the reference to the second component; and

processing, by the computing system, a second set of data using the updated data flow pipeline.

2. The method of claim 1 , wherein constructing the data flow pipeline includes:

interpreting the metadata to identify components included within the pipeline.

3. The method of claim 2 , wherein constructing the data flow pipeline includes:

interpreting the metadata to identify arguments associated with each of the identified components.

4. The method of claim 3 , wherein interpreting the metadata includes:

interpreting high-level descriptions of the components in the metadata, wherein the high-level descriptions provide information about operations performed by each respective component without requiring knowledge of source code used to implement the component.

5. The method of claim 1 , wherein constructing the data flow pipeline includes:

generating a logical data flow in preparation for processing the pipeline.

6. The method of claim 1 , wherein constructing the data flow pipeline and constructing the updated data flow pipeline both include:

executing a standardized driver.

7. A system comprising a storage system and processing circuitry having access to the storage system, wherein the processing circuitry is configured to:

access metadata identifying characteristics of a data flow pipeline, wherein the metadata includes a linear list of descriptions of a plurality of stages in the data flow pipeline, and wherein each of the descriptions in the linear list of descriptions is ordered in the metadata pursuant to a set of ordering rules;

construct, based on the metadata, the data flow pipeline, wherein the data flow pipeline includes a plurality of stages, wherein the plurality of stages includes at least one single sourced stage and a multi-sourced stage in which data output by each of a subset of stages in the plurality of stages are used as input to the multi-sourced stage, and wherein to construct the data flow pipeline, the processing circuitry is further configured to interpret the linear list of descriptions in the metadata pursuant to the ordering rules so that (1) the description of each single-sourced stage receiving a single input in the pipeline is immediately preceded by a description of the stage that produces the single input, and (2) the description of the multi-sourced stage is preceded by a description, in a relative order, of each of the subset of stages that produce an input to the multi-sourced stage, wherein the relative order corresponds to an order in which each of the inputs to the multi-sourced stage is received by the multi-sourced stage;

monitor changes to the metadata, wherein to monitor changes, the processing circuitry is configured to monitor a storage device storing the metadata;

process a first set of data using the data flow pipeline;

detect modifications to the metadata resulting in updated metadata, wherein to detect modifications to the metadata, the processing circuitry is configured to detect addition of a reference to a first component in the metadata and detect removal of a reference to a second component in the metadata;

construct, based on the updated metadata, an updated data flow pipeline, wherein to construct the updated data flow pipeline, the processing circuitry is configured to interpret the updated metadata by applying the ordering rules to the updated metadata to:

add a stage to the pipeline corresponding to the addition of the reference to the first component, and

remove a stage from the pipeline corresponding to the removal of the reference to the second component; and

process a second set of data using the updated data flow pipeline.

8. The system of claim 7 , wherein to construct the data flow pipeline, the processing circuitry is further configured to:

interpret the metadata to identify components included within the pipeline.

9. The system of claim 8 , wherein to construct the data flow pipeline, the processing circuitry is further configured to:

interpret the metadata to identify arguments associated with each of the identified components.

10. The system of claim 9 , wherein to interpret the metadata, the processing circuitry is further configured to:

interpret high-level descriptions of the components in the metadata, wherein the high-level descriptions provide information about operations performed by each respective component without requiring knowledge of source code used to implement the component.

11. The system of claim 7 , wherein to construct the data flow pipeline, the processing circuitry is further configured to:

generate a logical data flow in preparation for processing the pipeline.

12. A non-transitory computer-readable storage medium comprising instructions that, when executed, configure processing circuitry of a computing system to:

access metadata identifying characteristics of a data flow pipeline, wherein the metadata includes a linear list of descriptions of a plurality of stages in the data flow pipeline, and wherein each of the descriptions in the linear list of descriptions is ordered in the metadata pursuant to a set of ordering rules;

construct, based on the metadata, the data flow pipeline, wherein the data flow pipeline includes a plurality of stages, wherein the plurality of stages includes at least one single sourced stage and a multi-sourced stage in which data output by each of a subset of stages in the plurality of stages are used as input to the multi-sourced stage, and wherein to construct the data flow pipeline, the processing circuitry is further configured to interpret the linear list of descriptions in the metadata pursuant to the ordering rules so that (1) the description of each single-sourced stage receiving a single input in the pipeline is immediately preceded by a description of the stage that produces the single input, and (2) the description of the multi-sourced stage is preceded by a description, in a relative order, of each of the subset of stages that produce an input to the multi-sourced stage, wherein the relative order corresponds to an order in which each of the inputs to the multi-sourced stage is received by the multi-sourced stage;

monitor changes to the metadata, wherein to monitor changes, the processing circuitry is configured to monitor a storage device storing the metadata;

process a first set of data using the data flow pipeline;

detect modifications to the metadata resulting in updated metadata, wherein to detect modifications to the metadata, the processing circuitry is configured to detect addition of a reference to a first component in the metadata and detect removal of a reference to a second component in the metadata;

construct, based on the updated metadata, an updated data flow pipeline, wherein to construct the updated data flow pipeline, the processing circuitry is configured to interpret the updated metadata by applying the ordering rules to the updated metadata to:

add a stage to the pipeline corresponding to the addition of the reference to the first component, and

remove a stage from the pipeline corresponding to the removal of the reference to the second component; and

process a second set of data using the updated data flow pipeline.

Assignments (3)
REQUEST FOR ADDRESS CHANGE Recorded Dec 5, 2025
From: WELLS FARGO BANK, N.A.
To: WELLS FARGO BANK, N.A.
Reel/Frame 073894/0935 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2021
From: MEYER, BRAXTON W.
To: WELLS FARGO BANK, N.A.
Reel/Frame 056231/0524 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2021
From: PAI, GURUDATTA; CAO, MENGLIN; THOTA, PRAHALAD; MANN, THOMAS; PATHAKOTA, RAVINDRA REDDY
To: WELLS FARGO BANK, N.A.
Reel/Frame 055579/0847 →
References Cited (22)
US 10372721B2 · Karpistsenko et al. · 2019 [cited by applicant]
US 10620923B2 · Allan et al. · 2020 [cited by applicant]
US 10698625B2 · Das et al. · 2020 [cited by applicant]
US 10775976B1 · Abdul-Jawad · 2020 [cited by examiner]
US 20030204819A1 · Matsumoto · 2003 [cited by examiner]
US 20050102260A1 · Spring · 2005 [cited by examiner]
US 20060112328A1 · Rojer · 2006 [cited by examiner]
US 20080136825A1 · Bakalash · 2008 [cited by examiner]
US 20140282634A1 · Phan · 2014 [cited by examiner]
US 20180052708A1 · Ganesan · 2018 [cited by examiner]
US 20180075125A1 · Stiel · 2018 [cited by examiner]
US 20190361697A1 · Hu et al. · 2019 [cited by applicant]
US 20200242516A1 · Dhingra et al. · 2020 [cited by applicant]
US 20210248165A1 · Fry · 2021 [cited by examiner]
US 20210383258A1 · O'Riordan · 2021 [cited by examiner]
US 20220014584A1 · Huetter · 2022 [cited by examiner]
US 20230081880A1 · Mathur · 2023 [cited by examiner]
CN 103488631A · 2014 [cited by applicant]
CN 110069668A · 2019 [cited by applicant]
Lampa et al., “SciPipe: A workflow library for agile development of complex and dynamic bioinformatics pipelines”, GigaScience, vol. 8, Issue 5, May 2019, 13 pp. [cited by applicant]
Biornstad et al., “Let It Flow: Building Mashups with Data Processing Pipelines”, ICSOC 2007 Workshops, vol. 4907, Sep. 2007, 14 pp. [cited by applicant]
Wood et al., “A Scalable Observation System for Introspection and In Situ Analytics”, IEEE, 2016 5th Workshop on Extreme-Scale Programming Tools (ESPT), available online Jan. 26, 2017, 8 pp. [cited by applicant]
Cited By (4)
US 12,298,895 US 12,405,875 US 12,461,898 US 12,561,143