dhiren's blog

Virtual file system

Virtual File System

Introduction

The virtual file system resides on an existing file system. Applications would use the vfs if they require certain files to be “inaccessible” to the user, but accessible to the application. It does this by storing all files within a single data file, and managing the files with a single index file. Multiple index/data pairs can be referenced by the same application, allowing it to store different files in different vfs's. This also allows files to be compressed and/or encrypted in the vfs, even if the underlying file system does not support these features. In addition, applications can define and query arbitrary application-specific attributes of any file in the vfs.

Basic design of the standalone proxy server

Standalone proxy server

Introduction

The standalone proxy server is being designed and built as a precursor to the distributed proxy server. The purpose of building a standalone server first, is to ensure that many of the components that will be needed for the distributed server can be designed, implemented and tested, without the complications that the distributed server will introduce. In this way, the standard protocols can be implemented and verified to be correct, and then imported into the design of the distributed server.

The standalone proxy server is very simple in design, especially since there are established protocols in place. It has a listener socket, which waits for clients to connect to it on a specified port. The server then authenticates the client. If the authentication is successful, the server then waits for the client to send a request to the server to connect to a remote server on its behalf. It also maintains a cache, and stores all cacheable content locally on the proxy server. When a client requests content that is cached, the server will check that the cached copy is still valid, and if it is, it returns the cached content instead of fetching it from the remote server. If the cached content has expired, it is replaced by fresh content from the remote server, and this is then returned to the client.

Draft masters proposal

A problem facing internet users worldwide is that of bandwidth availability. Bandwidth costs money – the more one needs, the more it costs. Local bandwidth, which connects systems within the same country, is generally very cheap, and therefore it is possible to obtain high bandwidth local connections at fairly low prices. However, international bandwidth is very costly, due to the fact that telecoms companies do not have exclusive control over international links, and do not have as much freedom in terms of upgrading these links to provide more bandwidth.