Chapter 3. Swift’s Data Model and Architecture

Joe Arnold

Amanda Plimpton

This chapter aims to familiarize you with the different parts of Swift and how they work together to provide a storage system that is—among other things—durable, scalable, and highly concurrent.

We’ll start with a conceptual overview of Swift’s data model and then walk you through the different layers of Swift’s architecture (clusters, regions, zones, nodes). After that you will learn about the types of Swift server processes (proxy, account, container, object), as well as consistency processes.

After discussing how data is housed and organized, we’ll examine Swift’s consistent hashing rings and how they determine the locations where data will be placed in the cluster. Finally, we’ll wrap up the chapter by showing how you can simplify the management of Swift with the SwiftStack Controller and SwiftStack Node software.

Swift Data Model

OpenStack Swift allows users to store unstructured data objects with a canonical name containing three parts: account, container, and object. Using one or more of these parts allows the system to form a unique storage location for data.

/account
The account storage location is a uniquely named storage area that will contain the metadata (descriptive information) about the account itself, as well as the list of containers in the account. Note that in Swift, an account is not a user identity. When you hear account, think storage area.
/account/container
The container storage location ...

Get OpenStack Swift now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.