Some of my projects



The following is a list of projects completed by me, as on 1st Jan 2002.   This list is bound to expand in size, so keep checking it often.

Adaptive Anonymity in NAS systems:
        Security in network-attached storage systems has so far only looked at integrity and privacy of data. In this work, done as part of my research, we looked at providing better security to the system by hiding information about the system itself through anonymous protocols. Examples of such information include, "which disks store valuable data", "where backup data is headed", "which system is the  file manager", etc. Providing anonymity with minimal impact on performance being our primary goal, we designed anonymity schemes that provide good performance by dynamically adapting various parameters of the system to client request traffic.



Eliminating False Synchrony in NASD Filesystems:
        Synchronous operations in  filesystems often result in sub-optimal performance. In many cases, however, applications are forced to incur synchrony, not because of their semantics, but because of limitations in the storage interface. This project, done in a team of two, looked at embellishing the storage interface to remove such false synchrony. We designed an intelligent disk scheduler and a scripting interface to the disk, which eliminated false synchrony at various points in a NASD filesystem.  We found that such a scripting interface to network attached storage can greatly reduce the number of network round-trips incurred by common filesystem operations, thereby improving application performance over wide-area filesystems.


The WiND filesystem (WFS):
        This work involved the design and implementation of a new distributed filesystem WFS, over network attached disks.   The fileystem sought to achieve high-throughput I/O by transparently striping and replicating data across multiple "intelligent" storage devices spread across the network.  WFS also achieved high scalability by allowing direct communication between the client and disks.   (This project was developed independently as part of my Master's research )



Applying Database Ideas to filesystems:  Crash Recovery and Concurrency Control in the WiND filesystem:
        In this project, we designed efficient crash recovery and concurrency control protocols in the context of embedding fault-tolerance into the WiND filesystem built for a shared array of network attached disks.  This facilitated correct implementation of RAID mechanisms over a set of network attached disks,  inspite of multiple clients performing the role of a "RAID controller" and updating stripes concurrently.  (This project was developed in a team of three as part of Advanced Databases course)

Paper available here


Flexible security for the WiND filesystem:
        This project addressed the issue of security in the fully decentralized WFS architecture with clients allowed to directly access the disks over an insecure network.  The lack of a centralized access control entity like the file server in traditional filesystems makes this interesting.  The constraint of low CPU capability at the disks was accommodated, and a security model with minimal impact on throughput was developed.  We also provided support for multiple levels of security on a per-file basis, with flexibility to dynamically change a file's security level, thereby enabling users to decide the optimal compromise between performance and security. (This project was developed in a team of two as part of the 'Topics in Security' course)

Paper available here


Block Asynchronous I/O : A kernel infrastructure for user-level filesystems :
        This project was aimed at developing the best possible low-interface to disks.   A protected direct interface to the disk was exported to the user level, thereby facilitating construction of tailor-made user-level filesystems,  leading to dramatic increase in application performance.    This would be highly beneficial to demanding applications like databases and web-servers.   (This project was developed in a team of two as a part of the Advanced Operating Systems course and was selected as one of the two best papers)

Paper Available as ps or pdf

Exploring Trace Cache Performance : An argument for multiple fetch   :
         In this project, we investigated aspects of trace cache performance with an objective of finding out if a multiple fetch mechanism can perform on par with trace cache, but with lot less hardware.    The results we obtained constituted strong arguments in favor of a multiple fetch technique. (This project was done in a team of three as part of the Advanced Computer Architecture course)

Paper Available as ps or pdf
 

A single-user Database Management System  :
        We developed in this project,  various components of a single-user DBMS called Minibase,   including the buffer manager, file manager,  a B+ tree indexing module and an external sorting module.  (This project was done in a team of two as part of 'Database Management Systems' course)

Selective projects in my undergraduation :


Kernel-level implementation of an efficient and flexible architecture for distributed objects :
        In this project, we implemented a distributed object architecture (a variant of the model "Globe" proposed by Tanenbaum et al),  which facilitates implementation of replication, consistency and security policies on a per-object basis, customized to the specific requirements of the application encapsulated by the object.   This was implemented inside the Linux kernel . (This project was done in a team of three as our undergraduate final year project)

Self-determination of optimal granularity of distributed objects :
         This project, done in a team of three, involved implementing an adaptive mechanism whereby the granularity of a distributed object can be determined optimally by the object itself, and continuously updated in tune with the changing access patterns on the object.   The results were published in HiPC 99.

An adaptive routing algorithm for an Intranet  :
         This project, done in a team of two, involved the design and implementation of an adaptive routing algorithm for an intranet.  This was done as part of Computer Networks course in my undergraduation.

A graphical web browser for shell internet accounts :
         This project involved the design and implementation of a graphical web browser that would facilitate full web access through a shell account ( a SLIP connection ). (This was done as a class project in my BE, and I led one-third of the class in the development of the network sub-section of the project)

Home     Personal       Research      Projects    Courses      Resume     Quotes       Contact