IP Library Granted Patent US 7,739,311
Granted Patent B2
US 7,739,311 · App. 11/400,070 · Granted Jun 15, 2010

Method and system for handling large data sets in a statistical language

Assignee: TIBCO Software Inc.
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 7,739,311
App. No.
11/400,070
Granted
Jun 15, 2010
Kind
B2
Abstract

Methods and systems for providing support for large data sets are provided. Example embodiments provide a Big Data Object Library “BDOL,” which defines data structures and routines for handling big data objects using out of memory techniques. In one embodiment, the BDOL defines a bdFrame object which stores the data in binary form in a cache on an external storage medium, such as a file on a disk. The example BDOL provides support for user defined block processing a bdFrames using a pipeline engine. Also, the BDOL provides for Trellis plots, and other charts, of big data objects using hexagonal binning. This abstract is provided to comply with rules requiring an abstract, and it is submitted with the intention that it will not be used to interpret or limit the scope or meaning of the claims.

Claims (44)

1. A method in a computing system for performing statistical computations in a statistical programming language on a data set that is larger than can fit in memory practicably, the data set comprising at least one row and at least one column, comprising:

inputting data from the data set into an external data cache area on an external storage medium, the external data cache area separate from virtual memory of the computing system;

under control of an interpreter of the statistical programming language, generating an in-memory data structure that contains an indicator to the external data cache area; and

under control of an interpreter of the statistical programming language, performing in memory a statistical computation, defined using the statistical programming language, on the inputted data, the data larger than can fit into physical and, when present, virtual memory practicably at once, by accessing and processing the data from the external data cache area a portion at a time through the generated in-memory structure.

2. The method of claim 1 , further comprising:

computing summary statistics on each column of the data set as it is input; and

storing the computed summary statistics in a metadata file on an external storage medium.

3. The method of claim 2 wherein the metadata file is associated with the in-memory data structure, such that statistical information can be provided regarding the data set without accessing the data stored in the external data cache.

4. The method of claim 2 wherein the summary statistics include at least one of a mean value, a minimum value, a maximum value, or a standard deviation of the values of the column data.

5. The method of claim 2 wherein the summary statistics provide a count of number of occurrences of a categorical value.

6. The method of claim 1 wherein the data stored in the external data cache is binary data.

7. The method of claim 1 wherein the statistical computation is performed using S-PLUS language.

8. The method of claim 1 wherein the statistical computation is a user-defined function that processes input data a block at a time.

9. The method of claim 8 wherein the block is a row.

10. The method of claim 1 wherein the portion of data accessed and processed at a time is at least one of a row, a determined number of rows, and/or is configurable.

11. The method of claim 1 wherein the performing the statistical computation is at least one of performing a data cleaning operation, a data manipulation operation, a data transformation operation, a data modeling operation, or a data visualization operation.

12. The method of claim 1 , further comprising:

presenting the processed data using hexagonal binning techniques.

13. The method of claim 1 , further comprising:

presenting a Trellis plot of the processed data using hexagonal binning techniques.

14. The method of claim 1 wherein the performing the statistical computation on the data further comprises:

performing a statistical computation on the data by using a pipeline engine to access and process the data a portion at a time.

15. The method of claim 1 wherein the statistical computation is at least one of performing a linear regression, a generalized linear regression, clustering, or principal components analysis.

16. A computer-readable memory medium whose contents, when executed, cause a computing device to handle a large data set for statistical processing, by performing a method comprising:

inputting data from the data set into an external data cache area on an external storage medium, the external data cache area separate from virtual memory of the computing device;

generating an in-memory data structure that contains an indicator to the external data cache area; and

performing in memory a statistical computation, defined using a statistical programming language, on the inputted data, the data larger than can fit into physical and, when present, virtual memory practicably at once, by accessing and processing the data from the external data cache area a portion at a time through the generated in-memory structure.

17. The computer-readable medium of claim 16 wherein the computer-readable memory medium is a memory of a computing device.

18. The computer-readable memory medium of claim 16 wherein the contents are instructions that, when executed, cause the computing device to perform the method.

19. A computing system, comprising:

a random access memory (“RAM”);

an external storage medium;

a code module stored in the computing system, configured to:

instantiate an object in RAM that points to an external data cache stored on the external storage medium, the external data cache separate from any virtual memory of the computing system;

retrieve, from a data set, data that is larger than can be stored in the RAM and, when present, virtual memory, without causing the computing system to thrash, and store the retrieved data in the external data cache; and

provide a function for accessing and processing data stored in the external data cache a block at a time; and

a statistical component defined in a statistical programming language that is configured to:

invoke the code module to instantiated the object, input data from an external source, and store the inputted data in the external data cache;

retrieve the stored data from the external data cache through the instantiated object and perform statistical modeling of the data using out-of-memory techniques that invoke the provided function to access and model the data a block at a time from the external data cache.

20. The computing system of claim 19 wherein the function of the code module for processing data stored in the external cache operates through a pipeline engine.

21. The computing system of claim 19 wherein the statistical modeling provides at least one of a linear regression; a generalized linear regression, clustering, or a principal components analysis of the data stored in the external cache.

22. The computing system of claim 19 , further comprising:

a graphical presentation component that provides a visualization of the data stored in the external cache using hexagonal binning techniques.

23. The computing system of claim 22 wherein the graphical presentation component provides the visualization using Trellis plots.

Assignments (18)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 28, 2023
From: ALIMERA SCIENCES, INC.
To: SLR INVESTMENT CORP., AS COLLATERAL AGENT
Reel/Frame 063170/0432 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
RELEASE REEL 052115 / FRAME 0318 Recorded Oct 3, 2022
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 061588/0511 →
RELEASE (REEL 034536 / FRAME 0438) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061574/0963 →
RELEASE (REEL 054275 / FRAME 0975) Recorded May 7, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 056176/0398 →
SECURITY AGREEMENT Recorded Nov 2, 2020
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054275/0975 →
SECURITY AGREEMENT Recorded Mar 6, 2020
From: TIBCO SOFTWARE INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 052115/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2015
From: INSIGHTFUL CORPORATION
To: TIBCO SOFTWARE INC.
Reel/Frame 034890/0638 →
SECURITY INTEREST Recorded Dec 5, 2014
From: TIBCO SOFTWARE INC.; TIBCO KABIRA LLC; NETRICS.COM LLC
To: JPMORGAN CHASE BANK., N.A., AS COLLATERAL AGENT
Reel/Frame 034536/0438 →
MERGER Recorded Jan 12, 2010
From: INSIGHTFUL CORPORATION
To: TIBCO SOFTWARE INC.
Reel/Frame 023767/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2006
From: SMITH, DAVID M.; SANNELLA, MICHAEL J.; ROOSEN, CHARLES B.; DUNLAP, WILLIAM W.
To: INSIGHTFUL CORPORATION
Reel/Frame 018503/0618 →
Continuity (2)
Provisional Application 6066985400 · Apr 7, 2005
Related Publication 20070040094A1 · Feb 22, 2007