To design and implement functional language extensions to facilitate relational database query and processing.
To explore techniques for the parallelisation of databases and the manipulation of such databases from within the functional framework.
To develop unified program transformations for optimising database accesses and processing and for migrating between process- and data-parallelism.
We have designed and implemented simple extensions to Haskell which enable an INGRES database to be queried via functional list comprehensions
We have successfully formulated transaction processing as a simple functional program operating on a stream of transaction requests and a tree-structured database
We have developed algebraic transformations which produce optimistic parallel implementations of transaction processing examples in which unnecessary synchronisation is eliminated, thereby allowing concurrent processing of transactions
A detailed simulation study has been undertaken to explore the behaviour of the functional transaction processor on a shared-memory parallel computer
We have undertaken a study of scheduling policies in relation to communication latency and have explored mechanisms to maintain the coherence of a shared database
We have developed program transformations which enables a database program to update data structures in-place
New parallelising program transformations have been developed for dynamically partitioning a parallel database program into units of roughly equal complexity
We are currently exploring multiple indices in parallel transaction processing and are developing an experimental parallel database engine for the Fujitsu AP1000.
Thus far we have produced five papers under the auspices of COMPAQT.