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

Andres Jaan Tack

dblp:67/7550 · DBLP profile ↗
← Back
4ranked-venue papers
0as first author
0since 2021 · last 2012
—ORCID · none

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

Systems, architecture and hardware · 4Software engineering, systems software and programming languages · 2

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.

Software engineering, system software, and programming languages
3 papers
Concurrent programming · 68% Debugging and program repair · 18% Operating systems · 8%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Memory systems · 50% Storage systems · 50%

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

TopicWeightPapersLastEvidence papers
Concurrent programming
transactional memory
0.222012
Applying transactional memory to concurrency bugs · ASPLOS 2012
xCalls: safe I/O in memory transactions · EuroSys 2009
Concurrent programming › concurrency bugs
atomicity violation
0.112012
Applying transactional memory to concurrency bugs · ASPLOS 2012
Concurrent programming
concurrency bugs
0.112012
Applying transactional memory to concurrency bugs · ASPLOS 2012
Debugging and program repair › automated program repair
concurrency bug fixing
0.112012
Applying transactional memory to concurrency bugs · ASPLOS 2012
Storage systems
crash consistency
0.112011
Mnemosyne: lightweight persistent memory · ASPLOS 2011
Memory systems › non-volatile memory
persistent memory
0.112011
Mnemosyne: lightweight persistent memory · ASPLOS 2011
Memory systems › non-volatile memory
storage class memory
0.112011
Mnemosyne: lightweight persistent memory · ASPLOS 2011
Storage systems
storage reliability
0.112011
Mnemosyne: lightweight persistent memory · ASPLOS 2011
Software maintenance and evolution › software maintenance
bug fixing
0.012012
Applying transactional memory to concurrency bugs · ASPLOS 2012
Operating systems › resource management
memory management
0.012011
Mnemosyne: lightweight persistent memory · ASPLOS 2011

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

transactional memory · 0.4memory transactions · 0.1isolation guarantees · 0.1
YearPublicationVenuePosition
2012 Applying transactional memory to concurrency bugs
abstract
Multithreaded programs often suffer from synchronization bugs such as atomicity violations and deadlocks. These bugs arise from complicated locking strategies and ad hoc synchronization methods to avoid the use of locks. A survey of the bug databases of major open-source applications shows that concurrency bugs often take multiple fix attempts, and that fixes often introduce yet more concurrency bugs. Transactional memory (TM) enables programmers to declare regions of code atomic without specifying a lock and has the potential to avoid these bugs. Where most previous studies have focused on using TM to write new programs from scratch, we consider its utility in fixing existing programs with concurrency bugs. We therefore investigate four methods of using TM on three concurrent programs. Overall, we find that 29% of the bugs are not fixable by transactional memory, showing that TM does not address many important types of concurrency bugs. In particular, TM works poorly with extremely long critical sections and with deadlocks involving both condition variables and I/O. Conversely, we find that for 56% of the bugs, transactional memory offers demonstrable value by simplifying the reasoning behind a fix or the effort to implement a fix, and using transactions in the first place would have avoided 71% of the bugs examined. We also find that ad hoc synchronization put in place to avoid the overhead of locking can be greatly simplified with TM, but requires hardware support to perform well.
Haris Volos 0001, Andres Jaan Tack, Michael M. Swift, Shan Lu 0001
ASPLOS2
2011 Mnemosyne: lightweight persistent memory
abstract
New storage-class memory (SCM) technologies, such as phase-change memory, STT-RAM, and memristors, promise user-level access to non-volatile storage through regular memory instructions. These memory devices enable fast user-mode access to persistence, allowing regular in-memory data structures to survive system crashes.In this paper, we present Mnemosyne, a simple interface for programming with persistent memory. Mnemosyne addresses two challenges: how to create and manage such memory, and how to ensure consistency in the presence of failures. Without additional mechanisms, a system failure may leave data structures in SCM in an invalid state, crashing the program the next time it starts.In Mnemosyne, programmers declare global persistent data with the keyword pstatic or allocate it dynamically. Mnemosyne provides primitives for directly modifying persistent variables and supports consistent updates through a lightweight transaction mechanism. Compared to past work on disk-based persistent memory, Mnemosyne reduces latency to storage by writing data directly to memory at the granularity of an update rather than writing memory pages back to disk through the file system. In tests emulating the performance characteristics of forthcoming SCMs, we show that Mnemosyne can persist data as fast as 3 microseconds. Furthermore, it provides a 35 percent performance increase when applied in the OpenLDAP directory server. In microbenchmark studies we find that Mnemosyne can be up to 1400% faster than alternative persistence strategies, such as Berkeley DB or Boost serialization, that are designed for disks.
Haris Volos 0001, Andres Jaan Tack, Michael M. Swift
ASPLOS2
2009 xCalls: safe I/O in memory transactions
abstract
Memory transactions, similar to database transactions, allow a programmer to focus on the logic of their program and let the system ensure that transactions are atomic and isolated. Thus, programs using transactions do not suffer from deadlock. However, when a transaction performs I/O or accesses kernel resources, the atomicity and isolation guarantees from the TM system do not apply to the kernel.
Haris Volos 0001, Andres Jaan Tack, Neelam Goyal, Michael M. Swift, Adam Welc
EuroSys2
2009 An Analysis of Network Configuration Artifacts
David Plonka, Andres Jaan Tack
LISA2