PROCESSING STRUCTURED AND UNSTRUCTURED DATA USING OFFLOAD PROCESSORS
Methods of processing structured data, unstructured data, or both are disclosed. Processing structured data can include providing an in-memory database with at least one of a plurality of modules connected to a memory bus of a server; executing database functions with at least one processor on the module; and directing database queries to the at least one module with a CPU of the server. Processing unstructured data can include executing data processing tasks with a CPU connected to a memory bus; and directing parallel computation tasks to a plurality of modules connected to the memory bus.
1 . A method of processing structured data, comprising:
providing an in-memory database with at least one of a plurality of modules connected to a memory bus in a first server;
executing database functions with at least one processor on the module; and
connecting a central processing unit (CPU) in the first server to the modules by the memory bus, and directing database queries to the at least one module.
2 . The method of processing structured data of claim 1 , further including communicating between modules without accessing any CPU of the first server.
3 . The method of processing structured data of claim 1 , further including:
the modules are mounted on different servers in a same rack; and
communicating between modules of different racks with a top of the rack switch.
4 . The method of processing structured data of claim 1 , further including executing a memory mapping operation to transfer a database query from the CPU to at least one module in the form of a memory read or write.
5 . The method of processing structured data claim 1 , wherein providing the in-memory database includes inserting the modules into dual-in-line-memory-module (DIMM) sockets.
6 . A method of processing unstructured data, comprising the steps of:
providing a plurality of modules connected to a memory bus that each include at least one processor;
connecting a central processing unit (CPU) to the modules by the memory bus;
executing data processing tasks with the CPU; and
directing parallel computation tasks to a plurality of the modules.
7 . The method of processing unstructured data of claim 6 , further including:
executing a Map/Reduce algorithm, including collecting data parsed with a plurality of the modules, and storing results of a Map step in a main memory
8 . The method of processing unstructured data of claim 6 , further including defining a massively parallel input/output (I/O) mid-plane with a plurality of the modules.
9 . The method of processing unstructured data of claim 6 , further including:
the modules are mounted on different servers in a same rack;
processing a Map/Reduce algorithm with multiples of the servers; and
exchanging intermediate (key, value) pairs across the multiple servers through switching by the modules.
10 . The method of processing unstructured data of claim 6 , wherein providing the plurality of modules connected to a memory bus includes inserting the modules into dual-in-line-memory-module (DIMM) sockets.