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