An empirical guide to the behavior and use of scalable persistent memory, Yang et al., FAST'20 We've looked at multiple papers exploring non-volatile main memory and its implications (e.g. most recently 'Efficient lock-free durable sets'). One thing they all had in common is an evaluation using some kind of simulation of the expected behaviour of … Continue reading An empirical guide to the behavior and use of scalable persistent memory
Tag: Performance
Measuring, troubleshooting and improving performance.
View-centric performance optimization for database-backed web applications
View-centric performance optimization for database-backed web applications Yang et al., ICSE 2019 The problem set-up in this paper discusses the importance of keeping web page load times low as a fundamental contributor to user satisfaction (See e.g. ‘Why performance matters’). Between client-side tools such as Google’s Lighthouse, back-end tools that can analyse ORM usage and … Continue reading View-centric performance optimization for database-backed web applications
Seer: leveraging big data to navigate the complexity of performance debugging in cloud microservices
Seer: leveraging big data to navigate the complexity of performance debugging in cloud microservices Gan et al., ASPLOS'19 Last time around we looked at the DeathStarBench suite of microservices-based benchmark applications and learned that microservices systems can be especially latency sensitive, and that hotspots can propagate through a microservices architecture in interesting ways. Seer is … Continue reading Seer: leveraging big data to navigate the complexity of performance debugging in cloud microservices
An open-source benchmark suite for microservices and their hardware-software implications for cloud & edge systems
An open-source benchmark suite for microservices and their hardware-software implications for cloud & edge systems Gan et al., ASPLOS'19 Microservices are well known for producing ‘death star’ interaction diagrams like those shown below, where each point on the circumference represents an individual service, and the lines between them represent interactions. Systems built with lots of … Continue reading An open-source benchmark suite for microservices and their hardware-software implications for cloud & edge systems
GraphIt: A high-performance graph DSL
GraphIt: a high-performance graph DSL Zhang et al., OOPSLA'18 See also: http://graphit-lang.org/. The problem with finding the optimal algorithm and data structures for a given problem is that so often it depends. This is especially true when it comes to graph algorithms. It is difficult to implement high-performance graph algorithms. The performance bottlenecks of these … Continue reading GraphIt: A high-performance graph DSL
RobinHood: tail latency aware caching – dynamic reallocation from cache-rich to cache-poor
RobinHood: tail latency aware caching - dynamic reallocation from cache-rich to cache-poor Berger et al., OSDI'18 It’s time to rethink everything you thought you knew about caching! My mental model goes something like this: we have a set of items that probably follow a power-law of popularity. We have a certain finite cache capacity, and … Continue reading RobinHood: tail latency aware caching – dynamic reallocation from cache-rich to cache-poor
How not to structure your database-backed web applications: a study of performance bugs in the wild
How not to structure your database-backed web applications: a study of performance bugs in the wild Yang et al., ICSE'18 This is a fascinating study of the problems people get into when using ORMs to handle persistence concerns in their web applications. The authors study real-world applications and distil a catalogue of common performance anti-patterns. … Continue reading How not to structure your database-backed web applications: a study of performance bugs in the wild
Performance analysis of cloud applications
Performance analysis of cloud applications Ardelean et al., NSDI'18 Today’s choice gives us an insight into how Google measure and analyse the performance of large user-facing services such as Gmail (from which most of the data in the paper is taken). It’s a paper in two halves. The first part of the paper demonstrates through … Continue reading Performance analysis of cloud applications
Skyway: connecting managed heaps in distributed big data systems
Skyway: connecting managed heaps in distributed big data systems Nguyen et al., ASPLOS'18 Yesterday we saw how to make Java objects persistent using NVM-backed heaps with Espresso. One of the drawbacks of using that as a persistence mechanism is that they’re only stored in the memory of a single node. If only there was some … Continue reading Skyway: connecting managed heaps in distributed big data systems
Watching for software inefficiencies with Witch
Watching for software inefficiencies with Witch Wen et al., ASPLOS'18 (The link above is to the ACM Digital Library, if you don’t have membership you should still be able to access the paper pdf by following the link from The Morning Paper blog post directly.) Inefficiencies abound in complex, layered software. These inefficiencies can arise … Continue reading Watching for software inefficiencies with Witch