IP Library › Granted Patent US 9,524,747
Granted Patent B2
US 9,524,747 · App. 13/938,327 · Granted Dec 20, 2016

Controlling persisting of data to disk

Inventors: David Granshaw (Eastleigh, GB); Samuel T. Massey (Southhampton, GB); Daniel J. McGinnes (Southhampton, GB); Martin A. Ross (Gosport, GB); Richard G. Schofield (Eastleigh, GB); Craig H. Stirling (Hedge End, GB)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G11B20/10G06F9/546G06F2209/547
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,524,747
App. No.
13/938,327
Granted
Dec 20, 2016
Kind
B2
Abstract

Embodiments relate to controlling persisting of data to disk for use with a messaging system including an application operable for generating and sending a message to a destination. An aspect is an apparatus, which includes a comparator operable to determine whether the message includes common data, and an extractor, responsive to a determination that the message includes common data, configured to extract the common data and non-common data from the message. The apparatus also includes a persistor operable to determine whether the common data have already been persisted to disk. The persistor is operable, in response to a determination that the common data have not already been persisted to disk, to separately persist the common data and the non-common data to disk. The persistor is operable, in response to a determination that the common data have already been persisted to disk, to persist the non-common data to disk.

Claims (41)

1. An apparatus for controlling persisting of data to disk for use with a messaging system comprising an application operable for generating and sending a message to a destination, the apparatus comprising:

a processor in communication with one or more types of memory, the processor configured to:

facilitate a comparator operable to

determine that the message comprises common data,

determine that a performance benefit is gained by separating and persisting separately the common data and non-common data of the message, wherein a determination that the performance benefit is gained is made by determining a percentage of messages from the application comprising common data exceeds a predetermined threshold;

facilitate an extractor, responsive to a determination that the message comprises common data, configured to extract the common data and non-common data from the message and represent the non-common data located within the common data as variables comprising placeholders within the common data for each associated data item of the non-common data; and

facilitate a persistor operable to determine whether the common data have already been persisted to disk, wherein the persistor is operable, in response to a determination that the common data have not already been persisted to disk, to separately persist the common data and the non-common data represented by the variables to disk and wherein the persistor is operable, in response to a determination that the common data have already been persisted to disk, to persist the non-common data represented by the variables to disk, wherein the common data is persisted with a unique reference and the non-common data is persisted with the unique reference on a per message basis.

2. The apparatus of claim 1 wherein the comparator is pre-configurable to determine that a structure associated with the message comprises common data.

3. The apparatus of claim 1 wherein the comparator is operable to determine an overhead associated with extracting the common data and non-common data from the message in accordance with one or more rules.

4. The apparatus of claim 1 wherein the persistor is operable to use the unique reference associated with the common data to query a data store in order to determine whether the common data have already been persisted.

5. The apparatus of claim 1 wherein the persistor, responsive to a determination that the message does not comprise common data, is operable to persist the message to disk.

6. The apparatus of claim 1 wherein the comparator is operable to parse a set of messages generated by the application and match data associated with the messages in order to determine whether the message comprises common data.

7. The apparatus of claim 1 wherein the message is associated with a scope.

8. The apparatus of claim 1 wherein in response to another application requesting the message from the destination, the persistor is operable to reconstruct the message by appending the separately persisted common data and non-common data.

9. A method for controlling persisting of data to disk for use with a messaging system comprising an application operable for generating and sending a message to a destination, the method comprising:

determining that the message comprises common data;

determining that a performance benefit is gained by separating and persisting separately the common data and non-common data of the message, wherein a determination that the performance benefit is gained is made by determining a percentage of messages from the application comprising common data exceeds a predetermined threshold;

extracting, in response to a determination that the message comprises common data, the common data and non-common data from the message;

representing the non-common data located within the common data as variables comprising placeholders within the common data for each associated data item of the non-common data;

determining whether the common data have already been persisted to disk;

separately persisting, in response to a determination that the common data have not already been persisted to disk, the common data and the non-common data represented by the variables to disk; and

persisting, in response to a determination that the common data have already been persisted to disk, the non-common data represented by the variables to disk, wherein the common data is persisted with a unique reference and the non-common data is persisted with the unique reference on a per message basis.

10. The method of claim 9 further comprising: determining that a structure associated with the message comprises common data.

11. The method of claim 9 further comprising: determining an overhead associated with extracting the common data and non-common data from the message in accordance with one or more rules.

12. The method of claim 9 further comprising: using the unique reference associated with the common data to query a data store in order to determine whether the common data have already been persisted.

13. The method of claim 9 further comprising: persisting, in response to a determination that the message does not comprise common data, the message to disk.

14. The method of claim 9 further comprising: parsing a set of messages generated by the application and matching data associated with the messages in order to determine whether the message comprises common data.

15. The method of claim 9 wherein the message is associated with a scope.

16. The method of claim 9 further comprising: reconstructing, in response to another application requesting the message from the destination, the message by appending the separately persisted common data and non-common data.

17. A computer program product for controlling persisting of data to disk for use with a messaging system comprising an application operable for generating and sending a message to a destination, the computer program product comprising:

a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

determining that the message comprises common data;

determining that a performance benefit is gained by separating and persisting separately the common data and non-common data of the message, wherein a determination that the performance benefit is gained is made by determining a percentage of messages from the application comprising common data exceeds a predetermined threshold;

extracting, in response to a determination that the message comprises common data, the common data and non-common data from the message;

representing the non-common data located within the common data as variables comprising placeholders within the common data for each associated data item of the non-common data;

determining whether the common data have already been persisted to disk;

separately persisting, in response to a determination that the common data have not already been persisted to disk, the common data and the non-common data represented by the variables to disk; and

persisting, in response to a determination that the common data have already been persisted to disk, the non-common data represented by the variables to disk, wherein the common data is persisted with a unique reference and the non-common data is persisted with the unique reference on a per message basis.

18. The computer program product of claim 17 further comprising: determining that a structure associated with the message comprises common data.

19. The computer program product of claim 17 further comprising: determining an overhead associated with extracting the common data and non-common data from the message in accordance with one or more rules.

20. The computer program product of claim 17 further comprising: using the unique reference associated with the common data to query a data store in order to determine whether the common data have already been persisted.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2013
From: GRANSHAW, DAVID; MASSEY, SAMUEL T.; MCGINNES, DANIEL J.; ROSS, MARTIN A.; SCHOFIELD, RICHARD G.; STIRLING, CRAIG H.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030765/0890 →
Continuity (1)
Related Publication 20140078876A1 · Mar 20, 2014