| [Main Page] | [Overview] | [Implementation] | [Project Status] | [Related Work] | [People] |
The technology of storage media is evolving along side with the rest of computer technology. The trend in today's disk technology is to have a device with significant amounts of memory used as cache and enough processing power to support the various protocols and caching technics.
The consept of active disks takes advantage of this fact to suggest that data can be processed on the disk. Active disks have been proposed as a cheap replacement to expencive disks; they communicate with the host processor through the local bus and they are expected to relieve the host processor by acquiring and executing part of the application very close to the data.
A system based on active disks however would require an expensive and complex server architecture to benefit from the existance of many disks. An enhancement is to implement a smart disk that has the ability to attach to local network that requires no modifications to the existing infrastructure. This would result in a serious cost reduce as well as a true distributed processing system.
In the SmAS project we assume that exist autonomous (i.e. network-ready) disks with significant processing capabilities. These SmAS devices could also support an interface for connection to a local bus if desired. SmAS disks reduce the communication overhead of transmitting large volumes of data over a network by executing data-intensive applications at the disk.
Our purpose is to build a running system considering the constraints placed on the application programs to be run on the disk and the necessary operating system support for executing them.
Architecture
In order to provide full functionality and compatibility with existing applications the SmAS disks support all classical file operations (open(), read(), write() etc.).In addition the SmAS disk supports the execution of user code on data allowing the user to implement full support by the disk for his applications.
The application model consists of two parts; one executing at the client's machine and the other at the SmAS disk. The latter is consider to be a filter applied on the data stored on the disk and the code is written in a special-purpose, C-like language. The former communicates with the SmAS server by the means of a C-library which provides the necessary functions and hides the networking issues from the client.
Our C-like language is ensuring code safety and proper memory usage by disabling pointer facilities provided by C and enforcing the use of initiliazation and finalization functions. The filter program is then cross-compiled on the clients machine as a dynamic library ready to be send and used at the disk.
The API provided to the client includes normal file operation functions, adjusted to our needs, plus functions used to apply filters on data and receive the results.
The filters are small portions of code that operate on data and send results to the client. The restrictions that apply to the filters are:
Operating System Support
The above presentation of a SmAS disk should made clear that only basic support is required. This is due to the simplicity of the filter model. An operating system should provide the following to allow the full functionality of the disk to deploy:
The above gives an idea of how minimal a SmAS operating system can be.