IP Library Granted Patent US 11,184,021
Granted Patent B2
US 11,184,021 · App. 16/820,675 · Granted Nov 23, 2021

Using predicates in conditional transcoder for column store

Inventors: Yang Seok Ki (Palo Alto, CA); Ho Bin Lee (San Jose, CA)
H03M7/3066G06F3/0604G06F3/0656G06F3/0679H03M7/3059H03M7/46H03M7/6011
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 11,184,021
App. No.
16/820,675
Filed
Mar 16, 2020
Granted
Nov 23, 2021
Kind
B2
Art Unit
2132
USPC
711/154
Abstract

A storage device is disclosed. The storage device may comprise storage for input encoded data. A controller may process read requests and write requests from a host computer on the data in the storage. An in-storage compute controller may receive a predicate from the host computer to be applied to the input encoded data. A transcoder may include an index mapper to map an input dictionary to an output dictionary, with one entry in the input dictionary mapped to an entry in the output dictionary, and another entry in the input dictionary mapped to a “don't care” entry in the output dictionary.

Claims (46)

1. A storage device, comprising:

storage for an input encoded data;

a controller to process read requests and write requests from a host computer on the storage;

an in-storage compute (ISC) controller to receive a predicate originating from the host computer, the predicate to be applied to the input encoded data stored in the storage; and

a transcoder including an index mapper to map from an input dictionary for the input encoded data to an output dictionary, the input dictionary including at least one first entry and at least one second entry, the at least one first entry mapped to at least one third entry in the output dictionary and the at least one second entry mapped to a “don't care” entry in the output dictionary.

2. The storage device according to claim 1 , wherein the transcoder includes at least one of a processor, a Field Programmable Gate Array (FPGA), an Application-Specific Integrated Circuit (ASIC), a Graphics Processing Unit (GPU), or a General Purpose GPU (GPGPU).

3. The storage device according to claim 1 , wherein the ISC controller is operative to apply an acceleration function on an output encoded data from the transcoder.

4. The storage device according to claim 1 , wherein the transcoder is operative to generate an output encoded data based at least in part on the input encoded data and the map from the input dictionary to the output dictionary.

5. The storage device according to claim 4 , wherein the transcoder includes:

a buffer to store the input encoded data;

the index mapper;

a current encode buffer to store a modified current encoded data, the modified current encoded data responsive to the input encoded data and the map from the input dictionary to the output dictionary;

a previous encode buffer to store a modified previous encoded data, the modified previous encoded data responsive to a previous input encoded data and the map from the input dictionary to the output dictionary; and

a rule evaluator to generate an output stream responsive to the modified current encoded data in the current encode buffer, the modified previous encoded data in the previous encode buffer, and transcoding rules.

6. The storage device according to claim 5 , wherein the transcoding rules are based at least in part on the predicate.

7. The storage device according to claim 1 , wherein the input encoded data is stored in the storage in a columnar format.

8. The storage device according to claim 7 , further comprising a column chunk processor to process a column chunk including the input encoded data and forward the input encoded data to the transcoder.

9. The storage device according to claim 8 , wherein the column chunk processor includes the transcoder.

10. The storage device according to claim 8 , wherein the column chunk processor includes at least one of a processor, a Field Programmable Gate Array (FPGA), an Application-Specific Integrated Circuit (ASIC), a Graphics Processing Unit (GPU), or a General Purpose GPU (GPGPU).

11. A method, comprising:

receiving a predicate to apply to an input encoded data at a transcoder; accessing an input dictionary for the input encoded data;

identifying at least one first entry in the input dictionary that is covered by the predicate and at least one second entry in the input dictionary that is not covered by the predicate;

generating a output dictionary that excludes the at least one second entry in the dictionary that is not covered by the predicate, the transcoding dictionary including at least a third entry and a “don't care” entry; and

generating a dictionary map by the transcoder that maps the at least one first entry in the input dictionary to the at least one third entry in the output dictionary and that maps the at least one second entry in the input dictionary that is not covered by the predicate to the “don't care” entry in the output dictionary.

12. The method according to claim 11 , wherein the input encoded data includes a column chunk stored in a columnar format.

13. The method according to claim 11 , further comprising:

using the dictionary map to transcode the input encoded data into an output encoded data; and

outputting the output encoded data.

14. The method according to claim 13 , wherein using the dictionary map to transcode the input encoded data into an output encoded data includes:

receiving a first chunk of data from the input encoded data at the transcoder;

determining that the first chunk of data is covered by the predicate;

generating a first encoded data from the first chunk of data based at least in part on the first chunk of data being of interest to the host computer using the dictionary map;

receiving a second chunk of data from the input encoded data at the transcoder from the storage device;

determining that the second chunk of data is not covered by the predicate;

generating a second encoded data from the second chunk of data based at least in part on the second chunk of data not being of interest to the host computer using the dictionary map; and

outputting the first encoded data and the second encoded data.

15. The method according to claim 14 , further comprising generating transcoding rules to apply to the input encoded data based at least in part on the predicate.

16. The method according to claim 13 , wherein outputting the output encoded data includes outputting the output encoded data to an ISC controller.

17. The method according to claim 16 , wherein outputting the output encoded data to an ISC controller further includes outputting the output dictionary to the ISC controller.

18. The method according to claim 17 , further comprising performing an acceleration function on the output encoded data by the ISC controller to produce an accelerated data.

19. An article, comprising a non-transitory storage medium, the non-transitory storage medium having stored thereon instructions that, when executed by a machine, result in:

receiving a predicate to apply to an input encoded data at a transcoder; accessing an input dictionary for the input encoded data;

identifying at least one first entry in the input dictionary that is covered by the predicate and at least one second entry in the input dictionary that is not covered by the predicate;

generating a output dictionary that excludes the at least one second entry in the dictionary that is not covered by the predicate, the transcoding dictionary including at least a third entry and a “don't care” entry; and

generating a dictionary map by the transcoder that maps the at least one first entry in the input dictionary to the at least one third entry in the output dictionary and that maps the at least one second entry in the input dictionary that is not covered by the predicate to the “don't care” entry in the output dictionary.

20. The article according to claim 19 , wherein the input encoded data includes a column chunk stored in a columnar format.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2023
From: KI, YANG SEOK; LEE, HO BIN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 063886/0620 →
Continuity (5)
Provisional Application 62819499 · Mar 15, 2019
Provisional Application 62834900 · Apr 16, 2019
Provisional Application 62945877 · Dec 9, 2019
Provisional Application 62945883 · Dec 9, 2019
Related Publication 20200293192A1 · Sep 17, 2020
Cited By (1)
US 12,483,270