Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Keir Fraser

dblp:46/4243 · DBLP profile ↗
← Back
12ranked-venue papers
1as first author
0since 2021 · last 2014
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 5 · 1 first-authorSoftware engineering, systems software and programming languages · 4Computer networks · 2Databases, data management, data science and information retrieval · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
4 papers
Cloud and datacenter computing · 36% Memory systems · 34% Storage systems · 20%
Software engineering, system software, and programming languages
6 papers
Concurrent programming · 70% Operating systems · 22% Programming languages and type systems · 8%
Human-computer interaction and pervasive computing
1 paper
Personal fabrication and tangible interfaces · 50% Design research and methods · 50%
Computer networks
1 paper
Internet architecture and protocols · 81% Routing and switching · 19%

Topics — the 22 heaviest of 24, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems
non-volatile memory
0.212014
Strata: scalable high-performance storage on virtualized non-volatile memory · FAST 2014
Concurrent programming › transactional memory
software transactional memory
0.122007
Concurrent programming without locks · ACM Trans. Comput. Syst. 2007
Language support for lightweight transactions · OOPSLA 2003
Cloud and datacenter computing
virtualization
0.122005
Live Migration of Virtual Machines · NSDI 2005
Xen and the art of virtualization · SOSP 2003
Concurrent programming › non-blocking algorithms
non-blocking data structures
0.112007
Concurrent programming without locks · ACM Trans. Comput. Syst. 2007
Concurrent programming › synchronization
non-blocking synchronization
0.112007
Concurrent programming without locks · ACM Trans. Comput. Syst. 2007
Storage systems
file systems
0.112014
Strata: scalable high-performance storage on virtualized non-volatile memory · FAST 2014
Storage systems
scalable storage
0.112014
Strata: scalable high-performance storage on virtualized non-volatile memory · FAST 2014
Concurrent programming
synchronization
0.112005
Revocable locks for non-blocking programming · PPoPP 2005
Cloud and datacenter computing › virtualization › virtual machine migration
live migration
0.112005
Live Migration of Virtual Machines · NSDI 2005
Parallel and multicore computing › synchronization
lock-free synchronization
0.112005
Revocable locks for non-blocking programming · PPoPP 2005
Programming languages and type systems › concurrent programming languages
language constructs for concurrency
0.012003
Language support for lightweight transactions · OOPSLA 2003
Operating systems › system security › operating system security › protection mechanism › isolation
performance isolation
0.012003
Xen and the art of virtualization · SOSP 2003
Operating systems › system security › operating system security › protection mechanism › isolation
resource isolation
0.012003
Xen and the art of virtualization · SOSP 2003
Cloud and datacenter computing › virtualization
virtual machine monitor
0.012003
Xen and the art of virtualization · SOSP 2003
Internet architecture and protocols
network interface design
0.012001
Arsenic: A User-Accessible Gigabit Ethernet Interface · INFOCOM 2001
Operating systems › i/o
i/o subsystem
0.012001
Arsenic: A User-Accessible Gigabit Ethernet Interface · INFOCOM 2001
Concurrent programming
atomicity
0.012007
Concurrent programming without locks · ACM Trans. Comput. Syst. 2007
Concurrent programming
concurrency control
0.012005
Revocable locks for non-blocking programming · PPoPP 2005
Concurrent programming › synchronization
locking
0.012003
Language support for lightweight transactions · OOPSLA 2003
Cloud and datacenter computing › virtualization › virtual machine management
server consolidation
0.012003
Xen and the art of virtualization · SOSP 2003
Internet architecture and protocols
quality of service
0.012001
Arsenic: A User-Accessible Gigabit Ethernet Interface · INFOCOM 2001
Routing and switching › traffic engineering
traffic scheduling and shaping
0.012001
Arsenic: A User-Accessible Gigabit Ethernet Interface · INFOCOM 2001

Methods — techniques the papers use, named apart from their topics

