US8838634B1 - Custom user parallel data import and export - Google Patents
Custom user parallel data import and export Download PDFInfo
- Publication number
- US8838634B1 US8838634B1 US13/436,419 US201213436419A US8838634B1 US 8838634 B1 US8838634 B1 US 8838634B1 US 201213436419 A US201213436419 A US 201213436419A US 8838634 B1 US8838634 B1 US 8838634B1
- Authority
- US
- United States
- Prior art keywords
- database
- format
- formatter
- external
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Definitions
- FIG. 1 is a block diagram illustrating an embodiment of a system for formatting and transferring data.
- FIG. 2 is a flow chart illustrating an embodiment of a process for formatting data.
- FIG. 3 is a flow chart illustrating an embodiment of a process for formatting data using a database object.
- FIG. 4 is flowchart illustrating an embodiment of a process for receiving a formatter.
- FIG. 5 is a flow chart illustrating an embodiment of a process for formatting data.
- FIG. 6 is a flow chart illustrating an embodiment of a process for importing and exporting data.
- FIG. 7 is a flowchart illustrating an embodiment of a process for processing a custom protocol code.
- the invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor.
- these implementations, or any other form that the invention may take, may be referred to as techniques.
- the order of the steps of disclosed processes may be altered within the scope of the invention.
- a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task.
- the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
- data is formatted between a format of a database and a format external to the database.
- the formatting is performed in the context of importing data into a database and/or exporting data from the database.
- the data is formatted using a formatter of the database.
- a third party provides a formatter that is stored, invoked and executed on a system of the database to format data.
- the format external to the database includes a format that is different from the format of the database.
- the format external to the database includes a format of a data to be imported or a format of an exported data by the database.
- the format external to the database includes a format not natively supported by the database.
- the database is unable to export/import data to/from the format not natively supported by the database without using a formatter code defined external to the database (e.g., defined/provided by an entity external to an entity of the database).
- the formatter has been integrated with the database using a formatter code defined external to the database.
- the formatter has been integrated with the database at least in part by being configured to communicate directly with the database and/or execute in a system of the database.
- data to be imported/exported is transferred using a communication protocol not natively supported by the database.
- a communication protocol not natively supported by the database is desired to enable a more efficient and/or secure communication.
- the protocol not natively supported by the database is associated with the format not natively supported by the database.
- the protocol not natively supported by the database is associated with a data source/destination external to the database.
- protocol code of the protocol not natively supported by a database is received from a third party and a system of the database stores, invokes and executes the protocol code in order to transfer data using the protocol not natively supported by the database.
- the protocol controls establishing a communication connection (e.g., handshake and authentication of parties of the communication) and transfer of data via the connection.
- the communication protocol not natively supported by the database includes a communication protocol that the database cannot use without using a protocol code defined external to the database (e.g., defined/provided by an entity external to an entity of the database).
- FIG. 1 is a block diagram illustrating an embodiment of a system for formatting and transferring data.
- Database system 102 is connected to external data system 106 via network 104 .
- Network 104 and interconnect 110 may include one or more of the following: a direct or indirect physical communication connection, mobile communication network, Internet, intranet, Local Area Network, Wide Area Network, Storage Area Network, and any other forms of connecting two or more systems or storage devices together.
- external data system 106 provides at least a portion of data to be imported into database system 102 .
- external data system 106 is a destination of data to be exported from database system 102 .
- communication between database system 102 and external data system 106 is at least in part performed using a protocol not natively supported by one or more components of database system 102 .
- external data system 106 uses a distributed file system such as a Hadoop Distributed File System of The Apache Software Foundation.
- external data system 106 includes a plurality of database nodes.
- external data system 106 includes an ETL (Extraction, Transformation and Loading) server.
- external data system 106 includes data storage and/or is connected to an external data storage directly and/or via network 104 .
- external data system 106 includes a plurality of network interface controllers (i.e., NIC) and each NIC is connected to a plurality of hosts of database system 102 .
- Database system 102 includes master host 108 connected to segment hosts 112 , 114 and 116 via interconnect 110 .
- interconnect 110 is connected to network 104 .
- segment hosts 112 , 114 and 116 are connected to external data system 106 via interconnect 110 , which is connected to network 104 .
- each of segment hosts 112 , 114 and 116 establishes a different connection to external data system 106 via network 104 .
- each segment host connects to a different set of programs, NICs, or hosts included in external data system 106 .
- one or more of segment hosts 112 , 114 and 116 establish a plurality of connections with external data system 106 .
- segment host 112 established a first connection to a first NIC or host of external data system 106 and a second connection with a second NIC or host of external data system 106 .
- database system 102 includes the Greenplum Database offered by EMC, Inc. of Hopkinton, Mass. that leverages parallel architecture of the Hadoop Distributed File System.
- Database system 102 utilizes a shared-nothing MPP (massively parallel processing) architecture.
- MPP massively parallel processing
- database data is automatically partitioned across multiple segment hosts/servers (i.e., segment hosts 112 , 114 and 116 ), and each segment host owns and manages a distinct portion of the overall database. Communication between hosts 108 , 112 , 114 and 116 are performed via a network interconnect 110 .
- database system 102 utilizes a shared-nothing MPP architecture that provides every segment host with a dedicated, independent high-bandwidth channel to its individual storage.
- the segment hosts are able to process database queries in a fully parallel manner, use all storage connections simultaneously, and efficiently flow data between segment hosts as needed.
- Master host 108 manages segment hosts 112 , 114 and 116 .
- master host 108 provides query planning, query dispatch and/or coordinates MapReduce for database system 102 .
- FIG. 2 is a flow chart illustrating an embodiment of a process for formatting data. This process may be implemented on database system 102 of FIG. 1 .
- an indication of data to be formatted between a format of a database and a desired format not natively supported by the database is received.
- the indicated data is data to be imported into the database and is being formatted from the format not natively supported by the database to the format of the database.
- the indicated data is a data to be exported from the database and is being formatted to the format not natively supported by the database from the format of the database.
- data of database system 102 is exported to external data system 106 of FIG. 1 in a format not natively supported by database system 102 .
- a format not native to the database includes a format that cannot be imported or exported by the database using a formatter natively provided by the database. For example, data of external data system 106 in a format not natively supported by database system 102 is imported into database system 102 of FIG. 1 .
- An example of a database includes one or more components and/or the entire database system 102 of FIG. 1 .
- the format of the database includes a format of data stored in the database (e.g., database table format).
- the data is formatted between the format of the database and the format not natively supported by the database.
- formatting the data includes importing data from a format not native to the database to the database using a formatter provided to the database.
- formatting the data includes exporting data from a database to a format not native to the database using a formatter provided to the database.
- a formatter provided to database system 102 is used by system 102 to format data to/from external data system 106 .
- An example of a formatter includes an object (e.g., a programming function) of a database that can be used to convert data from one format to another.
- formatting the data includes creating an object in the database that represents the external data being imported/exported.
- formatting data includes extracting, transforming and/or loading data.
- formatting data includes using a plurality of hosts to load/unload and process data in parallel.
- formatting the data includes using a non-parallel load/unload mechanism (e.g., database COPY command) as a simple way to move data in or out of the database in a single transaction, without the overhead of creating a special database table for import/export.
- a non-parallel load/unload mechanism e.g., database COPY command
- FIG. 3 is a flow chart illustrating an embodiment of a process for formatting data using a database object.
- the process of FIG. 3 is included in 204 of FIG. 2 . This process may be implemented on one or more components of database system 102 of FIG. 1 .
- a database object that uses a custom formatter is defined.
- the custom formatter is a formatter not natively provided by the database associated with the formatter.
- the custom formatter is associated with program code received by a system of the database from an external party (e.g., a third-party interested in allowing support for the format by the database).
- the formatter is an example of the database object that can be used to format data from one format to another format.
- the formatter is a programming language function that is stored by the database and can be invoked by the database.
- the formatter has access to one or more connections of the database to read and/or write to the database.
- a first formatter is used to format data from a first format to a second format and a different second formatter used to format data from the second format to the first format.
- defining the database object includes defining a special type database table.
- This special table allows access to data external to the database as though the data is an object of the database. For example, data can be written to the table to export data and data can be read from the table to access imported data.
- the special table can be queried using database commands such as Structured Query Language (SQL) commands (e.g., select, join or sort database commands).
- SQL Structured Query Language
- Data Manipulation Language operations e.g., UPDATE, INSERT, DELETE, or TRUNCATE database commands
- UPDATE, INSERT, DELETE, or TRUNCATE database commands are not allowed whereas for the data export table, the INSERT database command operation is allowed (UPDATE, DELETE and TRUNCATE are still not allowed).
- the table is either file-based (e.g., table is associated with one or more static flat files) or web-based (e.g., table is associated with dynamic web sources).
- file-based e.g., table is associated with one or more static flat files
- web-based e.g., table is associated with dynamic web sources.
- the table above is named “students” and the data to be imported is located at “ ⁇ host>/file/path/” and accessed using the “file://” protocol.
- the formatter to be used to format the data to be imported is a custom formatter named “fixedwidth_in.”
- the table above is named “students” and the data is to be exported to location “ ⁇ host>/file/path/” using the “file://” protocol.
- the formatter to be used to format the exported data is a custom formatter named “fixedwidth_out”
- creating the database object includes utilizing a plurality of database segments (such as the segment hosts 112 , 114 and 116 of FIG. 1 ) to read and/or write in parallel across multiple hosts/streams of data.
- creating database objects include receiving an indication of a protocol to be used to transfer data to/from an external system, program or data location.
- formatting the data includes importing data including by formatting data from a format not native to the database to a format of the database.
- the table is populated with at least a portion of the data from an external data source.
- the data from the external source may be obtained at an indicated location using an indicated communication protocol.
- the data to be imported is in a format not native to the database and the data is formatted to the format of the database using the custom formatter of 302 .
- the format of the database includes the format of the data in or obtained from the database.
- the table can be queried to obtain imported data and database operations such as select, join and sort commands that can be performed on the data of the table.
- formatting the data includes exporting the data including by formatting data in the database to a format not native to the database.
- data is exported by selecting data already in the database and writing the selected data to the table of the data export using an INSERT database command operation.
- the process of writing data to the export table utilizes a formatter of 302 to convert the written data to the format not native to the database.
- the destination of the exported data may include a file, a named pipe or to another executable program (e.g., send to a program that is connected to another database or translation tool to load the data elsewhere).
- the export table is used as an output target for parallel MapReduce calculations.
- FIG. 4 is flowchart illustrating an embodiment of a process for receiving a formatter.
- the formatter of FIG. 4 is the formatter discussed with the process of FIG. 2 and/or FIG. 3 .
- the process of FIG. 4 may be implemented on one or more components of database system 102 of FIG. 1 .
- formatter code is received.
- the formatter code can be used by a database system to format data from one format to another format.
- the received formatter code includes a source code that can be complied to at least in part generate a formatter.
- the received formatter code is received as compiled code.
- the formatter code is received from a party external to a database system.
- the formatter code is received from an entity associated a data format that is not natively supported by the database system.
- the formatter code is at least in part generated using an application programming interface (API) provided by the database or a trusted entity of the database (e.g., a provider of the database system).
- API application programming interface
- the entity of the database protects the security of the database that will be utilizing the code by only allowing a third party to provide formatter code generated using the provided API.
- the received formatter code is validated before the formatter code is associated with a database. For example, the formatter code is checked for security, correctness, compatibility and/or efficiency.
- the received formatter code is associated with a database.
- associating the formatter code includes compiling formatter code as one or more programming functions of the database.
- the formatter code has been received as one or more functions that have complied.
- the functions may include a function for importing data as well as a different function for exporting data.
- associating the formatter code with the database system includes registering one or more programming functions of the formatter code with a shared library of programming functions of the database system. For example, an instruction is issued to the database to create a programming function that can be used by the database to format data.
- the shared library includes one or more programming functions that can be used to program the database.
- the one or more functions associated with the database in 404 are used to format data in 204 of FIGS. 2 and 304 of FIG. 3 .
- FIG. 5 is a flow chart illustrating an embodiment of a process for formatting data. This process may be implemented on one or more components of database system 102 of FIG. 1 .
- an indication of data to be formatted and transferred using a communication protocol not natively supported by a system of a database is received.
- the data is to be formatted to export/import data to/from the database and the formatting and transferring could take place in either order, as appropriate.
- the process of 502 is included in 202 of FIG. 2 .
- the data is formatted and transferred using the protocol not natively supported by a system of the database.
- transferring the data includes establishing a connection between a system of the database and an external data system (e.g., the connection between database system 102 and external data system 106 of FIG. 1 ).
- the communication over the established data connection is controlled using the protocol not natively supported by the database.
- the protocol not natively supported by the database is supported by the database using a custom protocol code received from a trusted third party entity and/or the entity of the data transfer.
- the process of 504 is included in 204 of FIG. 2 .
- FIG. 6 is a flow chart illustrating an embodiment of a process for importing and exporting data.
- the process of FIG. 6 is included in 204 of FIG. 2 and/or 504 of FIG. 5 . This process may be implemented on one or more components of database system 102 of FIG. 1 .
- a database object that uses a custom protocol is defined.
- the custom protocol is associated with custom code received by a database from an external party (e.g., a third party interested in enabling the database to support the protocol not natively supported by the database).
- the custom protocol is associated with program code that controls establishing a communication connection and transferring data via the connection.
- the custom protocol is a database protocol object that is stored and used by the database.
- a first protocol used to transfer data from a first program to a second program is different from a second protocol used to transfer data from the second system to the first system.
- a single protocol is used for both directions of a communication.
- defining the database object includes defining a special type of database table such as the table described along with FIGS. 3 and/or 4 .
- the table is either file-based (e.g., table is associated with static flat files) or web-based (e.g., table is associated with dynamic web sources).
- defining the table includes specifying a protocol to be used when establishing a communication and communicating with an external data source/destination.
- a custom protocol can be only used by identified users. For example, a permission to use a specific type of custom protocol can be granted to one or more specified users.
- the table created above is named “students” and the data to be imported is located at “ ⁇ host>/file/path/” and can be accessed using the “myprot://” protocol.
- the formatter to be used to format the data to be imported is a custom formatter named “fixedwidth_in”. In other embodiments, a standard formatter that is not a custom formatter may be used.
- the table created above is named “students” and the data is to be exported to location “ ⁇ host>/file/path/” using “myprot://” protocol.
- the formatter to be used to format the data to be exported is a native formatter that supports text formatting native to the database.
- creating the database object utilizing the custom protocol includes utilizing a plurality of database segments (such as the segment hosts 112 , 114 and 116 of FIG. 1 ) to read and/or write in parallel across multiple hosts/streams of data using the custom protocol.
- creating the database object includes receiving an indication of a custom formatter to be used to format data to be exported/imported.
- transferring the data includes establishing a connection with a data source/destination. For example, handshake and authentication of parties of the communication are controlled using the custom protocol.
- the connection may be established with a system, a database, a program or any type of data source/destination.
- transferring the data includes importing data by using a data import programming function of the custom protocol. For example, after a table database object for data import is created, the table is populated with at least a portion of the data transferred from an external data source using the import function of the custom protocol. After the table for import is populated, the table can be queried for data and database operations such as select, join, and sort can be performed on the data of the table.
- transferring the data includes exporting the data by using a data export function of the custom protocol.
- data export function of the custom protocol For example, after a table database object for data export is created, data can be exported by selecting data already in the database and writing data to the data export table using an INSERT database command operation. The process of writing data to the export table utilizes an export function of the custom protocol to transfer the formatted data to an external destination.
- the destination of the exported data may include a file, a named pipe or to another executable program (e.g., send to a program that is connected to another database or translation tool to load the data elsewhere).
- the export table is used as an output target for parallel MapReduce calculations.
- FIG. 7 is a flowchart illustrating an embodiment of a process for processing a custom protocol code. The process of FIG. 7 may be implemented on one or more components of database system 102 of FIG. 1 .
- protocol code is received.
- the protocol code can be used by a database system to establish a connection and transfer data to an external data source/destination.
- the received protocol code includes a source code that can be compiled to at least in part generate a usable custom protocol.
- the received protocol code is received as compiled code.
- the protocol code is received from a party external to a database system. For example, the protocol code is received from an entity associated with a protocol that is not natively supported by the database.
- the protocol code is at least in part generated using an API provided by a trusted entity of the database (e.g., a provider of the database).
- the entity of the database protects the security of the database that will be utilizing the protocol code by only allowing a third party to provide protocol code generated using the provided API.
- the received protocol code is validated before the protocol code is associated with a database. For example, the protocol code is checked for security, correctness, compatibility, and/or efficiency.
- the received protocol code is associated with a database.
- associating the protocol code includes compiling protocol code as one or more program functions.
- the protocol code has been received as one or more functions that have complied.
- the complied functions may include a function for transferring imported data as well as a different function for transferring exported data.
- associating the protocol code with the database system includes associating one or more programming functions of the protocol code with a shared library of program functions of the database system. For example an instruction is issued in the database system to create a programming function that can be used by the database system to transfer data.
- the following example code that can be executed on a Greenplum Database creates two “C” programming language functions, “myread” (i.e., import function of the protocol) and “mywrite” (i.e., export function of the protocol that can be used to define a custom protocol).
- associating the protocol code includes defining a protocol that identifies functions to be used during data communication.
- a protocol named “myprot://” is defined in the Greenplum Database as a protocol that uses the function “myread” when reading data and function “mywrite” when writing data.
- the protocol is labeled as “TRUSTED” to identify that only specified user(s) may utilize the protocol.
- the “TRUSTED” label is optional.
- a protocol not labeled as “TRUSTED” specified that any user may utilize the protocol.
- access to the protocol of the protocol code is granted to one or more users.
- granting the access includes instructing a system of the database to only allow specified user(s) to utilize the protocol (e.g., to protect the security of the system). For example, in the context of the Greenplum Database, access must be granted to a user before the user can use a protocol that has been labeled as “TRUSTED”.
- the following code executed on the Greenplum Database allows a specified user to create a readable external table with the specified custom protocol.
- the following code executed on the Greenplum Database allows a specified user to create a writeable external table with the specified custom protocol.
- the following code executed on the Greenplum Database allows a specified user to create a readable and writable external table with the specified custom protocol.
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/436,419 US8838634B1 (en) | 2012-03-30 | 2012-03-30 | Custom user parallel data import and export |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/436,419 US8838634B1 (en) | 2012-03-30 | 2012-03-30 | Custom user parallel data import and export |
Publications (1)
Publication Number | Publication Date |
---|---|
US8838634B1 true US8838634B1 (en) | 2014-09-16 |
Family
ID=51493517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/436,419 Active 2032-05-02 US8838634B1 (en) | 2012-03-30 | 2012-03-30 | Custom user parallel data import and export |
Country Status (1)
Country | Link |
---|---|
US (1) | US8838634B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249968A1 (en) * | 1999-10-29 | 2004-12-09 | Alok Srivstava | Method and apparatus for integrating data from external sources into a database system |
US20060020783A1 (en) * | 2000-08-30 | 2006-01-26 | Douglas Fisher | Method, system and service for conducting authenticated business transactions |
-
2012
- 2012-03-30 US US13/436,419 patent/US8838634B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249968A1 (en) * | 1999-10-29 | 2004-12-09 | Alok Srivstava | Method and apparatus for integrating data from external sources into a database system |
US20060020783A1 (en) * | 2000-08-30 | 2006-01-26 | Douglas Fisher | Method, system and service for conducting authenticated business transactions |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886429B2 (en) | Persistent metadata catalog | |
CN102693302B (en) | Quick file comparison method, system and client side | |
US8015222B2 (en) | Virtual repository management | |
CN107967316A (en) | A kind of method of data synchronization, equipment and computer-readable recording medium | |
US20180060065A1 (en) | Advanced packaging techniques for improving work flows | |
US20140195514A1 (en) | Unified interface for querying data in legacy databases and current databases | |
WO2017053892A1 (en) | Method and apparatus for transferring data between databases | |
US20130159365A1 (en) | Using Distributed Source Control in a Centralized Source Control Environment | |
CN104298690A (en) | Method and device for building index structure for relational database table and method and device for conducting inquiring | |
CN101901265B (en) | Objectification management system of virtual test data | |
CN104517181B (en) | Enterprise content management system and method for nuclear power station | |
CN110019111B (en) | Data processing method, data processing device, storage medium and processor | |
CN109902114B (en) | ES cluster data multiplexing method, system, computer device and storage medium | |
CN102981882B (en) | Analytic method and device | |
CN103595799A (en) | Method for achieving distributed shared data bank | |
CN104239508A (en) | Data query method and data query device | |
CN105843899A (en) | Automatic big-data analysis method and system capable of simplifying programming | |
US9619518B2 (en) | Tracking tuples to reduce redundancy in a graph | |
CN102760164B (en) | A kind of method of exchanges data between relational database management system and XML data base management system | |
CN103501341A (en) | Method and device for establishing Web service | |
US11620311B1 (en) | Transformation of directed graph into relational data | |
Lushbough et al. | Life science data analysis workflow development using the bioextract server leveraging the iPlant collaborative cyberinfrastructure | |
US8838634B1 (en) | Custom user parallel data import and export | |
CN104572638A (en) | Data reading and writing method and device | |
JP7291759B2 (en) | Ethereum virtual machine transaction processing method, apparatus, equipment, program and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WELTON, CALEB E.;GOLDSHUV, ALON;REEL/FRAME:028251/0748 Effective date: 20120425 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 |
|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EMC CORPORATION;REEL/FRAME:040203/0001 Effective date: 20160906 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., T Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001 Effective date: 20200409 |
|
AS | Assignment |
Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MOZY, INC., WASHINGTON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MAGINATICS LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: FORCE10 NETWORKS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SYSTEMS CORPORATION, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL MARKETING L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL INTERNATIONAL, L.L.C., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: CREDANT TECHNOLOGIES, INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: AVENTAIL LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 |