Ryu
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Ryu / software_engineer
  • โœจResume
  • Python3
    • Python3 ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ
      • Python3 vs Python2
      • Pyenv
      • Venv
      • Pip
    • Flask
      • Flask ์„ค์น˜ํ•˜๊ธฐ
      • API Server ๋งŒ๋“ค๊ธฐ
    • REST API
    • Command Line ํ™œ์šฉํ•˜๊ธฐ
    • Module ์‚ฌ์šฉํ•˜๊ธฐ
      • Pickle - ์ž๋ฃŒํ˜•์„ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ๋•Œ
    • MongoDB connection
      • Pymongo
    • WSGI
      • ๐Ÿ’กWSGI ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 
      • Web Server / WSGI / Middleware / Application ๊ตฌ์กฐ
      • WSGI Middleware ์ข…๋ฅ˜
      • Gunicorn
        • Gunicorn vs Uwsgi
    • Dockerize
      • ๐Ÿ’กDockerize ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 
      • 1. Create Dockerfile
        • Gunicorn ์œผ๋กœ nginx ์™€ app ์—ฐ๊ฒฐํ•˜๊ธฐ
    • Kubernetes ๋กœ ๋ฐฐํฌํ•˜๊ธฐ
      • ๐Ÿ’กKubernetes ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 
      • Helm ์‚ฌ์šฉํ•˜๊ธฐ
      • Helm ์œผ๋กœ k8s ์— ์•ฑ ๋ฐฐํฌํ•˜๊ธฐ
  • Open Tracing (์ •๋ฆฌ์ค‘)
    • Open Tracing ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€
    • Python OpenTracing Example
    • Jaeger, Jaeger UI
    • Python Jaeger Tutorial
    • Zipkin ์•Œ์•„๋ณด๊ธฐ
    • Jaeger-client ๋ฆฌ์ŠคํŒ…
  • Microservice Architecture
    • Netflix์˜ MSA ์ปจ์…‰
      • โšก๏ธ MSA ๋ฅผ ๋„์ž…ํ• ๋•Œ ๊ณ ๋ คํ•ด์•ผํ•  ์ ๋“ค
  • Paper
    • Dynamo: Amazonโ€™s Highly Available Key-value Store
      • 1. Introduction
      • 2. Background
      • 3. Related Work
        • Related Paper) Pastry, Chord
        • Byzantine Fault Tolerance
      • 4. System Architecture
        • 4.1 System Interface
        • 4.2 Partitioning
        • 4.3 Replication
        • Hash Function
  • Frontend
    • CommonJS ์™€ AMD
    • RequireJS
    • WebSocket
      • WebSocket vs Socket.io
      • polling vs long polling vs streaming
    • Vue.js
      • Vue.js ์—์„œ WebSocket ์‚ฌ์šฉํ•˜๊ธฐ
      • [ํ”„๋กœ์ ํŠธ] Vue, Vuex, AntDesignVue ๋กœ ์šด์˜ํˆด ๋งŒ๋“ค๊ธฐ
    • React x Redux ๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ
      • 0. React, Redux ๋ฅผ ์„ ํƒํ•œ ์ด์œ 
      • 1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ณ  Webpack4 ์ ์šฉํ•˜๊ธฐ
      • 2. React ์™€ ReactDOM ์ ์šฉํ•˜๊ธฐ
      • 3. Material UI ์ ์šฉํ•˜๊ธฐ
  • Data Engineering
    • Spark
      • Spark ์ด๋ž€?
      • ๊ฐ ๋ฐ๋ชฌ์˜ ์—ญํ•  Driver, Master, Worker
      • ์žฅ๋‹จ์  / ํ•จ๊ป˜์‚ฌ์šฉํ•˜๋Š” ํˆด / ์‚ฌ์šฉ ์‚ฌ๋ก€
  • Service Mesh (์ •๋ฆฌ์ค‘)
    • RPC
    • gRPC - Python Server ๋งŒ๋“ค๊ธฐ
      • step 2.
Powered by GitBook
On this page

Was this helpful?

  1. Paper
  2. Dynamo: Amazonโ€™s Highly Available Key-value Store
  3. 4. System Architecture

4.1 System Interface

4.1 System Interface

  • Dynamo ๋Š” ๊ฐ„๋‹จํ•œ Key ๋ฅผ ํ†ตํ•ด ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋”ฐ๋ผ์„œ Interface ๋Š” get() ๊ณผ put() ๋‘๊ฐ€์ง€ ์ž‘์—…์„ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

get(key)

  • locates the object replicas associated with the key in the storage system and returns a single object or a list of objects with conflicting versions along with a context.

put(key)

  • determines where the replicas of the object should be placed based on the associated key, and writes the replicas to disk.

Context

  • ์‹œ์Šคํ…œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค.

  • ํ˜ธ์ถœ์ž์—๊ฒŒ ๋ถˆํˆฌ๋ช… ํ•œ ๊ฐ์ฒด์ด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • The context information is stored along with the object so that the system can verify the validity of the context object supplied in the put request.

Dynamo

  • Dynamo๋Š” ํ˜ธ์ถœ์ž๊ฐ€ ์ œ๊ณต ํ•œ ํ‚ค์™€ ๊ฐ์ฒด๋ฅผ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • It applies a MD5 hash on the key to generate a 128-bit identifier, which is used to determine the storage nodes that are responsible for serving the key.

Previous4. System ArchitectureNext4.2 Partitioning

Last updated 6 years ago

Was this helpful?