IP Library Granted Patent US 9,542,329
Granted Patent B1
US 9,542,329 · App. 15/064,330 · Granted Jan 10, 2017

System and method for managing an object cache

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,542,329
App. No.
15/064,330
Granted
Jan 10, 2017
Kind
B1
Abstract

In order to optimize efficiency of deserialization, a serialization cache is maintained at an object server. The serialization cache is maintained in conjunction with an object cache and stores serialized forms of objects cached within the object cache. When an inbound request is received, a serialized object received in the request is compared to the serialization cache. If the serialized byte stream is present in the serialization cache, then the equivalent object is retrieved from the object cache, thereby avoiding deserialization of the received serialized object. If the serialized byte stream is not present in the serialization cache, then the serialized byte stream is deserialized, the deserialized object is cached in the object cache, and the serialized object is cached in the serialization cache.

Claims (54)

1. A method, comprising:

when a serialization cache does not store one or more referenced objects, performing:

storing a serialized byte stream for the one or more referenced objects in the serialization cache; and

when one or more immutable objects are provided inline with one or more primitive objects in the serialized byte stream performing at least one of:

storing a first form of the serialized byte stream in the serialization cache in which the one or more immutable objects are inline with the one or more primitive objects; and

storing a second form of the serialized byte stream in the serialization cache in which the one or more immutable objects are cached separately from the one or more primitive objects.

2. The method of claim 1 comprising storing the one or more referenced objects in the object cache when the serialization cache does not store the one or more referenced objects.

3. The method of claim 1 comprising associating the stored serialized byte stream with the corresponding cached object.

4. The method of claim 1 comprising at least one of:

retrieving referenced objects from an object cache for which the serialization cache stores a serialization for the referenced object; and

deserializing portions of the serialized object that could not be retrieved from the object cache.

5. The method of claim 1 comprising determining if one or more serializations of the one or more referenced objects are stored by the serialization cache, wherein determining if one or more referenced object serializations are stored by the serialization cache comprises determining if one or more byte streams stored in the serialization cache at least partially match a byte stream of the received serialized object.

6. The method of claim 1 comprising deserializing the one or more referenced objects and passing as an argument the deserialized object comprising one or more objects retrieved from the object cache.

7. A server, comprising:

an object cache;

a serialization cache; and

a deserialization module;

for serialized objects that are not stored by a serialization cache, the deserialization module is configured to:

store the serialized object in the serialization cache; and

when one or more immutable objects are provided inline with one or more primitive objects in the serialized byte stream perform at least one of:

store a first form of the serialized byte stream in the serialization cache in which the one or more immutable objects are inline with the one or more primitive objects; and

store a second form of the serialized byte stream in the serialization cache in which the one or more immutable objects are cached separately from the one or more primitive objects.

8. The server of claim 7 comprising a serialization module configured to:

determine an object to provide to a client;

determine if the object is cached in the object cache;

when the object is cached in the object cache, retrieve a corresponding serialization of the object from the serialization cache; and

provide the retrieved serialization of the object to the client.

9. The server of claim 7 comprising a serialization module configured to:

determine an object to provide to a client;

determine if the object is cached in the object cache;

when the object is not cached in the object cache, serialize the object; and

provide the serialized object to the client.

10. The server of claim 9 wherein the serialization module is configured to:

store the serialized object in the serialization cache; and

store the object in the object cache.

11. The server of claim 7 wherein the serialization cache is maintained for a plurality of serialization protocols.

12. The server of claim 7 comprising a plurality of serialization caches for a plurality of serialization protocols.

13. The server of claim 7 wherein for serialized objects that are not stored by the serialization cache:

deserialize the serialized object; and

store the deserialized object in the object cache.

14. A non-transitory computer readable medium comprising instructions that when executed by a processor, cause the processor to perform:

when a serialization cache does not store one or more referenced objects, performing:

storing a serialized byte stream for the one or more referenced objects in the serialization cache; and

when one or more immutable objects are provided inline with one or more primitive objects in the serialized byte stream performing at least one of:

storing a first form of the serialized byte stream in the serialization cache in which the one or more immutable objects are inline with the one or more primitive objects; and

storing a second form of the serialized byte stream in the serialization cache in which the one or more immutable objects are cached separately from the one or more primitive objects.

15. The non-transitory computer readable medium of claim 14 comprising instructions that when executed by a processor, cause the processor to perform storing the one or more referenced objects in the object cache when the serialization cache does not store the one or more referenced objects.

16. The non-transitory computer readable medium of claim 14 comprising instructions that when executed by a processor, cause the processor to perform associating the stored serialized byte stream with the corresponding cached object.

17. The non-transitory computer readable medium of claim 14 comprising instructions that when executed by a processor, cause the processor to perform at least one of:

retrieving referenced objects from an object cache for which the serialization cache stores a serialization for the referenced object; and

deserializing portions of the serialized object that could not be retrieved from the object cache.

18. The non-transitory computer readable medium of claim 14 comprising instructions that when executed by a processor, cause the processor to perform determining if one or more serializations of the one or more referenced objects are stored by the serialization cache, wherein determining if one or more referenced object serializations are stored by the serialization cache comprises determining if one or more byte streams stored in the serialization cache at least partially match a byte stream of the received serialized object.

19. The non-transitory computer readable medium of claim 14 comprising instructions that when executed by a processor, cause the processor to perform deserializing the one or more referenced objects.

20. The non-transitory computer readable medium of claim 14 comprising instructions that when executed by a processor, cause the processor to perform passing as an argument a deserialized one or more referenced objects comprising one or more objects retrieved from the object cache.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: OPEN INVENTION NETWORK, LLC
To: RED HAT, INC.
Reel/Frame 043276/0799 →