News Column

Patent Issued for System and Method for Executing Map-Reduce Tasks in a Storage Device

September 9, 2014



By a News Reporter-Staff News Editor at Information Technology Newsweekly -- A patent by the inventors Salessi, Nader (Laguna Niguel, CA); Alcantara, Joao (Irvine, CA), filed on August 30, 2013, was published online on August 26, 2014, according to news reporting originating from Alexandria, Virginia, by VerticalNews correspondents.

Patent number 8819335 is assigned to NXGN Data, Inc. (Irvine, CA).

The following quote was obtained by the news editors from the background information supplied by the inventors: "Every day, several quintillion bytes of data may be created around the world. These data come from everywhere: posts to social media sites, digital pictures and videos, purchase transaction records, bank transactions, sensors used to gather data and intelligence, like climate information, cell phone GPS signal, and many others. This type of data and its vast accumulation is often referred to as 'big data.' This vast amount of data eventually is stored and maintained in storage nodes, such as hard disk drives (HDDs), solid-state storage drives (SSDs), or the like, and these may reside on networks or on storage accessible via the Internet, which may be referred to as the 'cloud.' This stored data may also require processing, or be subject to operations, such as during a search, Pattern Mining, Classification, or other processes. Typically, a processing device, such as a central processing unit (CPU), in a server performs operations on the data. The data is read from the storage node, processed by the CPU and the processed data is sent to the source of a request and/or stored back on the storage node. Standard storage nodes generally do not include computational resources to perform such operations on data stored in the storage node.

"Moreover, standard storage node interfaces, such as Serial Advanced Technology Attachment (SATA), Fibre Channel, or Serial Attached SCSI (SAS), do not define commands to trigger the storage node to perform data operations in the storage node. Accordingly, operations are performed outside of the storage node, e.g., in a server CPU. To perform such an operation, a server uses standard read and write commands supported by existing storage node interfaces to move data from and to the storage node. Specifically, the server sends a standard read command to the storage node via a bus. The storage node then sends the stored data over the bus to the server, which typically holds the data in its main memory. The CPU of the server then performs operations on the data to produce a result. Depending on the type of operation, the server provides the result to a requesting source and/or stores the result on the storage node.

"There are several disadvantages associated with this process of reading the data from the storage node, and processing the data within the server, and potentially storing the processed data back on the storage node. Because of these disadvantages, the process of performing data operations on the server is referred to as 'costly' or 'expensive' in terms of device performance and power consumption. Because the server CPU is involved in every step of the process, this process occupies the CPU of the server, consumes power, blocks other user operations that otherwise could have been performed, and requires that the server contain a buffer, or a larger buffer than would otherwise be needed. The buffer is typically the main memory of the CPU, or double data rate (DDR) random access memory. This process also ties up the communication bus between the server and the storage node since data is sent from the storage node to the server and then back to the storage node. In other words, existing processes for searching and analyzing large distributed unstructured databases are time-consuming and use large amounts of resources such as CPU utilization, memory footprint, or energy.

"In summary, typical operations like search, pattern mining, classification, machine learning algorithms and data analysis are, in existing systems, performed on the local server's CPU. Search and processing may be performed over the entire data residing in storage nodes (e.g., solid state drives (SSDs), hard disk drives (HDDs), etc.) within the server. Data needs to be moved from the storage node into the CPU memory where it can then be processed. This is inefficient, e.g., slow, because a single server CPU, which may control a large collection of storage nodes, has relatively little processing power with which to process the large volume of data stored on the collection of storage nodes. Efficiency may also be compromised by one or more data bottlenecks between the server CPU and the storage nodes. Moreover, requiring the server's CPU to do this work makes inefficient use of energy as well, in part because a general-purpose CPU like a server CPU generally is not optimized for large data set processing, and in part because transferring data over a data bus and across the interface to the storage node requires a significant amount of power.

"Big data may be managed and analyzed using the Hadoop.TM. software framework and using the Map-Reduce programming model. The Hadoop.TM. framework may implement Map-Reduce functions to distribute the data query, which may be a Map-Reduce job, into a large number of small fragments of work, referred to herein as tasks, each of which may be performed on one of a large number of compute nodes. In particular, the work may involve map tasks and reduce tasks which may be used to categorize and analyze large amounts of data in distributed systems. As used herein, a compute node is a piece of hardware capable of performing operations, and a storage node is a piece of hardware capable of storing data. Thus, for example, a piece of hardware may be, or contain, both a compute node and a storage node, and, as another example, a compute node may include or contain a storage node.

