IP Library Granted Patent US 8,001,134
Granted Patent B2
US 8,001,134 · App. 12/701,231 · Granted Aug 16, 2011

Method for performing an external (disk-based) sort of a large data file which takes advantage of “presorted” data already present in the input

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 8,001,134
App. No.
12/701,231
Granted
Aug 16, 2011
Kind
B2
Abstract

A method of externally sorting large files in a computer system is presented. The contents of the input file to be sorted are investigated in order to identify presorted portions thereof. The presorted portions of the input file as thus identified are incorporated as sorted strings into an external sortwork file, by rearranging directory information rather than physically transferring data. If merging is necessary, the data may then be merged by a procedure wherein blocks of sorted data to be merged are incorporated into an output (sortout) file, by rearranging directory information rather than physically transferring sorted blocks to the sortout file. As a result of the process, portions of sorted data incorporated into the sortout file may physically remain in external storage space allocated to the input file, and/or in external space allocated to sortwork, thereby eliminating or reducing reading and writing from disk during sort-merge processing.

Claims (15)

1. A method for performing the string generation phase of a sort merge process in a computer, upon data in a first file comprising data blocks in a sortin file residing in persistent machine-readable storage, wherein said data may contain presorted portions, said method comprising:

(a) reading a portion of the sortin file into a first machine-readable memory area and noting in a second machine-readable memory area the locations on said persistent machine-readable storage from which the blocks of said portion were read;

(b) determining the location of any presorted runs existing in said read portion;

(c) marking as free the memory locations in said first memory area that are occupied by said presorted runs and noting in said second machine-readable memory area the locations in said persistent machine-readable storage from which the blocks of said presorted portions had been read;

(d) repeating the preceding three steps until either all data in the sortin file has been read or until said first memory area is full, and then sorting any data remaining in said first memory area, writing said sorted data to said persistent machine-readable storage, and noting in said second machine-readable memory area the locations in said persistent machine-readable storage area of said sorted data that was so written; and

(e) writing a file directory structure for a second file in persistent machine-readable storage, incorporating therein said locations of the blocks of said presorted runs and the locations of the blocks of said sorted data.

2. The method of claim 1 , wherein said second file is a sortwork file.

3. The method of claim 2 , further comprising:

(a) during said string generation phase, noting in said second machine-readable memory area the high and low keys of each data block read from said machine-readable persistent storage;

(b) performing a merge phase of the data in said sortwork file into a sortout file; and

(c) during said merge phase reading each block of each sorted string from said sortwork file if comparison of said keys for said block reflects that said block is not part of a run, and otherwise including said block into said sortout file by writing its block locations into the directory structure of said sortout file without physically reading or moving the data in said block.

4. The method of claim 1 , wherein said second machine-readable memory area comprises a directory structure maintained by an operating system of said computer for said persistent machine-readable storage.

5. The method of claim 3 , wherein said sortin file is deleted, by an operating system of said computer, after said merge phase.

6. The method of claim 3 , wherein said sortin file is replaced by said sortout file, by an operating system of said computer, after said merge phase.

7. The method of claim 1 , wherein said sortin file is comprised in its entirety by one fully sorted presorted portion, and wherein no data from said sortin file is sorted and no data from said sortin file is physically moved from said sortin file to said second file.

