** First published by IBM developerWorks at http://www.ibm.com/developerWorks. All rights retained by IBM and the author.
A lot of what grid is about inevitably involves data, information and the intelligent processing of both across a distributed infrastructure. But often, data takes a back seat to grids focused on computation, at least from a publicity perspective.
Why this is? Often, those familiar with grid computing cite popular grid initiatives, such as Berkeley's SETI@Home or IBM's World Community Grid. When the World Community Grid was launched near the end of 2004, ComputerWorld wrote that IBM and leading healthcare officials had “launched a global grid computing project aimed at harnessing unused global computing power to help solve a variety of health issues and other scientific problems.”
But it's the data that matters. If and when intelligent life is uncovered by SETI, few people will focus on the millions of computational resources that were used: “Wow, we discovered life on Planet X, but, more importantly, we used 13 trillion MIPS from across the planet Earth to discover it!”
In this article, I'll highlight technologies, approaches and overall trends being used in the industry to intelligent manage data in distributed grid environments. There are a variety of technologies and approaches organizations can employ; the number of methods can lead to confusion when you try to determine which ones are best to use in which situations and environments. I'll present a survey of some technologies and approaches grid users employ when tackling the integration of data with computation and dynamic resource management, and I'll uncover some interesting trends in the marketplace. This article is not a comprehensive treatment of this subject, but rather a broad overview, designed to provide a firm knowledge foundation for grid-based data management.
In many respects, intelligently managing data access, movement and transformation is the key to successful grid deployments. This is especially true as grids grow, new applications and users are added, and the scale increases. Data becomes more and more of a concern. In some industries, such as electronics, the sheer volume of data is so large that data architecture, flow and network design are the primary grid design considerations.
So, you think you have data-sharing problems?
There's been a lot written about the LHC (the large hadron collider coming online in 2007 at CERN in Switzerland) and the associated applications (really experiments) and the LHC computing grid. But the key point is that the LHC computing grid was built, first and foremost, from a data-sharing and data-access perspective. Everything revolves around getting an unfathomable amount of data from the collider out onto the grid and to scientists worldwide.
The architecture of the grid uses a layered approach to stage data across multiple tiers of sites across the world. And it's a good thing it does, considering the scale:
- Currently, there is something on the order of 13,000 processors on the grid.
- In 2007, as the grid comes online, it is expected to grow to 130,000 processors (and very likely beyond that number).
- The collider will generate 1.5GB of data per second for 10 years.
In case you weren't counting, by my estimates, that's 675 million CDs or 807 billion novels — enough books to stretch 13 round trips between the Earth and the Moon!
Emphasizing the LHC here is critical because this system highlights the importance of architecture, and why it is imperative to think through and understand data issues at the very earliest stages of grid design.
There are myriad core data technologies that can be used in distributed grid environments. By themselves, they don't solve data-access and data-sharing problems in grids, but a well thought-out architecture does that. Effectively leveraging data technologies at the right place in the architecture is essential to streamlined grid operations. These data technologies are sort of like tools; you have to know when to pull the right one out of the toolbox.
Data technologies applicable to grid environments consist of:
- Replication.
- Caching.
- Efficient data movement.
- Data transformation.
- Global naming.
Let's look at a few in a bit more detail.
While I didn't explicitly call out distributed file systems as an applicable technology, they offer many of the core technologies in an integrated package. Using distributed file systems as a core technology for distributed computing and grids makes a lot of sense because users needn't worry about implementing and integrating a lot of the subtechnologies.
It's really convenient when a distributed file system hides the underlying technologies from users. They provide a level of abstraction and convenience that is appealing in complicated environments like distributed grids with many applications and data sources.
Many sophisticated grid environments are built on distributed file system backbones. For example, IBM's systems and technology development groups rely on a combination of General Parallel File System (GPFS) and Network File System (NFS), as well as Andrew File System (AFS), to support some really complicated microprocessor and system designs with large data requirements. The underlying file system technology is utilized to support caching of data over remote networks, as well as to provide a common way of naming or referring to files. The TeraGrid, a grid connecting the U.S. supercomputing centers, employs a variety of file systems (including GPFS-WAN for parallel file access) to support experiments and simulations.
There are a lot of file systems out there. Some are meant for clustering (to share information among a cluster of nodes), others are designed as full distributed file systems with lots of advanced features.
NFS, though, has always been a “standard” distributed file system, crafted in some ways with the purpose to level the playing field across many physical file systems. This is an important consideration in larger enterprises in which many types of physical file systems (those that run on a machine or set of machines) are likely to be used. With Version 4 of the venerable protocol, provisions were made to support more sophisticated data performance and security technologies. This was a problem in the past with previous versions, but with Version 4, support for a feature called client delegation allows for implementers to provide caching functionality. As NFS V4 continues to mature, it will be a key technology in the distributed filesystem space for grids.
Distributed memory, or application caching, is an interesting technology that has gained in popularity with grids. Some people even refer to application caching as a grid. Products in this category can significantly improve the throughput to underlying storage and reduce overall database transaction bottlenecks.
Products such as IBM WebSphere ObjectGrid, GigaSpaces' Enterprise Application Grid and Tangosol Coherence are examples of distributed memory caches. They are software-based caching solutions, as opposed to appliance-based caching solutions (we'll talk more about these later). It's easier to scale these types of solutions across the enterprise because you don't need to buy additional appliances. They can plug easily into distributed grid environments since they essentially provide a proxy (and a well-performing one at that!) to the underlying remote data. Most of them work within a fairly heterogeneous environment of application servers, databases and storage.
The downside to using this technology is that the cache needs to be managed and administered because it's a separate entity that is another component in the distributed computing environment.
Furthermore, a key consideration in using this technology is that the access interface should be essentially the same as it would be to the underlying data store. You want it to be transparent, whether an application or user is accessing the actual data or a cached version.
Data transformation may not seem like a core technology, but it is vitally important to providing true virtualization of underlying data sources.
Data transformation is the process of aligning and consolidating information from multiple systems and enriching the information to make it useful for new applications. For grids, it is especially important because of the potentially wide variety of data sources across a typical grid and because applications or users may request data to be provided in a wide variety of formats.
To truly virtualize information across a grid, it is likely that data transformation is going to have to occur. In fact, in typical extract-transformation-load (ETL) projects, data transformation consumes 45 percent of the project effort.
Think about that. It's easy to imagine, when you consider the effort any typical application spends manipulating and massaging data from one format to another. Products like WebSphere DataStage and DataStage Tx are designed to automate and manage the data-transformation effort. They are well worth the investment.
Now let's look at some approaches to consider, including:
- Regional data centers.
- Partitioning data.
- Wide area file systems.
One practical approach that helps mitigate access to distributed information is to co-locate data and computational at a physical location. Large users of grid computing, such as pharmaceutical and electronics companies, support multiple regional data centers or grids worldwide.
The grids at these data centers might have thousands of processors and typically a highly optimized storage area network infrastructure supporting fast access to the underlying physical data. Users then use a thin-client scheme to submit work and receive results.
In a sense, these companies are avoiding distributed data-access concerns entirely. Utilizing technologies such as caching and replication is less of a concern. The downside, however, is that they don't truly have a virtualized worldwide grid (in that users have to know where they are going for resources), but it is a very effective approach to minimizing data-access and transfer issues.
Partitioning data according to some scheme or layout is an architectural approach to improving overall system throughput and performance that has been used for a long time and is applicable to distributed grids.
Usually, the partitioning layout creates mutually exclusive sets of data that certain resources in the grid infrastructure are dedicated to. Requests for particular information are then routed to the appropriate resources. This has the advantage that optimizations can take place between partitioned data and their associated resources resulting in significant data throughput improvements.
The downside of this approach is that it requires knowledge of the structure of data in order to effectively partition it. You pay the price of reduced flexibility with significant gains in data access and throughput.
Wide area file systems (WAFS) comprise another class of technologies that have recently seen increased momentum in the industry. Cisco Systems Inc., Brocade Communications Systems Inc., Tacit Networks Inc. and Riverbed Technology are companies with products in this space.
WAFS products are designed to optimize file access across a WAN from a data center to remote locations. Users install WAFS appliances at the central data center and at each of the remote locations. Thus, across the WAN, access to files in the data center is managed by WAFS services.
The way wide area file systems work is by cutting down on the nonessential traffic (the chattiness) between the data center and remote locations; they also employ intelligent caching. The downside of these appliances is that they are a hardware solution, so for each remote location, a new appliance is required. Also, they only work for files, but because a majority of data in a grid consists in a file format, this is somewhat less of a concern. Used appropriately, WAFS products can improve file data access in distributed grid environments.
Let's take a look at some emerging trends that promise to address some of the data-access and performance challenges in grid environments.
An emerging trend that might make sense for large, global users of grids across multiple locations is to look at purchasing dedicated network fiber, rather than contract with a service provider for networking services. With the bandwidth and capacity profile of optical fiber, this approach to addressing grid data challenges might seem akin to taking the sledgehammer out. But if you look at your network strategically and with the decreasing costs of optical fiber, it might make sense to own this important asset. Also, because companies are no longer reliant on network service providers, new network services can be provisioned in hours and days, not weeks and months.
For many users, the return on investment is worthwhile. “I think it's a strategy that companies need to look at,” said George Surdu, director of infrastructure at Ford Motor Co. “They need to work through the business case themselves. But I don't believe we are the first ones to think of doing this, and I'm sure we won't be the last.” The downside here comes with the management costs associated with operating your own network.
Workload schedulers, an important component of grids, traditionally have not taken into account data location when placing jobs for execution across distributed grids. Certainly executing work on resources that offer the best data-access and performance characteristics makes sense. So an emerging trend we are starting to see is schedulers taking into account the location of required data. This requires some way of associating required data (either input or output) and its location with a given executable or job.
A trend championed by Larry Smarr at UC San Diego is the concept of network-aware applications. “[The] network-aware application is a promising new concept [in] which applications are aware of network conditions and, thus, can adapt to the varying environment to achieve acceptable and predictable performance.”
As the characteristics of networks change in a distributed grid, placing network-aware intelligence in applications makes sense. The issue here is the programming model and the expectation that a broad set of application developers could easily integrate network intelligence in their applications.
In this article, we've presented a survey of technologies, approaches, and trends applicable to improving data-access performance and throughput in grid environments. It is essential to think how to apply these in the earliest stages of grid conception since data issues can quickly become a significant inhibitor to realizing success with grid computing. By doing so, data movement, access and throughput concerns can be mitigated.