"Related art Map-Reduce systems for large-scale processing of data in a parallel processing environment include one or more map modules configured to read input data and to apply at least one application-specific map operation to the input data to produce intermediate data values. An intermediate data structure stores the intermediate data values. These systems also include reduce modules, which are configured to retrieve the intermediate data values from the intermediate data structure and to apply at least one user-specified reduce operation to the intermediate data values to provide output data. Preferably, the map and/or reduce tasks are automatically parallelized across multiple compute nodes in the parallel processing environment. The programs or instructions for handling parallelization of the map and reduce tasks are application independent. The input data and the intermediate data values can include key/value pairs and the reduce operation can include combining intermediate data values having the same key. The intermediate data structure can include one or more intermediate data files coupled to each map module for storing intermediate data values. The map and reduce tasks can be executed on different compute nodes. The output data can be written to the local storage node or to another compute node using a distributed file system, for instance, a Hadoop.TM. distributed file system (HDFS).

"Map-Reduce (M-R) is a programming model that allows large amounts of data to be processed on parallel computer platforms using two basic functions: map and reduce. Data is first mapped (for grouping purposes) using the map function and then reduced (aggregated) using the reduce function. For example, records having different attributes such as 'dog' and 'cat' could be mapped, for grouping purposes, to new records (or tuples) where each has attributes of 'animal' instead of 'dog' or 'cat'. Then, by a reduce function, all the 'animal' records (or tuples) could be aggregated. A Map-Reduce model implemented in a parallel processing computer system may enhance the processing of massive quantities of data by a 'divide-and-conquer' strategy that may result from dividing the data into portions and processing it on parallel-processing computer installations.

"Related art hardware systems may include a set of data nodes, which may also be referred to as slave nodes, controlled by a master node which may also be referred to as a job tracker or name node. Within the Hadoop.TM. framework, the master node may use the Map-Reduce process to assign tasks to slave nodes, the slave nodes may complete the tasks, and the master node may then aggregate the results produced by the slave nodes.

"The master node and the slave nodes may be servers, each including a CPU and a storage node. As in the case of other operations, slave node sub job operations executed in a CPU which retrieves data from a storage node and may save results on a storage node are relatively slow and power-inefficient. Thus, there is a need for a system and method, in, e.g., a Hadoop.TM. system, for more efficiently processing data stored on storage nodes."

In addition to the background information obtained for this patent, VerticalNews journalists also obtained the inventors' summary information for this patent: "Aspects of embodiments of the present disclosure are directed toward a system and method of providing enhanced data processing and analysis in a cluster of compute nodes executing Map-Reduce tasks in a Hadoop.TM. framework. Hadoop.TM. framework divides a data query (Map-Reduce job) into a large number of small fragments of work, each of which may be performed on one of a large number of compute nodes. The work may involve a map task and a reduce task which may be used to categorize and analyze large amounts of data in distributed systems. A Hadoop.TM. cluster contains a master node and a plurality of slave nodes. The slave nodes include intelligent solid-state drives capable of executing Map-Reduce tasks. The use of intelligent solid-state drives reduces the need to exchange data with a CPU in a server.

"According to an embodiment of the present invention there is provided an intelligent solid state drive including: a processing unit; and a flash memory; the processing unit configured to be in communication with the flash memory, and including: a hardware engine; and a microcontroller; the solid state drive configured to perform map and reduce tasks.

"In one embodiment, the intelligent solid state drive is configured to run an operating system.

"In one embodiment, the operating system is configured to enable the drive to execute a high-level computer language.

"In one embodiment, the computer language is an object-oriented programming language.

"In one embodiment, the cluster includes a cluster of nodes, the cluster of nodes including: a master node; and a plurality of slave nodes; wherein a slave node of the plurality of slave nodes includes a server including a server central processing unit (CPU) and an intelligent solid state drive.

"In one embodiment, the cluster includes a cluster of nodes, the cluster of nodes including: a master node; and a plurality of slave nodes; wherein a slave node of the plurality of slave nodes is an intelligent solid state drive.

"In one embodiment, the plurality includes a master node and a plurality of slave nodes, a slave node of the plurality of slave nodes including an intelligent solid state drive, the method including: submitting the query to the master node; assigning a plurality of tasks to the plurality of slave nodes, by the master node, the plurality of tasks being configured to execute portions of the query; executing the plurality of tasks, by the plurality of slave nodes; returning the results of the execution of the plurality of tasks, by the plurality of slave nodes, to the master node; and aggregating, by the master node, the results of the execution of the plurality of tasks.

"In one embodiment, the method includes assigning of a task by a first slave node of the plurality of slave nodes to a second slave node of the plurality of slave nodes.

"In one embodiment, a task of the plurality of tasks includes an execution of a map function within a Map-Reduce framework.

"In one embodiment, a task of the plurality of tasks includes an execution of a reduce function within a Map-Reduce framework."

URL and more information on this patent, see: Salessi, Nader; Alcantara, Joao. System and Method for Executing Map-Reduce Tasks in a Storage Device. U.S. Patent Number 8819335, filed August 30, 2013, and published online on August 26, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8819335.PN.&OS=PN/8819335RS=PN/8819335

Keywords for this news article include: Information Technology, Information and Data Architecture, NXGN Data, NXGN Data Inc.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Information Technology Newsweekly


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters