# Resource Management in Aurora Serverless

DevFeed: [Resource Management in Aurora Serverless](<https://devfeed.tech/articles/resource-management-in-aurora-serverless-12560.md>)

Original publisher: [Read original article](<http://brooker.co.za/blog/2024/07/29/aurora-serverless.html>)

Author: Marc Brooker

Published: 2024-07-29T00:00:00Z

Content type: article

Language: en

Sources: [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog.md>), [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog-2.md>)

Topics: [Amazon Aurora](<https://devfeed.tech/topics/amazon-aurora.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [amazon-aurora](<https://devfeed.tech/tags/amazon-aurora.md>), [cache](<https://devfeed.tech/tags/cache.md>), [cost](<https://devfeed.tech/tags/cost.md>), [databases](<https://devfeed.tech/tags/databases.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [latency](<https://devfeed.tech/tags/latency.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [performance](<https://devfeed.tech/tags/performance.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

## AI overview

The article explains how Amazon Aurora Serverless manages database resources as workloads change. It focuses on in-place scaling, cost and performance effects, uninterrupted connections and transactions, and the memory-management challenges of preserving database working sets and cache performance.

## Source excerpt

Resource Management in Aurora Serverless Systems, big and small. My favorite thing about distributed systems is how they allow us to solve problems at multiple levels: single process problems, single machine problems, multi-machine problems, and large-scale cluster problems. Our new paper Resource management in Aurora Serverless1 describes what this looks like in context of a large-scale running system: Amazon Aurora Serverless. What is Aurora Serverless? Aurora Serverless (or, rather, Aurora Serverless V2 for reasons the paper explains) allows Amazon Aurora databases to scale in place as their workload changes, reducing costs, simplifying operations, and improving performance for customers with cyclical, seasonal, or organically growing workloads. Here's one example of what that looks like: Notice how the size of the database (ACU allocation) grows and shrinks with the workload. It does that without disrupting connections, while transactions are running, and while keeping all session state. In this example there is some latency impact, but its small compared to what would have been achievable with manual scaling (and even smaller than the impact of having an under-sized database for the peaks). Managing memory is what makes this a truly interesting systems problem. Traditional relational database engines are highly dependent on high local cache hit rates for performance. Aurora is slightly less so, but having the core working set3 in cache is still important for good OLTP performance. Working sets grow and shrink, and change, with changing access patterns. Scaling a database while offering good performance requires a careful and deep understanding of the size and occupancy of working sets, and careful management to ensure that the optimal amount of memory is available to store them. Lowest Level: Hypervisor, Kernel, and DB Engine By default, both Linux and database engines like Postgres and MySQL have a hungry hungry hippo approach to memory management: they assume