arXiv ScienceSearch

arXiv subjects

Alan Dearle

Publications and source records attributed to Alan Dearle.

At least 19 recordsLinked to original sources

Dynamic Query Modification for Binary Locality Sensitive Hashing

Our context of interest is how binary locality sensitive hash (LSH) functions can be used to solve the approximate near neighbour (ANN) problem in hyperspherical spaces, which seeks to find the $k$ closest elements of some dataset $X \subset \mathbb{R}^d$ to some further point $\mathbf{q} \in \mathbb{R}^d$ presented as a query. Binary locality sensitive function families $\mathcal{H}$ are sets of functions each with signature $h: \mathbf{x} \in \mathbb{R}^d \rightarrow \{ 0, 1 \}$. A function is locality sensitive if the output of the function is more likely to be equal (a `hash collision') if two close vectors are used as input than if two far vectors are used. In this paper we introduce dynamic query modification. This procedure changes $\mathbf{q}$ at query time using information acquired during search to approximate the point $\langle \mathbf{c} \rangle$, which is the $\ell_2$-normalised centroid of the $k$-nearest neighbour set of $\mathbf{q}$. By theoretical and experimental analysis we demonstrate $\langle \mathbf{c} \rangle$ has two significant advantages when compared to $\mathbf{q}$. Firstly, we show that the hash function output of $\langle \mathbf{c} \rangle$ is likely to have a higher average collision probability with the $k$-nearest neighbours than the hash output of $\mathbf{q}$. Secondly, in our experiments, we observe no instances of $\langle \mathbf{c} \rangle$ failing to collide with any member of the near-neighbour set; a property which we demonstrate is not true for $\mathbf{q}$. To demonstrate the efficacy of the technique, we define a novel structure MQ-Forest, a modified version of RP-Forest. Both are binary LSH-based ANN mechanisms, but MQ-Forest dynamically estimates $\langle\mathbf{c}\rangle$ during the query process. We show that MQ-Forest reduces both build and query times by up to $40\%$ when measured over several large, high-dimensional benchmark datasets.

cs.CG

Ultra-Quantisation: Efficient Embedding Search via 1.58-bit Encodings

Many modern search domains comprise high-dimensional vectors of floating point numbers derived from neural networks, in the form of embeddings. Typical embeddings range in size from hundreds to thousands of dimensions, making the size of the embeddings, and the speed of comparison, a significant issue. Quantisation is a class of mechanism which replaces the floating point values with a smaller representation, for example a short integer. This gives an approximation of the embedding space in return for a smaller data representation and a faster comparison function. Here we take this idea almost to its extreme: we show how vectors of arbitrary-precision floating point values can be replaced by vectors whose elements are drawn from the set {-1,0,1}. This yields very significant savings in space and metric evaluation cost, while maintaining a strong correlation for similarity measurements. This is achieved by way of a class of convex polytopes which exist in the high-dimensional space. In this article we give an outline description of these objects, and show how they can be used for the basis of such radical quantisation while maintaining a surprising degree of accuracy.

cs.LG

Workflow Partitioning and Deployment on the Cloud using Orchestra

Orchestrating service-oriented workflows is typically based on a design model that routes both data and control through a single point - the centralised workflow engine. This causes scalability problems that include the unnecessary consumption of the network bandwidth, high latency in transmitting data between the services, and performance bottlenecks. These problems are highly prominent when orchestrating workflows that are composed from services dispersed across distant geographical locations. This paper presents a novel workflow partitioning approach, which attempts to improve the scalability of orchestrating large-scale workflows. It permits the workflow computation to be moved towards the services providing the data in order to garner optimal performance results. This is achieved by decomposing the workflow into smaller sub workflows for parallel execution, and determining the most appropriate network locations to which these sub workflows are transmitted and subsequently executed. This paper demonstrates the efficiency of our approach using a set of experimental workflows that are orchestrated over Amazon EC2 and across several geographic network regions.

cs.DC

Minimising virtual machine support for concurrency

Co-operative and pre-emptive scheduling are usually considered to be complementary models of threading. In the case of virtual machines, we show that they can be unified using a single concept, the bounded execution of a thread of control, essentially providing a first-class representation of a computation as it is reduced. Furthermore this technique can be used to surface the thread scheduler of a language into the language itself, allowing programs to provide their own schedulers without any additional support in the virtual machine, and allowing the same virtual machine to support different thread models simultaneously and without re-compilation.

cs.PL

An Architecture for Decentralised Orchestration of Web Service Workflows

Service-oriented workflows are typically executed using a centralised orchestration approach that presents significant scalability challenges. These challenges include the consumption of network bandwidth, degradation of performance, and single-points of failure. We provide a decentralised orchestration architecture that attempts to address these challenges. Our architecture adopts a design model that permits the computation to be moved "closer" to services in a workflow. This is achieved by partitioning workflows specified using our simple dataflow language into smaller fragments, which may be sent to remote locations for execution.

cs.DC

A Dataflow Language for Decentralised Orchestration of Web Service Workflows

Orchestrating centralised service-oriented workflows presents significant scalability challenges that include: the consumption of network bandwidth, degradation of performance, and single points of failure. This paper presents a high-level dataflow specification language that attempts to address these scalability challenges. This language provides simple abstractions for orchestrating large-scale web service workflows, and separates between the workflow logic and its execution. It is based on a data-driven model that permits parallelism to improve the workflow performance. We provide a decentralised architecture that allows the computation logic to be moved "closer" to services involved in the workflow. This is achieved through partitioning the workflow specification into smaller fragments that may be sent to remote orchestration services for execution. The orchestration services rely on proxies that exploit connectivity to services in the workflow. These proxies perform service invocations and compositions on behalf of the orchestration services, and carry out data collection, retrieval, and mediation tasks. The evaluation of our architecture implementation concludes that our decentralised approach reduces the execution time of workflows, and scales accordingly with the increasing size of data sets.

cs.DC

First Smart Spaces

This document describes the Gloss software currently implemented. The description of the Gloss demonstrator for multi-surface interaction can be found in D17. The ongoing integration activity for the work described in D17 and D8 constitutes our development of infrastructure for a first smart space. In this report, the focus is on infrastructure to support the implementation of location aware services. A local architecture provides a framework for constructing Gloss applications, termed assemblies, that run on individual physical nodes. A global architecture defines an overlay network for linking individual assemblies. Both local and global architectures are under active development.

cs.DC

Report on the XBase Project

This project addressed the conceptual fundamentals of data storage, investigating techniques for provision of highly generic storage facilities that can be tailored to produce various individually customised storage infrastructures, compliant to the needs of particular applications. This requires the separation of mechanism and policy wherever possible. Aspirations include: actors, whether users or individual processes, should be able to bind to, update and manipulate data and programs transparently with respect to their respective locations; programs should be expressed independently of the storage and network technology involved in their execution; storage facilities should be structure-neutral so that actors can impose multiple interpretations over information, simultaneously and safely; information should not be discarded so that arbitrary historical views are supported; raw stored information should be open to all; where security restrictions on its use are required this should be achieved using cryptographic techniques. The key advances of the research were: 1) the identification of a candidate set of minimal storage system building blocks, which are sufficiently simple to avoid encapsulating policy where it cannot be customised by applications, and composable to build highly flexible storage architectures 2) insight into the nature of append-only storage components, and the issues arising from their application to common storage use-cases.

cs.DB

A Reflective Approach to Providing Flexibility in Application Distribution

Current middleware systems suffer from drawbacks. Often one is forced to make decisions early in the design process about which classes may participate in inter-machine communication. Further, application level and middleware specific semantics cannot be separated forcing an unnatural design. The RAFDA project proposes to adress these deficiencies by creating an adaptive, reflective framework that enables the transformation of non-distributed applications into isomorphic applications whose distribution architecture is flexible. This paper describes the code transformation techniques that have been developed as part of the project. The system enables the distribution of a program according to a flexible configuration without user intervention. Proxy objects can then be substituted, permitting cross-address space communication. The distributed program can adapt to its environment by dynamically altering its distribution boundaries.

cs.DC

Working Document on Gloss Ontology

This document describes the Gloss Ontology. The ontology and associated class model are organised into several packages. Section 2 describes each package in detail, while Section 3 contains a summary of the whole ontology.

cs.DC

An Information Flow Architecture for Global Smart Spaces

In this paper we describe an architecture which: Permits the deployment and execution of components in appropriate geographical locations. Provides security mechanisms that prevent misuse of the architecture. Supports a programming model that is familiar to application programmers. Permits installed components to share data. Permits the deployed components to communicate via communication channels. Provides evolution mechanisms permitting the dynamic rearrangement of inter-connection topologies the components that they connect. Supports the specification and deployment of distributed component deployments.

cs.DC

Second Set of Spaces

This document describes the Gloss infrastructure supporting implementation of location-aware services. The document is in two parts. The first part describes software architecture for the smart space. As described in D8, a local architecture provides a framework for constructing Gloss applications, termed assemblies, that run on individual physical nodes, whereas a global architecture defines an overlay network for linking individual assemblies. The second part outlines the hardware installation for local sensing. This describes the first phase of the installation in Strathclyde University.

cs.DC

A Middleware Framework for Constraint-Based Deployment and Autonomic Management of Distributed Applications

We propose a middleware framework for deployment and subsequent autonomic management of component-based distributed applications. An initial deployment goal is specified using a declarative constraint language, expressing constraints over aspects such as component-host mappings and component interconnection topology. A constraint solver is used to find a configuration that satisfies the goal, and the configuration is deployed automatically. The deployed application is instrumented to allow subsequent autonomic management. If, during execution, the manager detects that the original goal is no longer being met, the satisfy/deploy process can be repeated automatically in order to generate a revised deployment that does meet the goal.

cs.DC

Active Architecture for Pervasive Contextual Services

Pervasive services may be defined as services that are available "to any client (anytime, anywhere)". Here we focus on the software and network infrastructure required to support pervasive contextual services operating over a wide area. One of the key requirements is a matching service capable of as-similating and filtering information from various sources and determining matches relevant to those services. We consider some of the challenges in engineering a globally distributed matching service that is scalable, manageable, and able to evolve incrementally as usage patterns, data formats, services, network topologies and deployment technologies change. We outline an approach based on the use of a peer-to-peer architecture to distribute user events and data, and to support the deployment and evolution of the infrastructure itself.

cs.DC

A Generic Storage API

We present a generic API suitable for provision of highly generic storage facilities that can be tailored to produce various individually customised storage infrastructures. The paper identifies a candidate set of minimal storage system building blocks, which are sufficiently simple to avoid encapsulating policy where it cannot be customised by applications, and composable to build highly flexible storage architectures. Four main generic components are defined: the store, the namer, the caster and the interpreter. It is hypothesised that these are sufficiently general that they could act as building blocks for any information storage and retrieval system. The essential characteristics of each are defined by an interface, which may be implemented by multiple implementing classes.

cs.DB

Architectural Support for Global Smart Spaces

A GLObal Smart Space (GLOSS) provides support for interaction amongst people, artefacts and places while taking account of both context and movement on a global scale. Crucial to the definition of a GLOSS is the provision of a set of location-aware services that detect, convey, store and exploit location information. We use one of these services, hearsay, to illustrate the implementation dimensions of a GLOSS. The focus of the paper is on both local and global software architecture to support the implementation of such services. The local architecture is based on XML pipe-lines and is used to construct location-aware components. The global architecture is based on a hybrid peer-to-peer routing scheme and provides the local architectures with the means to communicate in the global context.

cs.DC

A Framework for Constraint-Based Deployment and Autonomic Management of Distributed Applications (Extended Abstract)

We propose a framework for the deployment and subsequent autonomic management of component-based distributed applications. An initial deployment goal is specified using a declarative constraint language, expressing constraints over aspects such as component-host mappings and component interconnection topology. A constraint solver is used to find a configuration that satisfies the goal, and the configuration is deployed automatically. The deployed application is instrumented to allow subsequent autonomic management. If, during execution, the manager detects that the original goal is no longer being met, the satisfy/deploy process can be repeated automatically in order to generate a revised deployment that does meet the goal.

cs.DC

Exposing Application Components as Web Services

This paper explores technology permitting arbitrary application components to be exposed for remote access from other software. Using this, the application and its constituent components can be written without concern for its distribution. Software running in different address spaces, on different machines, can perform operations on the remotely accessible components. This is of utility in the creation of distributed applications and in permitting tools such as debuggers, component browsers, observers or remote probes access to application components. Current middleware systems do not allow arbitrary exposure of application components: instead, the programmer is forced to decide statically which classes of component will support remote accessibility. In the work described here, arbitrary components of any class can be dynamically exposed via Web Services. Traditional Web Services are extended with a remote reference scheme. This extension permits application components to be invoked using either the traditional pass-by-value semantics supported by Web Services or pass-by-reference semantics. The latter permits the preservation of local call semantics across address space boundaries.

cs.DC