Continuous in-place software updates with fault isolation and resiliency
AssigneeTausight, Inc.
InventorsJohn GAGE, Alain SLAK, David M.T. TING, Sean TING
Life of this patent
Estimating the term…
Abstract
Methods and systems facilitate continuous processing of incoming data while one or more software components are updated and/or are temporarily unavailable. Computing tasks may be divided into idempotent steps with the computational state exchanged between steps saved in a persistent manner. In various embodiments, these steps are assembled into one or more computation pipelines.
Claims26
A computational system configured to support uninterrupted processing of incoming data notwithstanding temporary unavailability of one or more software components, the system comprising:
- a. a processor;
- b. a computer memory including an address space comprising a bounded range of valid available addresses;
- and
- c. a plurality of computational modules executable by the processor, the modules being arranged in at least one ordered, sequential computation pipeline and cooperating to process the incoming data, the modules including a primary component for receiving or generating data, at least one intermediate component for processing data received from a preceding component, and a terminal component for receiving data from a final intermediate component and sending outgoing data to a data sink, wherein each of the components except the terminal component is configured to communicate, to at least one subsequent pipeline component via the address space, a handoff comprising state information of the component producing the handoff and data for processing by at least one subsequent component, the handoffs being persistent in memory so that processing can resume following an interruption without loss of data or state along the at least one pipeline.
A computational method supporting uninterrupted processing of incoming data notwithstanding temporary unavailability of one or more software components, the method comprising the steps of:
- a. allocating, in a computer memory, an address space comprising a bounded range of valid available addresses;
- and
- b. computationally executing a plurality modules arranged in at least one ordered, sequential computation pipeline and cooperating to process the incoming data, the modules including a primary component for receiving or generating data, at least one intermediate component for processing data received from a preceding component, and a terminal component for receiving data from a final intermediate component and sending outgoing data to a data sink, wherein each of the components except the terminal component is configured to communicate, to at least one subsequent pipeline component via the address space, a handoff comprising state information of the component producing the handoff and data for processing by at least one subsequent component, the handoffs being persistent in memory so that processing can resume following an interruption without loss of data or state along the at least one pipeline.
A computational system configured to support uninterrupted processing of incoming data notwithstanding temporary unavailability of one or more software components, the system comprising:
- a. a processor;
- b. a computer memory including an address space comprising a bounded range of valid available addresses;
- and
- c. at least one pipeline consisting of a pair of computational modules executable by the processor and cooperating to process the incoming data, the modules consisting of a primary component for receiving or generating data and a terminal component for receiving data from the primary component and sending outgoing data to a data sink, wherein the primary component is configured to communicate, to the terminal component via the address space, a handoff comprising state information for processing by the terminal component, the handoffs being persistent in memory so that processing can resume following an interruption without loss of data or state along the at least one pipeline.
A computational method supporting uninterrupted processing of incoming data notwithstanding temporary unavailability of one or more software components, the method comprising the steps of:
- a. allocating, in a computer memory, an address space comprising a bounded range of valid available addresses;
- and
- b. computationally executing at least one pipeline consisting of a pair of computational modules, the modules consisting of a primary component for receiving or generating data and a terminal component for receiving data from a the primary component and sending outgoing data to a data sink, wherein the primary component is configured to communicate, to the terminal component via the address space, a handoff comprising state information for processing by the terminal component, the handoffs being persistent in memory so that processing can resume following an interruption without loss of data or state along the at least one pipeline.
Dependencies are inferred from the claim text.