Assignments (21)
FIRST LIEN GRANT OF SECURITY INTEREST IN PATENTS Recorded Jul 17, 2025
From: PRECISELY SOFTWARE INCORPORATED; VISIONS SOLUTIONS, INC.; PITNEY BOWES SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 072019/0370 →
SECOND LIEN GRANT OF SECURITY INTEREST IN PATENTS Recorded Jul 17, 2025
From: PRECISELY SOFTWARE INCORPORATED; VISIONS SOLUTIONS, INC.; PITNEY BOWES SOFTWARE INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 072019/0382 →
CHANGE OF NAME Recorded Mar 11, 2022
From: SYNCSORT INCORPORATED
To: PRECISELY SOFTWARE INCORPORATED
Reel/Frame 059362/0381 →
SECOND LIEN RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 26, 2021
From: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
To: VISION SOLUTIONS, INC.; PRECISELY SOFTWARE INCORPORATED (F/K/A SYNCSORT INCORPORATED); PITNEY BOWES SOFTWARE INC.
Reel/Frame 056107/0233 →
FIRST LIEN RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 26, 2021
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: VISION SOLUTIONS, INC.; PRECISELY SOFTWARE INCORPORATED (F/K/A SYNCSORT INCORPORATED); PITNEY BOWES SOFTWARE INC.
Reel/Frame 056038/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS SECTION. PATENT NUMBERS 10003946 AND 10119825 WERE INCORRECTLY DESIGNATED AS APPLICATION NUMBERS. PREVIOUSLY RECORDED ON REEL 052323 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF SECURITY INTEREST IN PATENTS. Recorded Apr 14, 2021
From: BANK OF AMERICA, N.A., AS EXISTING AGENT
To: JEFFERIES FINANCE LLC, AS SUCCESSOR AGENT
Reel/Frame 056304/0891 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS SECTION. PATENT NUMBERS 10003946 AND 10119825 WERE INCORRECTLY DESIGNATED AS APPLICATION NUMBERS. PREVIOUSLY RECORDED ON REEL 052323 FRAME 0304. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF SECURITY INTEREST IN PATENTS. Recorded Apr 14, 2021
From: BANK OF AMERICA, N.A., AS EXISTING AGENT
To: GOLUB CAPITAL MARKETS LLC, AS SUCCESSOR AGENT
Reel/Frame 056305/0117 →
ASSIGNMENT OF SECURITY INTEREST IN PATENTS Recorded Apr 6, 2020
From: BANK OF AMERICA, N.A., AS EXISTING AGENT
To: JEFFERIES FINANCE LLC, AS SUCCESSOR AGENT
Reel/Frame 052323/0254 →
ASSIGNMENT OF SECURITY INTEREST IN PATENTS Recorded Apr 6, 2020
From: BANK OF AMERICA, N.A., AS EXISTING AGENT
To: GOLUB CAPITAL MARKETS LLC, AS SUCCESSOR AGENT
Reel/Frame 052323/0304 →
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: SYNCSORT INCORPORATED
Reel/Frame 043604/0779 →
SECURITY INTEREST Recorded Aug 18, 2017
From: SYNCSORT INCORPORATED
To: BANK OF AMERICA, N.A. AS COLLATERAL AGENT
Reel/Frame 043334/0678 →
SECURITY INTEREST Recorded Aug 18, 2017
From: SYNCSORT INCORPORATED
To: BANK OF AMERICA, N.A. AS COLLATERAL AGENT
Reel/Frame 043334/0659 →
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: SYNCSORT INCORPORATED
Reel/Frame 043333/0557 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Dec 23, 2016
From: SYNCSORT INCORPORATED
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 041187/0186 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Dec 23, 2016
From: SYNCSORT INCORPORATED
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 041187/0177 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 24678/0539 Recorded Dec 23, 2016
From: GOLUB CAPITAL MARKETS LLC, FORMERLY KNOWN AS GCI CAPITAL MARKETS LLC
To: SYNCSORT INCORPORATED
Reel/Frame 041187/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 37055/0702 Recorded Dec 23, 2016
From: GOLUB CAPITAL MARKETS LLC, FORMERLY KNOWN AS GCI CAPITAL MARKETS LLC
To: SYNCSORT INCORPORATED
Reel/Frame 041187/0479 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 37146/0655 Recorded Dec 23, 2016
From: NB PRIVATE DEBT FUND LP
To: SYNCSORT INCORPORATED
Reel/Frame 041187/0491 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 19, 2015
From: SYNCSORT INCORPORATED
To: NB PRIVATE DEBT FUND LP, AS ADMINISTRATIVE AGENT
Reel/Frame 037146/0655 →
SECURITY INTEREST Recorded Nov 17, 2015
From: SYNCSORT INCORPORATED
To: GCI CAPITAL MARKETS LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 037055/0702 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2014
From: LIU, PETER
To: SYNCSORT INCORPORATED
Reel/Frame 032280/0724 →