IP Library Granted Patent US 9,330,150
Granted Patent B1
US 9,330,150 · App. 13/777,226 · Granted May 3, 2016

Registration and utilization of arbitrary data conversion schemes in a shared data store

Inventor: Gavin Sherry (San Mateo, CA)
Assignee: EMC Corporation
G06F17/30569H03M7/30
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,330,150
App. No.
13/777,226
Filed
Feb 26, 2013
Granted
May 3, 2016
Kind
B1
Art Unit
2163
USPC
707/693
Abstract

Data conversion algorithms such as compression and decompression algorithms or encryption and decryption algorithms are registered in a shared data store for selective use on data by creating implementations of a plurality of functions that as a group characterize the algorithms, converting the implementations to executable code and storing the code in a shared library, and creating and registering data store objects in a data store catalog with a common identifier that enables the algorithm to be selectively called and applied to data.

Claims (26)

1. A computer-implemented method of defining and registering a user-defined data conversion algorithm in a shared data store of a distributed database system for selective use on data entered into or retrieved from the database system, comprising:

defining by a user a plurality of functions that comprise and mathematically express operations of the user-defined data conversion algorithm, said defining comprising defining implementations and parameters for each of said functions, each of the functions having associated arguments corresponding to said parameters, and wherein said data conversion algorithm comprises one of data compression, data decompression, data encryption or data decryption;

converting by the computer the implementations for each of the plurality of functions into separate executable code objects, each code object comprising an implementation of one of said plurality of functions and having associated parameters of an argument of said one of said plurality of functions, and storing said code objects and said associated parameters in a shared library of the data store with a common global identifier that uniquely identifies the user-defined data conversion algorithm and ties together each of said code objects as corresponding to implementations of said one of said functions of the user-defined data conversion algorithm;

registering each of said code objects and said associated parameters in a catalog of the data store with said common global identifier to enable said code objects and said associated parameters corresponding to an implementation of a function of said data conversion algorithm to be separately and selectively accessed, changed and applied to the data by a user; and

further comprising automatically and transparently converting data entered into or retrieved from the data store using said data conversion algorithm in response to a data conversion statement referencing the common global identifier in data store commands to enter data into and retrieve data from the data store.

2. The method of claim 1 , wherein said plurality of functions comprises a constructor function, the constructor function initializing and creating a state for the data conversion algorithm by establishing said parameters for arguments of said plurality of functions.

3. The method of claim 2 , wherein the plurality of functions further comprise a destructor function for destroying the state and deinitializing the data conversion algorithm.

4. The method of claim 2 , wherein the plurality of functions further comprise a validator function that validates user selected input parameter values supplied to the data conversion algorithm by determining whether said input parameter values are valid and appropriate to the algorithm.

5. The method of claim 1 , wherein for said data compression or decompression algorithm, said plurality of functions comprise a compressor function or a decompressor function that define corresponding compression and decompression operations, respectively, and applicable parameters of functions of the compression or decompression algorithm, said applicable parameters of said functions comprising user selectable compression and decompression levels.

6. The method of claim 5 , wherein said applicable parameters comprise a data descriptor of the input data, and buffer sizes based upon the input data and the user selected compression and decompression levels.

7. The method of claim 5 , wherein said common global identifier identifies a particular one of several different data compression algorithms registered in said data store and the corresponding plurality of functions that define and comprise said one data compression algorithm.

8. The method of claim 1 , wherein for said data encryption or decryption algorithm, said plurality of functions comprise an encryptor function or a decryptor function that define corresponding encryption and decryption operations, respectively, and applicable parameters of the encryption or decryption algorithm.

9. The method of claim 1 , wherein said registering each of said code objects comprises registering a code object corresponding to an implementation of each of said functions in response to a CREATE FUNCTION command for each of said functions.

10. Computer readable non-transitory media for storing executable instructions for controlling the operation of a computer to perform a method of defining and registering a user-defined data conversion algorithm in a shared data store of a distributed database system for selective use on data entered into or retrieved from the database system, the method comprising:

defining by a user a plurality of functions that comprise and mathematically express operations of the user-defined data conversion algorithm, said defining comprising defining implementations and parameters for each of said functions, each of the functions having associated arguments corresponding to said parameters, and wherein said data conversion algorithm comprises one of data compression, data decompression, data encryption or data decryption;

converting by the computer the implementations for each of the plurality of functions into separate executable code objects, each code object comprising an implementation of one of said plurality of functions and having associated parameters of an argument of said one of said plurality of functions, and storing said code objects in a shared library of the data store with a common global identifier that uniquely identifies the user-defined data conversion algorithm and ties together each of said code objects as corresponding to said one of said functions of the user-defined data conversion algorithm;

registering each of said code objects and said associated parameters in a catalog of the data store with said common global identifier to enable said code objects and said associated parameters to be separately and selectively accessed, changed and applied to the data by a user; and

further comprising automatically and transparently converting data entered into or retrieved from the data store using said data conversion algorithm in response to a data conversion statement referencing the common global identifier in data store commands to enter data into and retrieve data from the data store.

11. The computer readable media of claim 10 , wherein said plurality of functions comprises a constructor function, the constructor function initializing and creating a state for the data conversion algorithm by establishing said parameters for arguments of said plurality of functions.

12. The computer readable media of claim 11 , wherein the plurality of functions further comprise a destructor function for destroying the state and deinitializing the data conversion algorithm.

13. The computer readable media of claim 11 , wherein the plurality of functions further comprise a validator function that validates user selected input parameter values supplied to the data conversion algorithm by determining whether said input parameter values are valid and appropriate to the algorithm.

14. The computer readable media of claim 10 , wherein for said data compression or decompression algorithm, said plurality of functions comprise a compressor function or a decompressor function that define corresponding compression and decompression operations, respectively, and applicable parameters of functions of the compression or decompression algorithm, said applicable parameters comprising user selected compression and decompression levels.

15. The computer readable media of claim 14 , wherein said applicable parameters comprise a data descriptor of the input data, and buffer sizes based upon the input data and the user selected compression and decompression levels.

16. The computer readable media of claim 14 , wherein said common global identifier identifies a particular one of several different data compression algorithms registered in said data store and the corresponding plurality of functions that define and comprise said one data compression algorithm.

17. The computer readable media of claim 10 , wherein for said data encryption or decryption algorithm, said plurality of functions comprise an encryptor function or a decryptor function that define corresponding encryption and decryption operations, respectively, and applicable parameters of the encryption or decryption algorithm.

18. The computer readable media of claim 10 , wherein said registering each of said code objects comprises registering each code object corresponding to an implementation of each of said functions in response to a CREATE FUNCTION command for each of said functions.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2013
From: SHERRY, GAVIN
To: EMC CORPORATION
Reel/Frame 029917/0933 →