paravirtualization · 0.1performance measurement · 0.1
YearPublicationVenuePosition
2014 Strata: scalable high-performance storage on virtualized non-volatile memory
Brendan Cully, Jake Wires, Dutch T. Meyer, Kevin Jamieson 0002, Keir Fraser, Tim Deegan, Daniel Stodden, Geoffrey Lefebvre, Daniel Ferstay, Andy Warfield
FAST5
2008 A transactional approach to lock scalability
abstract
Most software transactional memory implementations execute code using fine-grained optimistic concurrency control. This does not perform well with low contention data structures where fine grained conflict detection means manipulating metadata for every object touched and optimistic concurrency control imposes the overhead of making thread private shadow copies. Also, a purely optimistic approach does not coexist naturally with legacy code that is either already concurrent using locks or does IO operations that cannot be revoked. We try to address these problems by presenting a new form of the reader writer locks used by the vast majority of concurrent code today. Along with the traditional lock/unlock operations, these new locks support STM-like management of shadow versions that can be used when desired by the programmer. We show how existing lock based code can be scaled to perform as well as an STM, with few changes to the existing code base. We also show as a corollary that our design allows construction of data structures that retain strict fairness between threads, while simultaneously allowing disjoint access parallelism.
Amitabha Roy 0002, Keir Fraser, Steven Hand 0001
SPAA2
2007 Concurrent programming without locks
abstract
Mutual exclusion locks remain the de facto mechanism for concurrency control on shared-memory data structures. However, their apparent simplicity is deceptive: It is hard to design scalable locking strategies because locks can harbor problems such as priority inversion, deadlock, and convoying. Furthermore, scalable lock-based systems are not readily composable when building compound operations. In looking for solutions to these problems, interest has developed in nonblocking systems which have promised scalability and robustness by eschewing mutual exclusion while still ensuring safety. However, existing techniques for building nonblocking systems are rarely suitable for practical use, imposing substantial storage overheads, serializing nonconflicting operations, or requiring instructions not readily available on today's CPUs. In this article we present three APIs which make it easier to develop nonblocking implementations of arbitrary data structures. The first API is a multiword compare-and-swap operation (MCAS) which atomically updates a set of memory locations. This can be used to advance a data structure from one consistent state to another. The second API is a word-based software transactional memory (WSTM) which can allow sequential code to be reused more directly than with MCAS and which provides better scalability when locations are being read rather than being updated. The third API is an object-based software transactional memory (OSTM). OSTM allows a simpler implementation than WSTM, but at the cost of reengineering the code to use OSTM objects. We present practical implementations of all three of these APIs, built from operations available across all of today's major CPU families. We illustrate the use of these APIs by using them to build highly concurrent skip lists and red-black trees. We compare the performance of the resulting implementations against one another and against high-performance lock-based systems. These results demonstrate that it is possible to build useful nonblocking data structures with performance comparable to, or better than, sophisticated lock-based designs.
Keir Fraser, Tim Harris 0001
ACM Trans. Comput. Syst.1
2005 Are Virtual Machine Monitors Microkernels Done Right?
Steven Hand 0001, Andy Warfield, Keir Fraser, Evangelos Kotsovinos, Daniel J. Magenheimer
HotOS3
2005 Parallax: Managing Storage for a Million Machines
Andy Warfield, Russ Ross, Keir Fraser, Christian Limpach, Steven Hand 0001
HotOS3
2005 Live Migration of Virtual Machines
Keir Fraser, Steven Hand 0001, Jacob Gorm Hansen, Eric Jul, Christian Limpach, Ian Pratt 0001, Andy Warfield
NSDI2
2005 Revocable locks for non-blocking programming
abstract
In this paper we present a new form of revocable lock that streamlines the construction of higher level concurrency abstractions such as atomic multi-word heap updates. The key idea is to expose revocation by displacing the previous lock holder's execution to a safe address. This provides mutual exclusion without needing to block threads. This brings many simplifications, often removing the need for dynamic memory management and letting us strip operations from common-case execution paths. As well as streamlining algorithms' design, our results show that the technique leads to improved performance and scalability across a range of levels of contention.
Tim Harris 0001, Keir Fraser
PPoPP2
2005 Facilitating the Development of Soft Devices
Andy Warfield, Steven Hand 0001, Keir Fraser, Tim Deegan
USENIX ATC, General Track3
2003 Language support for lightweight transactions
abstract
Concurrent programming is notoriously difficult. Current abstractions are intricate and make it hard to design computer systems that are reliable and scalable. We argue that these problems can be addressed by moving to a declarative style of concurrency control in which programmers directly indicate the safety properties that they require. In our scheme the programmer demarks sections of code which execute within lightweight software-based transactions that commit atomically and exactly once. These transactions can update shared data, instantiate objects, invoke library features and so on. They can also block, waiting for arbitrary boolean conditions to become true. Transactions which do not access the same shared memory locations can commit concurrently. Furthermore, in general, no performance penalty is incurred for memory accesses outside transactions.We present a detailed design of this proposal along with an implementation and evaluation. We argue that the resulting system (i) is easier for mainstream programmers to use, (ii) prevents lock-based priority-inversion and deadlock problems and (iii) can offer performance advantages.
Tim Harris 0001, Keir Fraser
OOPSLA2
2003 Xen and the art of virtualization
abstract
Numerous systems have been designed which use virtualization to subdivide the ample resources of a modern computer. Some require specialized hardware, or cannot support commodity operating systems. Some target 100% binary compatibility at the expense of performance. Others sacrifice security or functionality for speed. Few offer resource isolation or performance guarantees; most provide only best-effort provisioning, risking denial of service.This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality. This is achieved by providing an idealized virtual machine abstraction to which operating systems such as Linux, BSD and Windows XP, can be ported with minimal effort.Our design is targeted at hosting up to 100 virtual machine instances simultaneously on a modern server. The virtualization approach taken by Xen is extremely efficient: we allow operating systems such as Linux and Windows XP to be hosted simultaneously for a negligible performance overhead --- at most a few percent compared with the unvirtualized case. We considerably outperform competing commercial and freely available solutions in a range of microbenchmarks and system-wide tests.
Paul Barham 0001, Boris Dragovic, Keir Fraser, Steven Hand 0001, Tim Harris 0001, Alex Ho, Rolf Neugebauer, Ian Pratt 0001, Andy Warfield
SOSP3
2002 A Practical Multi-word Compare-and-Swap Operation
Tim Harris 0001, Keir Fraser, Ian Pratt 0001
DISC2
2001 Arsenic: A User-Accessible Gigabit Ethernet Interface
abstract
Arsenic is a gigabit Ethernet NIC which exports an extended interface to the operating system and user applications. Unlike conventional adaptors, it implements some of the protection and multiplexing functions traditionally performed by the operating system. This enables applications to be given direct access to their own 'virtual interface', allowing them to send and receive packets without operating system interaction. Packet filters uploaded to the interface card by the operating system are used to demultiplex received packets to their destination application, and to validate packets before transmission. Transmit traffic shaping and scheduling mechanisms enable the bandwidth used by applications to be controlled. These features allow protocol processing to be moved into user-space shared libraries without sacrificing the security and resource management functionality that the operating system normally provides. The paper describes Arsenic's design and implementation, and outlines how it is integrated into the Linux 2.3 operating system. Performance measurements are presented that show Arsenic supports low latency, high bandwidth communication while offering greater CPU efficiency and better quality of service than conventional devices.
Ian Pratt 0001, Keir Fraser
INFOCOM2