2. Background

2.0 Background

Amazon ์˜ e-commerce platform

  • ์ˆ˜๋ฐฑ๊ฐœ์˜ ์„œ๋น„์Šค๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

  • ์ด ์„œ๋น„์Šค๋“ค์€ ์ „์„ธ๊ณ„์˜ ์—ฌ๋Ÿฌ Data Center ์— ์œ„์น˜ํ•œ ์ˆ˜๋งŒ๋Œ€์˜ ์„œ๋ฒ„๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ธํ”„๋ผ ์•ˆ์—์„œ ํ˜ธ์ŠคํŠธ๋œ๋‹ค.

RDBMS VS NOSQL

  • ์ „ํ†ต์ ์œผ๋กœ production system ๋“ค์€ ๊ทธ๋“ค์˜ ์ƒํƒœ๋ฅผ Relational Database ์— ์ €์žฅํ•œ๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜, ์‚ฌ์šฉ ํŒจํ„ด๋“ค ์ค‘ ๋” ๋งŽ์€ ๊ฒฝ์šฐ์— RDB ๋Š” ์ด์ƒ์ ์ธ ์†”๋ฃจ์…˜ ์•„๋‹ˆ๋‹ค.

  • ์ด๋Ÿฐ ์„œ๋น„์Šค๋“ค์˜ ๋Œ€๋ถ€๋ถ„์ด Primary Key ๋กœ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํšŒ์ˆ˜ํ•˜๊ณ , ๊ทธ ์ด์ƒ์˜ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋‚˜ RDBMS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • Inefficient solution by Expensive hardware, highly skilled personnel for its operation

2.1 System Assumptions and Requirements

Query Model

  • simple read and write operations to a data item that is uniquely identified by a key.

ACID properties

  • Dynamo targets applications that operate with weaker consistency (the โ€œCโ€ in ACID) if this results in high availability.

Efficiency

  • The system needs to function on a commodity hardware infrastructure.

  • ๊ฐ’์‹ผ ์„œ๋ฒ„๋“ค์—์„œ๋„ ์˜ค๋ฅ˜์—†์ด ์ž˜ ๋™์ž‘ํ•ด์•ผํ•œ๋‹ค.

  • the storage system must be capable of meeting such stringent SLAs

Internal Service -> No security

  • Dynamo is used only by Amazonโ€™s internal services.

  • to be non-hostile and there are no security related requirements such as authentication and authorization

2.2 Service Level Agreements (SLA)

๋ณดํ†ต์˜ ์„œ๋น„์Šค๋“ค์ด SLA ๋ฅผ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • provide a response within 300ms for 99.9% of its requests for a peak client load of 500 requests per second.

Amazon ์ด SLA ๋ฅผ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • At Amazon we have found that these metrics are not good enough if the goal is to build a system where all customers have a good experience, rather than just the majority. ๋Œ€๋‹ค์ˆ˜๊ฐ€ ์ข‹์€ ๊ฒฝํ—˜์„ ํ•˜๊ฒŒ ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ALL ๋ชจ๋‘๊ฐ€ ์ข‹์€ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

  • To address this issue, at Amazon, SLAs are expressed and measured at the 99.9th percentile of the distribution.

2.3 Design Considerations

โญ๏ธ Conflict ์ด ๋‚ฌ์„๋•Œ '์–ธ์ œ' ๊ทธ๋ฆฌ๊ณ  '๋ˆ„๊ฐ€' ํ•ด๊ฒฐํ• ๊ฒƒ์ธ๊ฐ€

  • An important design consideration is to decide when to perform the process of resolving update conflicts, i.e., whether conflicts should be resolved during reads or writes.

์ „ํ†ต์ ์ธ ๋ฐฉ์‹

  • Many traditional data stores execute conflict resolution during writes and keep the read complexity simple.

Dynamo ์˜ ๋ฐฉ์‹

  • Dynamo targets the design space of an โ€œalways writeableโ€ data store

  • For instance, the shopping cart service must allow customers to add and remove items from their shopping cart even amidst network and server failures.

  • the data store can only use simple policies, such as โ€œlast write winsโ€

  • Conflict ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์€ ์ฝ์–ด๊ฐ€๋Š” ์ฃผ์ฒด, ์ฆ‰ 'ํด๋ผ์ด์–ธํŠธ' ๋‹จ์—์„œ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ํด๋ผ์ด์–ธํŠธ๋‹จ์€ ์•„์˜ˆ ์›น ํ”„๋ก ํŠธ๋Š” ์•„๋‹ˆ๊ณ , ์ตœ์ƒ๋‹จ ์›น์„œ๋ฒ„ ์ •๋„๋ฅผ ๋งํ•œ๋‹ค.

Key Principles in the design

1. Incremental scalability

  • Dynamo should be able to scale out one storage host (henceforth, referred to as โ€œnodeโ€) at a time

2. Symmetry

  • Every node in Dynamo should have the same set of responsibilities as its peers

3. Decentralization

  • the design should favor decentralized peer-to-peer techniques over centralized control

4. Heterogeneity

  • the work distribution must be proportional to the capabilities of the individual servers.

  • This is essential in adding new nodes with higher capacity without having to upgrade all hosts at once.

  • 'commodity' ์™€ ๊ด€๋ จ์ด ๊นŠ๋‹ค.

Last updated