# US 10,503,432 B2 · Buffering and compressing data sets

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,432 B2
- Document ID: US10503432B2
- Status: Granted
- Kind: B2
- Application number: 15/873,376
- Filed: 2018-01-17
- Published: 2019-07-18
- Granted: 2019-12-10
- Earliest claimed: 2018-01-17
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Takeshi Yoshimura; Tatsuhiro Chiba
- Web page: https://patentgrep.com/patent/US10503432B2

## CPC

- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0643: {Management of files}
- G06F 3/0661: {Format or protocol conversion arrangements}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 13/1673: {using buffers}
- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

A method, computer program product, and apparatus for buffering data sets are provided. The method includes preparing at least one buffer including a plurality of compression windows. The method also includes receiving a data set. The method further includes writing the received data set into a data region in a first compression window among the plurality of compression windows included in a first buffer among the at least one buffer. The method also includes updating statistics of a statistics region in the first compression window based on the received data set. The method further includes compressing the data set from the data region of the first compression window based on the statistics in the statistics region of the first compression window. The method also includes sending the compressed data set to the data region of the first compression window to replace the received data set.

## Claims

### Claim 1

A computer-implemented method comprising:
preparing at least one buffer including a plurality of compression windows, each compression window having a data region for storing data and a statistics region for storing statistics of data stored in the data region;
receiving a data set;
writing the received data set into the data region in a first compression window among the plurality of compression windows included in a first buffer among the at least one buffer;
updating statistics of the statistics region in the first compression window based on the received data set;
compressing the data set from the data region of the first compression window based on the statistics in the statistics region of the first compression window; and
sending the compressed data set to the data region of the first compression window to replace the received data set.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the writing includes, in response to filling the data region of the first compression window, writing remaining data of the received data set into the data region in a second compression window, the second compression window located next to the first compression window.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein
each compression window further includes a status region for storing a status of each compression window, and
the writing includes setting the status of the first compression window to “compressible,” in response to filling the data region of the first compression window.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein
the compressing includes compressing the data set in the data region of the first compression window in response to setting the status of the first compression window to “compressible;” and
the sending includes setting the status of the first compression window to “usable” in response to sending the compressed data set.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the updating is based on the received data set without referring the data set written in the data region in the first compression window.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the buffer is a ring buffer configured to use the plurality of compression windows in first-in-first-out (FIFO) order.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein
the at least one buffer is a plurality of buffers,
the data set includes a plurality of data segments, and
the writing includes writing each data segment of the received data set into a corresponding buffer among the plurality of buffers.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein
the compressing includes compressing each data segment based on statistics of the statistics region of the compression window of the corresponding buffer, and
the sending includes sending the compressed data segments as individual files to one or more storage devices.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the data set is received in response to a monitored event in a computer system.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein
the at least one buffer is a plurality of buffers;
the receiving includes receiving an event data segment from each processor among a plurality of processors in the computer system;
the writing includes writing each event data segment into a corresponding buffer among the plurality of buffers.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, further comprising:
initializing the statistics in the statistics region of the first compression window based on statistics in a statistics region of a third compression window previous to the first compression window.

### Claim 12

A computer program product including one or more computer readable storage mediums collectively storing program instructions that are executable by a processor or programmable circuitry to cause the processor or programmable circuitry to perform operations comprising:
preparing at least one buffer including a plurality of compression windows, each compression window having a data region for storing data and a statistics region for storing statistics of data stored in the data region;
receiving a data set;
writing the received data set into the data region in a first compression window among the plurality of compression windows included in a first buffer among the at least one buffer;
updating statistics of the statistics region in the first compression window based on the received data set;
compressing the data set from the data region of the first compression window based on the statistics in the statistics region of the first compression window; and
sending the compressed data set to the data region of the first compression window to replace the received data set.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein the writing includes, in response to filling the data region of the first compression window, writing remaining data of the received data set into the data region in a second compression window, the second compression window located next to the first compression window.

### Claim 14 (depends on 12)

The computer program product of claim 12, wherein the updating is based on the received data set without referring the data set written in the data region in the first compression window.

### Claim 15 (depends on 12)

The computer program product of claim 12, wherein the buffer is a ring buffer configured to use the plurality of compression windows in first-in-first-out (FIFO) order.

### Claim 16 (depends on 12)

The computer program product of claim 12, wherein
the at least one buffer is a plurality of buffers,
the data set includes a plurality of data segments, and
the writing includes writing each data segment of the received data set into a corresponding buffer among the plurality of buffers.

### Claim 17

A buffering apparatus comprising:
a processor or a programmable circuitry; and
one or more computer readable mediums collectively including instructions that, when executed by the processor or the programmable circuitry, cause the processor or the programmable circuitry to:
prepare at least one buffer including a plurality of compression windows, each compression window having a data region for storing data and a statistics region for storing statistics of data stored in the data region,
receive a data set,
write the received data set into the data region in a first compression window among the plurality of compression windows included in a first buffer among the at least one buffer,
update statistics of the statistics region in the first compression window based on the received data set,
compress the data set from the data region of the first compression window based on the statistics in the statistics region of the first compression window, and
send the compressed data set to the data region of the first compression window to replace the received data set.

### Claim 18 (depends on 17)

The buffering apparatus of claim 17, wherein the writing includes, in response to filling the data region of the first compression window, writing remaining data of the received data set into the data region in a second compression window, the second compression window located next to the first compression window.

### Claim 19 (depends on 17)

The buffering apparatus of claim 17, wherein the updating is based on the received data set without referring the data set written in the data region in the first compression window.

### Claim 20 (depends on 17)

The buffering apparatus of claim 17, wherein the buffer is a ring buffer configured to use the plurality of compression windows in first-in-first-out (FIFO) order.
