IP Library Granted Patent US 9,594,573
Granted Patent B2
US 9,594,573 · App. 13/007,487 · Granted Mar 14, 2017

Systems and methods of block computation

Inventors: Qiming Chen (Cupertino, CA); Meichun Hsu (Los Altos Hills, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F9/4421G06F17/30477G06F17/30516G06F17/30545G06F17/30595G06F17/30926
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 9,594,573
App. No.
13/007,487
Filed
Jan 14, 2011
Granted
Mar 14, 2017
Kind
B2
Art Unit
2157
USPC
707/713
Abstract

Systems and methods of block computation are disclosed. An example of a method includes buffering a plurality of tuples in a build phase. The method also includes, after buffering a last of the plurality of tuples, applying a computation to all of the buffered tuples in a compute phase. The method also includes returning results of the computation one tuple at a time to a query processing pipeline in a stream-out phase.

Claims (31)

1. A method of block computation, the method implemented by program code stored on a non-transient computer-readable medium and executable by a processor, the method comprising:

buffering, via the processor, a chunk having a plurality of tuples received in a pipeline manner in a build phase;

after buffering a last of the plurality of tuples of the chunk, applying, via the processor, a block computation to all of the buffered tuples in the chunk during a compute phase; and

returning, via the processor, results of the block computation on the chunk, the results returned one tuple at a time to a query processing pipeline in a stream-out phase.

2. The method of claim 1 , further comprising:

calling a function for each tuple in the chunk during the build phase; and

returning a null for each function called until each tuple in the chunk is buffered, and then entering the compute phase.

3. The method of claim 1 , wherein the compute phase is executed external to a query engine.

4. The method of claim 1 , wherein buffering is dynamic along the query processing pipeline.

5. The method of claim 1 , wherein the chunk is less than a portion of data upon which an entire query is operative.

6. The method of claim 1 , wherein the chunk is selected based on number of tuples.

7. The method of claim 1 , wherein the chunk is selected based on a time window.

8. The method of claim 1 , wherein the chunk is selected based on representing individual objects.

9. The method of claim 1 , wherein buffering is by multiple calls with each of the multiple calls delivering a single return tuple.

10. A system of block computation implemented by program code stored on a non-transient computer-readable medium and executable by a processor, the system, comprising:

a buffer for holding a chunk having a plurality of tuples received in a pipeline manner during a build phase;

a computation engine for applying a block computation to all of the chunk during a compute phase after the build phase finishes; and

a query processing pipeline for returning results from the block computation on the chunk, the results returned one tuple at a time during a stream-out phase.

11. The system of claim 10 , wherein the build phase finishes after a last of the plurality of tuples for the chunk is in the buffer.

12. The system of claim 10 , further comprising a Set-In, Set-Out (SISO) user defined function (UDF), the UDF defining operations for a set of tuples representing a single object.

13. The system of claim 12 , wherein the SISO UDF is for batch analytic computing.

14. The system of claim 12 , wherein the SISO UDF receives vector input data for batch processing.

15. The system of claim 12 , wherein the SISO UDF includes set-in, set-out block computation operators.

16. The system of claim 10 , wherein a data source of the plurality of tuples is a table.

17. The system of claim 10 , wherein a data source of the plurality of tuples is a stream.

18. A system of block computation implemented by program code stored on a non-transient computer-readable medium and executable by a processor, the system comprising:

a computation engine for buffering a chunk having a plurality of tuples received in a pipeline manner, and for, after buffering a last of the plurality of tuples in the chunk, applying a block computation to all of the buffered tuples in the chunk;

a user defined function (UDF) defining the block computation for the computation engine, the UDF defining operations for a tuple-set corresponding to a single time window; and

a query processing pipeline for receiving results from the computation engine one tuple at a time.

19. The system of claim 18 , wherein the UDF is set-in, set-out (SISO) modeling applications definable on tuple-sets defined by the chunk.

20. The system of claim 18 , wherein the UDF has four levels of accessible states: per-function state, per-chunk state, per-tuple state, and per-return state.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2026
From: MICRO FOCUS LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075795/0114 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2011
From: CHEN, QIMING; HSU, MEICHUN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 025666/0521 →
Continuity (1)
Related Publication 20120185460A1 · Jul 19, 2012