H. Alan Beadle

dblp:214/7058 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
0since 2021 · last 2020
—ORCID · none

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

Systems, architecture and hardware · 4 · 2 first-authorSoftware engineering, systems software and programming languages · 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
2 papers
Memory systems · 100%
Software engineering, system software, and programming languages
2 papers
Concurrent programming · 82% Operating systems · 18%

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

TopicWeightPapersLastEvidence papers
Memory systems
non-volatile memory
0.922020
Understanding and optimizing persistent memory allocation · PPoPP 2020
Nonblocking persistent software transactional memory · PPoPP 2020
Concurrent programming › transactional memory
software transactional memory
0.412020
Nonblocking persistent software transactional memory · PPoPP 2020
Concurrent programming
transactional memory
0.412020
Nonblocking persistent software transactional memory · PPoPP 2020
Memory systems › non-volatile memory
persistent memory
0.412020
Understanding and optimizing persistent memory allocation · PPoPP 2020
Memory systems › non-volatile memory
persistent memory allocation
0.412020
Understanding and optimizing persistent memory allocation · PPoPP 2020
Memory systems › non-volatile memory
persistent memory consistency
0.412020
Nonblocking persistent software transactional memory · PPoPP 2020
Concurrent programming
concurrent data structures
0.312018
Interval-based memory reclamation · PPoPP 2018
Operating systems › resource management
memory management
0.312018
Interval-based memory reclamation · PPoPP 2018
Concurrent programming › memory reclamation
safe memory reclamation
0.312018
Interval-based memory reclamation · PPoPP 2018

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

word-based STM · 0.9non-blocking synchronization · 0.9position-independent pointers · 0.4garbage collection · 0.4filter functions · 0.4hazard pointers · 0.3epoch-based reclamation · 0.3
YearPublicationVenuePosition
2020 Nonblocking Persistent Software Transactional Memory
abstract
Newly emerging nonvolatile alternatives to DRAM raise the possibility that applications might compute directly on long-lived data, rather than serializing them to and from a file system or database. To ensure crash consistency, such data must, like a file system or database, provide failure-atomic transactional semantics. Several persistent software transactional memory (STM) systems have been devised to provide these semantics, but only one-the OneFile system of Ramalhete et al.-is nonblocking. Nonblocking progress is desirable to avoid both performance anomalies due to process preemption or failures and deadlock due to priority inversion. Unfortunately, OneFile achieves nonblocking progress at the cost of 2 × space overhead, sacrificing much of the cost and density benefit of nonvolatile memory relative to DRAM. OneFile also requires extensive and intrusive changes to data declarations, and works only on a machine with double-width compare-and-swap (CAS) or load-linked/store-conditional (LL/SC) instructions. To address these limitations, we introduce QSTM, a nonblocking persistent STM that requires neither the modification of target data structures nor the availability of a wide CAS instruction. We describe our system, give arguments for safety and liveness, and compare performance to that of the Mnemosyne and OneFile persistent STM systems. We argue that modest performance costs (within a factor of 2 of OneFile in almost all cases) are easily justified by dramatically lower space overhead and higher programmer convenience.
H. Alan Beadle, Wentao Cai 0002, Haosen Wen, Michael L. Scott
HiPC1
2020 Understanding and optimizing persistent memory allocation
abstract
The proliferation of fast, dense, byte-addressable nonvolatile memory suggests that data might be kept in pointer-rich "in-memory" format across program runs and even process and system crashes. For full generality, such data requires dynamic memory allocation, and while the allocator could in principle be "rolled into" each data structure, it is desirable to make it a separate abstraction.
Wentao Cai 0002, Haosen Wen, H. Alan Beadle, Chris Kjellqvist, Mohammad Hedayati, Michael L. Scott
ISMM3
2020 Nonblocking persistent software transactional memory
abstract
While developed largely for higher density and lower power, byte-addressable nonvolatile memory can also allow data to persist across program runs and system crashes without the need to flush to disk or flash. If data is to be recovered after a crash, however, care must be taken to ensure that the contents of memory are consistent at all times. This can be challenging in multithreaded applications with write-back caches. We present QSTM, a persistent word-based software transactional memory (STM) system to address this problem. Unlike past such systems, QSTM is nonblocking and does not require either the modification of target data structures or the use of a wide CAS instruction.
H. Alan Beadle, Wentao Cai 0002, Haosen Wen, Michael L. Scott
PPoPP1
2020 Understanding and optimizing persistent memory allocation
abstract
The proliferation of fast, dense, byte-addressable nonvolatile memory suggests the possibility of keeping data in pointer-rich "in-memory" format across program runs and even crashes. For full generality, such data requires dynamic memory allocation. Toward this end, we introduce recoverability, a correctness criterion for persistent allocators, together with a nonblocking allocator, Ralloc, that satisfies this criterion. Ralloc is based on LRMalloc [8], with three key innovations. First, we persist just enough information during normal operation to permit reconstruction of the heap after a full-system crash. Our reconstruction mechanism performs garbage collection (GC) to identify and remedy any failure-induced memory leaks. Second, in support of GC, we introduce the notion of filter functions, which identify the locations of pointers within persistent blocks. Third, to allow persistent regions to be mapped at an arbitrary address, we employ the position-independent pointer representation of Chen et al. [4], both in data and in allocator metadata.
Wentao Cai 0002, Haosen Wen, H. Alan Beadle, Mohammad Hedayati, Michael L. Scott
PPoPP3
2018 Interval-based memory reclamation
abstract
In this paper we present interval-based reclamation (IBR), a new approach to safe reclamation of disconnected memory blocks in nonblocking concurrent data structures. Safe reclamation is a difficult problem: a thread, before freeing a block, must ensure that no other threads are accessing that block; the required synchronization tends to be expensive. In contrast with epoch-based reclamation, in which threads reserve all blocks created after a certain time, or pointer-based reclamation (e.g., hazard pointers), in which threads reserve individual blocks, IBR allows a thread to reserve all blocks known to have existed in a bounded interval of time. By comparing a thread's reserved interval with the lifetime of a detached but not yet reclaimed block, the system can determine if the block is safe to free. Like hazard pointers, IBR avoids the possibility that a single stalled thread may reserve an unbounded number of blocks; unlike hazard pointers, it avoids a memory fence on most pointer-following operations. It also avoids the need to explicitly "unreserve" a no-longer-needed pointer.
Haosen Wen, Joseph Izraelevitz, Wentao Cai 0002, H. Alan Beadle, Michael L. Scott
PPoPP4