ShapePublications

As an organisation we challenge ourselves by engaging in research activities to push the boundaries of what is possible today.
Our research that has been published or can be published publicly is listed below.

Shape Small The Design and Implementation of FusionDB
February 8, 2019

FusionDB is a new multi-model database system which was designed for the demands of the current Big Data age. FusionDB has a strong XML heritage, indeed one of its models is that of a Native XML store.
Whilst at the time of writing there are several Open Source and at least one commercial Native XML Database system available, we believe that FusionDB offers some unique properties and its multi-model foundation for storing heterogeneous types of data opens up new possibilities for cross model queries.
This paper discusses FusionDB's raison d'être, issues that we had to overcome, and details its high-level design and architecture.

Download our Paper (PDF)
Watch a Video of the talk given at XML Prague 2019

Shape Small Task Abstraction for XPath Derived Languages
February 8, 2019

XPDLs (XPath Derived Languages) such as XQuery and xSLT have been pushed beyond the envisaged scope of their designers. Perversions such as processing Binary Streams, File System Navigation, and Asynchronous Browser DOM Mutation have all been witnessed.
Many of these novel applications of XPDLs intentionally incorporate non-sequential and/or concurrent evaluation and embrace side-effects to achieve their purpose.
To arrive at a solution for safely managing side effects and concurrent execution, this paper first surveys both the available XPDL vendor extensions and approaches offered in non-XPDLs, and then describes EXPath Tasks, a novel solution derived for the safe evaluation of side effects in XPDLs which respects both sequential and concurrent execution.

Download our Paper (PDF)
Watch a Video of the talk given at XML Prague 2019

Shape Small Locking and Cache Improvements for eXist-db
February 5, 2018

Since late February 2017 we (Evolved Binary Ltd) have been working on some low-level architectural changes in eXist-db to improve concurrency, scalability, and transaction isolation. In particular we have been focused on the lock implementation used in eXist-db and how those locks are applied (i.e., the locking policy). Much of this work was inspired by the requirements for FusionDB (previously code-named "Granite").

Download our Technical Report (PDF)
GitHub of our Locking and Cache Improvements
Download eXist-db 3.7.0 binaries with our added Locking and Cache improvements: Installer (JAR) / Mac DMG / WAR

Shape Small Asymmetrical Locking For eXist-db
February 5, 2018

After providing some background information on the problem domain, we examine various locking patterns, before justifying an asymmetrical approach. Finally we examine code patterns for managing asymmetrical locking and propose a design pattern for asymmetrical locking between Collection and persistent Document objects in eXist-db.

Download our Technical Report (PDF)

Shape Small Implementation of Portable EXPath Extension Functions
June 7, 2015

Various XPDLs (XPath Derived Languages) offer many high-level abstractions which should enable us to write portable code for standards compliant processors. Unfortunately the reality is that even moderately complex applications often need to call additional functions which are non-standard and typically implementation provided. These implementation provided extension functions reduce both the portability and applicability of code written using standard XPDLs. This paper examines the relevant existing body of work and proposes a novel approach to the implementation of portable extension functions for XPDLs.

Download our Paper (PDF)
Watch a Video of the talk given at XML London 2015
GitHub of our XPDL Extension Library code
GitHub of our XPDL Extensions Interface for eXist-db