IP Library Granted Patent US 8,595,268
Granted Patent B2
US 8,595,268 · App. 13/247,263 · Granted Nov 26, 2013

System, methods, and media for compressing non-relational database objects

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,595,268
App. No.
13/247,263
Granted
Nov 26, 2013
Kind
B2
Abstract

Method, media, and systems for compressing objects, comprising: receiving a request to write a first object including a first key and a first value, wherein the first object is of a given type; receiving a request to write a second object including a second key and a second value, wherein the second object is of the given type; classifying the first object to a compression dictionary according to at least one rule based on a value of the first object and/or the key of the first object; classifying the second object to the compression dictionary according to at least one rule based on a value of the second object and/or the key of the second object; and compressing the first object and the second object based on the compression dictionary.

Claims (46)

1. A method for compressing objects, comprising:

receiving a request to write a first object including a first key and a first value, wherein the first object is of a given type;

receiving a request to write a second object including a second key and a second value, wherein the second object is of the given type;

classifying the first object to a compression dictionary according to at least one rule based on a value of the first object and/or the key of the first object;

classifying the second object to the compression dictionary according to at least one rule based on a value of the second object and/or the key of the second object; and

compressing the first object and the second object based on the compression dictionary;

identifying first matching patterns in a pair of objects;

determining if the number of first matching patterns exceeds a first threshold;

when the number of first matching patterns is determined to exceed the first threshold, selecting an object from the pair of objects and identifying second matching patterns in the selected object and the compression dictionary;

determining if the number of second matching patterns exceeds a second threshold; and

when the number of second matching patterns is determined to exceed the second threshold, assigning the pair of objects to the compression dictionary.

2. The method of claim 1 , further comprising automatically identifying classification rules for classifying objects.

3. The method of claim 1 , further comprising writing the first object to an in-memory, non-relational data store as an uncompressed object before the first object is compressed, and overwriting the uncompressed object with a compressed form of the first objected object when the first object is compressed.

4. The method of claim 3 , further comprising determining when multiple uncompressed versions of an object have been written to the in-memory, non-relational data store before the compressed form of a first of the versions has been formed, and preventing the compressed form from overwriting a subsequent version of the object written to the in-memory, non-relational data store.

5. The method of claim 1 , further comprising removing an object from an in-memory, non-relational storage if store when it has been expired or based on total hits on the object during a predefined period and an amount of time since the object was last requested.

6. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for compressing objects, the method comprising:

receiving a request to write a first object including a first key and a first value, wherein the first object is of a given type;

receiving a request to write a second object including a second key and a second value, wherein the second object is of the given type;

classifying the first object to a compression dictionary according to at least one rule based on a value of the first object and/or the key of the first object;

classifying the second object to the compression dictionary according to at least one rule based on a value of the second object and/or the key of the second object; and

compressing the first object and the second object based on the compression dictionary;

identifying first matching patterns in a pair of objects;

determining if the number of first matching patterns exceeds a first threshold;

when the number of first matching patterns is determined to exceed the first threshold, selecting an object from the pair of objects and identifying second matching patterns in the selected object and the compression dictionary;

determining if the number of second matching patterns exceeds a second threshold; and

when the number of second matching patterns is determined to exceed the second threshold, assigning the pair of objects to the compression dictionary.

7. The non-transitory medium of claim 6 , the method further comprising automatically identifying classification rules for classifying objects.

8. The non-transitory medium of claim 6 , the method further comprising writing the first object to an in-memory, non-relational data store as an uncompressed object before the first object is compressed, and overwriting the uncompressed object with a compressed form of the first objected object when the first object is compressed.

9. The non-transitory medium of claim 8 , the method further comprising determining when multiple uncompressed versions of an object have been written to the in-memory, non-relational data store before the compressed form of a first of the versions has been formed, and preventing the compressed form from overwriting a subsequent version of the object written to the in-memory, non-relational data store.

10. The non-transitory medium of claim 6 , the method further comprising removing an object from an in-memory, non-relational storage if store when it has been expired or based on total hits on the object during a predefined period and an amount of time since the object was last requested.

11. A system for compressing objects, comprising:

at least one hardware processor that:

receives a request to write a first object including a first key and a first value, wherein the first object is of a given type;

receives a request to write a second object including a second key and a second value, wherein the second object is of the given type;

classifies the first object to a compression dictionary according to at least one rule based on a value of the first object and/or the key of the first object;

classifies the second object to the compression dictionary according to at least one rule based on a value of the second object and/or the key of the second object; and

compresses the first object and the second object based on the compression dictionary;

identifies first matching patterns in a pair of objects;

determines if the number of first matching patterns exceeds a first threshold;

when the number of first matching patterns is determined to exceed the first threshold, selects an object from the pair of objects and identifying second matching patterns in the selected object and the compression dictionary;

determines if the number of second matching patterns exceeds a second threshold; and

when the number of second matching patterns is determined to exceed the second threshold, assigns the pair of objects to the compression dictionary.

12. The system of claim 11 , wherein the at least one hardware processor also automatically identifies classification rules for classifying objects.

13. The system of claim 11 , wherein the at least one hardware processor also writes the first object to an in-memory, non-relational data store as an uncompressed object before the first object is compressed, and overwrites the uncompressed object with a compressed form of the first object when the first object is compressed.

14. The system of claim 13 , wherein the at least one hardware processor also determines when multiple uncompressed versions of an object have been written to the in-memory, non-relational data store before the compressed form of a first of the versions has been formed, and prevents the compressed form from overwriting a subsequent version of the object written to the in-memory, non-relational data store.

15. The system of claim 11 , wherein the at least one hardware processor also removes an object from an in-memory, non-relational store when it has been expired or based on total hits on the object during a predefined period and an amount of time since the object was last requested.

Assignments (6)
SECURITY INTEREST Recorded Jan 9, 2023
From: REDIS LTD
To: SILICON VALLEY BANK
Reel/Frame 062315/0312 →
CHANGE OF NAME Recorded Sep 13, 2021
From: REDIS LABS LTD
To: REDIS LTD
Reel/Frame 057494/0270 →
SECOND AMENDMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 11, 2019
From: REDIS LABS LTD
To: SILICON VALLEY BANK
Reel/Frame 048301/0621 →
FIRST AMENDMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 25, 2017
From: REDIS LABS LTD.
To: SILICON VALLEY BANK
Reel/Frame 042328/0088 →
SECURITY AGREEMENT Recorded Jun 23, 2015
From: REDIS LABS LTD
To: SILICON VALLEY BANK
Reel/Frame 036011/0849 →
CHANGE OF NAME Recorded Jan 9, 2015
From: GARANTIA DATA LTD
To: REDIS LABS LTD.
Reel/Frame 034746/0325 →