Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

  • RAMCloud is built on the notion of distribution:there will be many storage servers, and there will also be application servers. Not all of the functionality of the system will run on the storage servers.
  • Wherever it can be done efficiently, we should try to offload functionality from the storage servers to the client machines: this will increase the scalability of the storage system.
  • The RAMCloud system software can include a component that runs on the client machines, so we can choose whether to implement pieces of functionality on the client or on the servers.
  • For example, consider an operation that collects data and sorts it:
    • Of the data will almost certainly come from multiple storage servers.
    • It would probably make sense to do the final merge on the client machine, not on a storage server: the RAMCloud client software identifies the desired data, fetches pieces from various servers, and merges them together into the final sorted result.
    • It might not even make sense for the storage servers to do the initial sorts of the data fragments: just collect raw data and return it for sorting on the client machine.
  • What is the right boundary between RAMCloud client software and server software?
  • Things that absolutely must be done on servers:
    • Anything that requires trust, such as access control. Particularly in a multi-tenant environment, the client can't be trusted.
    • Locking (if it potentially impacts other client machines).
  • No labels