AvoidingNetwork Latency through Mobile Agents
According to the Oxford English Dictionary, computer latency is defined as the "delay before a transfer of data begins following an instruction for its transfer, esp. to or from a rotating storage device," such as a disk.
While CPU performance, memory capacity, and network bandwidth have been improving, latency has not, which means that it is becoming the determining factor in distributed systems performance. To avoid this problem, a research group at UCSD led by Computer Science and Engineering professor Bennet Yee, focuses on mobile agents to distribute computations to available resources, be they CPUs, memory, disk, and so forth.
This scenario differs from "traditional" distributed computing in that, for example, code is sent from one host to another where the computation is performed locally without using an open network connection between the two hosts. In distributed computing, the network connection typically remains "live."
|
In this context, Yekaterina Tsipenyuk, a Calit²-supported summer undergraduate research fellow and a member of Yee's group, has been charged with researching and developing resource discovery mechanisms. "I'm trying to figure out ways to identify resources that are available to support computations, then communicate that information to a mobile agent for it to act on," says Tsipenyuk.
On the assumption that mobile agent systems become more widely used, she needed to think about how the entire mechanism will work and how to make the system as scalable as possible. Other relevant questions include:
-
Should there be one storage database containing information about available resources?
-
Should there be a hierarchy of them?
-
Should the travel time between the host looking for resources and the host advertising them be taken into consideration?
Tsipenyuk's design divides the entirety of cyberspace into so-called "service regions" containing several hosts considered "close" in terms of travel time from one to another. Each service region has a database that keeps information about resources in that service region. Agents contact the database and perform queries on the resources they are interested in. Information stored in such a database includes resource type, the server advertising it, travel time from database server to the server advertising the resource, amount of resource available, maximum and minimum amounts of resources that can be allocated to an agent, price, and so forth.
Issues that need to be addressed include how to determine the shortest path to the requested resources, how to balance the load on a particular server advertising a particular resource, and how to distribute agents evenly throughout the network.
Says Tsipenyuk, "I have implemented a data storage mechanism to house the information about resource availability, as well as an interface to this storage. The interface is designed to be compatible with both the data storage I have implemented as well as any other type of data structure used for the same purpose, including a regular database."
She intends to make her implementations object-oriented so that others will be able to understand her design and code to continue the implementation. By the end of the summer, she hopes to write a paper on resource discovery mechanism issues for a peer-reviewed journal.
Related Links