IP Library Granted Patent US 10,984,018
Granted Patent B2
US 10,984,018 · App. 15/642,872 · Granted Apr 20, 2021

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

Inventors: Yiftach Shoolman (Modi'in, IL); Ofer Bengal (Tel-Aviv, IL)
Assignee: Redis Labs Ltd
G06F16/28G06F16/214G06F16/289H03M7/3088H03M7/707G06F16/21G06F16/284
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 10,984,018
App. No.
15/642,872
Granted
Apr 20, 2021
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 (37)

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, to an in-memory, non-relational data store;

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, to the in-memory, non-relational data store;

classifying the first object to a compression dictionary based on a value of the first object and/or the key of the first object;

classifying the second object to the compression dictionary based on a value of the second object and/or the key of the second object;

writing the first object to the in-memory, non-relational data store as an uncompressed object before the first object is compressed;

compressing the first object and the second object based on the compression dictionary to form a first compressed object and a second compressed object, respectively;

writing the first compressed object and the second compressed object to the in-memory, non-relational data store; and

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.

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

3. The method of claim 1 , further comprising removing an object from in-memory, non-relational storage if 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.

4. The method of claim 1 , further comprising: releasing a buffer associated with the uncompressed object.

5. 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, to an in-memory, non-relational data store;

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, to the in-memory, non-relational data store;

classifying the first object to a compression dictionary based on a value of the first object and/or the key of the first object;

classifying the second object to the compression dictionary based on a value of the second object and/or the key of the second object;

writing the first object to the in-memory, non-relational data store as an uncompressed object before the first object is compressed;

compressing the first object and the second object based on the compression dictionary to form a first compressed object and a second compressed object, respectively;

writing the first compressed object and the second compressed object to the in-memory, non-relational data store; and

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.

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

7. The non-transitory medium of claim 5 , the method further comprising removing an object from in-memory, non-relational storage if 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.

8. The non-transitory computer-readable medium of claim 5 , wherein the method further comprises: releasing a buffer associated with the uncompressed object.

9. 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, to an in-memory, non-relational data store;

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, to the in-memory, non-relational data store;

classifies the first object to a compression dictionary based on a value of the first object and/or the key of the first object;

classifies the second object to the compression dictionary based on a value of the second object and/or the key of the second object;

writes the first object to the in-memory, non-relational data store as an uncompressed object before the first object is compressed;

compresses the first object and the second object based on the compression dictionary to form a first compressed object and a second compressed object, respectively;

writes the first compressed object and the second compressed object to the in-memory, non-relational data store; and

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.

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

11. The system of claim 9 , 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.

12. The system of claim 9 , wherein the at least one hardware processor also: releases a buffer associated with the uncompressed object.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2020
From: SHOOLMAN, YIFTACH; BENGAL, OFER
To: GARANTIA DATA LTD
Reel/Frame 052013/0237 →
CHANGE OF NAME Recorded Mar 4, 2020
From: GARANTIA DATA LTD
To: REDIS LABS LTD
Reel/Frame 052091/0331 →
SECOND AMENDMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 11, 2019
From: REDIS LABS LTD
To: SILICON VALLEY BANK
Reel/Frame 048301/0621 →
Cited By (1)
US 12,373,440