SOSP 2007 Notes
All papers and the program can be found here: http://www.sosp2007.org/program.html
Listed here are my notes of the talks I found interesting:
Day 1
MashupOS - Microsoft Research
AjaxScope - Microsoft Research
Automatic Partitioning (Swift) - Cornell (Best Paper Award)
TxLinux - UTAustin
MUVI - UIUC, MIT
Day 2
iComment - UIUC
Sinfonia - HP Labs (Best Paper Award)
Dynamo - Amazon
Integrating Concurrency Control and Energy Management in Device Drivers - Stanford
Day 3
DejaView - Columbia University
I/O Shepherding - Wisconsin Madison
Generalized File System Dependencies - UCLA
Listed here are my notes of the talks I found interesting:
Day 1
MashupOS - Microsoft Research
- Inline modules in HTML currently exhibit all-or-nothing behavior. They can either run with no interaction with the other components of the page (iframe) or run with the same privilege as that of the page (script).
- Introduce
tags for allowing integration of unauthorized components from third-parties. This allows aandboxing external scripts running within a browser. Used for multiple-principle sites pooling in third-party principles and integarting as one.
AjaxScope - Microsoft Research
For examining ajax execution remotely. Uses a ajax proxy between the server and the clients to insert the instrumentation to debug, test and optimize the ajax code. Injects javascript within the applications on the fly, to capture logs. Logs are sent back for inspection. No need to modify the client side code or browser.
Automatic Partitioning (Swift) - Cornell (Best Paper Award)
Javascript-like programming language for auto-splitting client and server side code. Compiler decides which code should run where (client or server) based on security minimizing messages flow. Handles security and integrity using annotations.
TxLinux - UTAustin
Transactional memory to be reality in Sun's new "Rock" processor. Locks are difficult to implement and use in the code. Makes code complex. Initial implementation to use transactions in Linux kernel. Not-so-easy to do due to legacy code and transactional-unfriendly code, especially involving I/O. Implemented co-operative transactions, which dynamically choose between spinlocks and transactions depending upon conflicts and I/Os. Easy to implement than complete lock to transaction conversion. Transactions are made scheduling aware to eliminate priority inversion completely.
MUVI - UIUC, MIT
Variables are corelated, they relate to one or more variables. Idea is to leverage the relation of variables statically and identify possible bugs. Corelations are inferred by variable placement and distance between the usage of the variables. These corelations and the frequency of variables occurring in groups is calculated, which is used to detect if the developer has forgot to update or initialize a variable. Found real bugs in Mozilla.
Day 2
iComment - UIUC
Comments in the code could get stale or incorrect over time. They are often used to specify assumptions made by the piece of the code. Idea is to leverage the developer's assumptions for verifying the correctness of the program. Uses NLP, statistics and data-mining to derive a set of frequently-used words for detailing certain things, like e.g. that a function should be called only with the locks held. Uses the decision tree to verify if other parts of the code ammend to the comments. Notifies for a possible bug in the code or invalid comments. No need to retrain or remake the decision tree across softwares since developers often use common words to siginify things. But can remake for less false-positives.
Sinfonia - HP Labs (Best Paper Award)
Every distributed systems involves a complex message-passing protocol taking into account failures and concurrency issues. Idea is to have a framework which will deal with message passing and provide availability and concurrency guarantees. Sinfonia provides minitransactions as a primitive for building a data-centric message passing systems like cluster file systems. It takes care of load-balancing, fault-tolerence, coherency and scalability.
Dynamo - Amazon
Amazon needs key-value storage solutions, it built it for themselves with 99.9% availability. It did not detail about how it measured 99.9% availability, but it uses distributed hash-tables with consistent hashing and versioning.
Integrating Concurrency Control and Energy Management in Device Drivers - Stanford
A solution of efficient energy use in sensor networks. Implemented in TinyOS. Uses a power manager which drivers talk to for device-specific operations. The power manager handles the powering-off and powering-on of the device depending upon the requests. Amortizes the cost of powering-on and powering-off by trying to do it less frequently. Might as well be used for mobiles OSs and even generic OSs.
Day 3
DejaView - Columbia University
Personal desktop experience recorder - fast and transaparent Virtual display driver to record the display on disk. Uses accessibility features of the OS and applications to record the keys and clicks, which also provide meta info about the text (application, menu text, focus) File system snapshotting for recording fs state. Allows browsing, replaying and restoring application states. Does not handle network connections.
I/O Shepherding - Wisconsin Madison
File systems are not flexible enough to mould to differnt deployments (servers, desktop). Different reliability policies are helpful in different deployments. I/O shepherd allows specifying reliabity policies by the file system developers and takes care of enforcing those. All the I/O goes through the shepherd, it can do more I/O or modify the I/O as per the policies set for that I/O. Allows specifying fault-detection and recovery policies.
Generalized File System Dependencies - UCLA
Writing individual policies, like journaling and soft-updates, for individual file systems is difficult and cumbersome. Idea is to be able to write such policies in a fs-agnostic way. Proposal is to handle each change going to the disk as patches. Each patch is a change going to a block of the disk. Patches are linked together as per the enforced dependencies (certain writes may be needed to happen before some other write). Policies then are implemented only dealing with patches. Patches are merged and rendered unimportant when possible. Allows easily write the policies and features and which can be applicable of any file system.