Download Text - Barrelfish
Transcript
8. Conclusion Chips replacement. 8.1 Future Work While the current state of work is already usable and a useful contribution to Barrelfish, there are still areas for further improvements. Capabilities are an important data type used in various places in Barrelfish. Right now, we have no solution to store capability references in Octopus. It would have been nice to use iterators instead of the current get_names call. This was not possible due to limitations in ECLi PSe . For performance, there is still a lot of room for improvements by applying ideas from traditional key– value stores. However, as long as we rely on the SKB as the underlying implementation, there will always be a tradeoff between expressiveness and performance. We currently have no access control for records. This makes it hard to have a reliable system as every process can modify or delete records. A possible way would be to use a designated record attribute to encode access restrictions or use capabilities to restrict record manipulations. To react to program failures, transient records (i.e., records that are removed automatically once their creator does no longer exist), would be useful and allow to build more reliable distributed services for Barrelfish. We were not able to implement this yet as the current process management does not allow to monitor dispatchers. Octopus also opens a lot of possibilities for additions and new functionality in Barrelfish: The ACPI, PCI as well as USB management code can be adapted for hot plugging support. Kaluga should already be prepared to catch these events and act appropriately. Device drivers can be modified to react to changes in hardware by watching records. Octopus can work in a dynamic environment: Programs can generate records and queries at runtime. It may be worth it to explore how this can be exploited to reconfigure Barrelfish at runtime instead of having to reboot. Distributed services in Barrelfish can make use of Octopus to solve problems such as leader election or configuration management. The Prolog language would be a good fit to extend the current implementation and write algorithms that reason about the state of records — for example, to detect deadlocks by analyzing lock records at run time. 54