6μž₯


1. 단일 ν‚€-κ°’ μ €μž₯μ†Œ

  • κ°€μž₯ 직관적인 방법 = ν‚€-κ°’ 쌍 μ „λΆ€λ₯Ό λ©”λͺ¨λ¦¬μ— ν•΄μ‹œ ν…Œμ΄λΈ”λ‘œ μ €μž₯

  • λ©”λͺ¨λ¦¬κ°€ λΆ€μ‘±ν•  수 μžˆλ‹€.

    • 데이터 μ••μΆ•

    • 자주 μ“°μ΄λŠ” λ°μ΄ν„°λ§Œ λ©”λͺ¨λ¦¬μ— 두고 λ‚˜λ¨Έμ§€λŠ” λ””μŠ€ν¬μ— μ €μž₯

  • μ΄λ ‡κ²Œ ν•œλ‹€κ³  해도, ν•œ λŒ€ μ„œλ²„λ‘œλŠ” λΆ€μ‘±ν•œ λ•Œκ°€ μ˜¨λ‹€. λΆ„μ‚° ν‚€-κ°’ μ €μž₯μ†Œκ°€ ν•„μš”ν•˜λ‹€.

2. λΆ„μ‚° ν‚€-κ°’ μ €μž₯μ†Œ

  • λΆ„μ‚° ν•΄μ‹œ ν…Œμ΄λΈ”μ΄λΌκ³ λ„ λΆˆλ¦°λ‹€.

  • λΆ„μ‚° μ‹œμŠ€ν…œμ„ 섀계할 λ•ŒλŠ” CAP 정리λ₯Ό μ΄ν•΄ν•΄μ•Όν•œλ‹€.

    • 일관성, κ°€μš©μ„±, νŒŒν‹°μ…˜ tolerance μ„Έ κ°€μ§€λ₯Ό λͺ¨λ‘ λ§Œμ‘±ν•˜λŠ” λΆ„μ‚° μ‹œμŠ€ν…œμ€ λΆˆκ°€λŠ₯ν•˜λ‹€.

      • 일관성: μ–΄λ–€ λ…Έλ“œμ— μ ‘μ†ν–ˆλŠλƒμ— 관계 없이 같은 데이터λ₯Ό λ°›μ•„μ•Ό ν•œλ‹€.

      • κ°€μš©μ„±: 일뢀 λ…Έλ“œμ— μž₯μ• κ°€ λ°œμƒν•˜λ”λΌλ„ 응닡을 λ°›μ•„μ•Ό ν•œλ‹€.

      • νŒŒν‹°μ…˜ tolerance: λ„€νŠΈμ›Œν¬μ— νŒŒν‹°μ…˜μ΄ 생기더라도 μ‹œμŠ€ν…œμ€ 계속 μž‘λ™ν•΄μ•Ό ν•œλ‹€.

    • 사싀상 νŒŒν‹°μ…˜ toleranceλŠ” ν•„μˆ˜ μ‘°κ±΄μ΄λΌμ„œ, CP ν˜Ήμ€ AP μ‹œμŠ€ν…œμ΄μ–΄μ•Ό ν•œλ‹€.

3. μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈ

  • 데이터 νŒŒν‹°μ…˜

    • μ•ˆμ • ν•΄μ‹œλ₯Ό μ΄μš©ν•΄μ„œ 데이터λ₯Ό νŒŒν‹°μ…˜ν•œλ‹€

  • 데이터 닀쀑화

    • 데이터λ₯Ό N개 μ„œλ²„μ— λΉ„λ™κΈ°μ μœΌλ‘œ λ³΅μ œν•˜λŠ” 것

  • 데이터 일관성

    • μ •μ‘±μˆ˜ ν•©μ˜ ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•œλ‹€.

      • N = 사본 개수

      • W = μ“°κΈ° 연산에 λŒ€ν•œ μ •μ‘±μˆ˜

      • R = 읽기 연산에 λŒ€ν•œ μ •μ‘±μˆ˜

    • N,W,R에 λ”°λ₯Έ μ‹œμŠ€ν…œ νŠΉμ§•

      • R = 1, W = N β†’ λΉ λ₯Έ 읽기 연산에 μ΅œμ ν™”λœ μ‹œμŠ€ν…œ

      • W = 1, R = N β†’ λΉ λ₯Έ μ“°κΈ° 연산에 μ΅œμ ν™”λœ μ‹œμŠ€ν…œ

      • W + R > N β†’ κ°•ν•œ 일관성이 보μž₯됨

      • W + R ≀ N β†’ κ°•ν•œ 일관성이 보μž₯λ˜μ§€ μ•ŠμŒ

  • 일관성 λͺ¨λΈ

    • 일관성 μˆ˜μ€€

      • κ°•ν•œ 일관성 - λͺ¨λ“  읽기 연산은 μ΅œκ·Όμ— κ°±μ‹ λœ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€.

        • λͺ¨λ“  사본에 ν˜„μž¬ μ“°κΈ° μ—°μ‚°μ˜ κ²°κ³Όκ°€ 반영될 λ•ŒκΉŒμ§€ κΈ°λ‹¬μ•Όν•˜λŠ”λ°, κ³ κ°€μš©μ„± μ‹œμŠ€ν…œμ—λŠ” μ ν•©ν•˜μ§€ μ•Šλ‹€.

        • λ‹€μ΄λ‚˜λͺ¨, μΉ΄μ‚°λ“œλΌλŠ” μ΅œμ’… 일관성 λͺ¨λΈμ„ νƒν•œλ‹€.

      • μ•½ν•œ 일관성 - 읽기 연산이 과거의 데이터λ₯Ό λ°˜ν™˜ν•  μˆ˜λ„ μžˆλ‹€.

      • μ΅œμ’… 일관성 - μ•½ν•œ μΌκ΄€μ„±μ˜ ν•œ ν˜•νƒœλ‘œ, κ°±μ‹  κ²°κ³Όκ°€ κ²°κ΅­μ—λŠ” λͺ¨λ“  사본에 λ°˜μ˜λ˜λŠ” λͺ¨λΈ

    • 일관성 ν•΄μ†Œ 기법

      • 데이터 버저닝

        • 벑터 μ‹œκ³„λ₯Ό ν†΅ν•΄μ„œ μ–΄λ–€ 데이터가 졜근 버전인지 νŒλ‹¨ν•œλ‹€.

        • 단점

          • ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 좩돌 감지 및 ν•΄μ†Œ 둜직이 ν•„μš”ν•΄μ„œ ν΄λΌμ΄μ–ΈνŠΈ κ΅¬ν˜„μ΄ λ³΅μž‘ν•΄μ§„λ‹€.

          • [μ„œλ²„: 버전] μˆœμ„œμŒμ΄ ꡉμž₯히 크게 λŠ˜μ–΄λ‚œλ‹€. κ·Έλž˜μ„œ 였래된 μˆœμ„œμŒμ€ μ œκ±°ν•˜λ„λ‘ ν•΄μ•Όν•œλ‹€.

  • μž₯μ•  처리

    • κ°€μ‹­ ν”„λ‘œν† μ½œ 같은 λΆ„μ‚°ν˜• μž₯μ•  감지 μ†”λ£¨μ…˜μ„ 채택해야 ν•œλ‹€.

      • 일정 μ‹œκ°„λ™μ•ˆ μ–΄λ–€ λ©€λ²„μ˜ 박동 μΉ΄μš°ν„° 값이 κ°±μ‹ λ˜μ§€ μ•ŠμœΌλ©΄ ν•΄λ‹Ή λ©€λ²„λŠ” μž₯애인 κ²ƒμœΌλ‘œ κ°„μ£Όν•œλ‹€.

    • μΌμ‹œμ  μž₯μ• μ²˜λ¦¬, 영ꡬ μž₯μ• μ²˜λ¦¬ 방법이 μžˆλ‹€.

      • μΌμ‹œμ  μž₯μ•  처리λ₯Ό μœ„ν•΄, λ‹¨μ„œ ν›„ μž„μ‹œ μœ„νƒ 기법(hinted handoff)은 μž„μ‹œλ‘œ μ“°κΈ° 연산을 μ²˜λ¦¬ν•œ ν›„ λ‹¨μ„œλ₯Ό 남겨둔닀.

      • 영ꡬ μž₯μ•  μ²˜λ¦¬λŠ” 머클 트리(ν•΄μ‹œ 트리)λ₯Ό μ΄μš©ν•΄μ„œ μ–΄λ–€ 버킷이 λ‹€λ₯Έμ§€ λΉ„κ΅ν•΄μ„œ ν•΄λ‹Ή λ²„ν‚·λ§Œ λ™κΈ°ν™”ν•œλ‹€.

    • 데이터 μ„Όν„° μž₯μ•  처리

  • μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨

    • μ•žμ„œ λ§ν–ˆλ˜ λ‹€μ–‘ν•œ 기술적 고렀사항듀을 μ΄μš©ν•œλ‹€.

    • p111-113

4. μš”μ•½

  • λŒ€κ·œλͺ¨ 데이터 μ €μž₯

    • μ•ˆμ • ν•΄μ‹œλ₯Ό μ‚¬μš©ν•΄ μ„œλ²„λ“€μ— λΆ€ν•˜ λΆ„μ‚°

  • 읽기 연산에 λŒ€ν•œ 높은 κ°€μš©μ„± 보μž₯

    • 데이터λ₯Ό μ—¬λŸ¬ 데이터센터에 닀쀑화

  • μ“°κΈ° 연산에 λŒ€ν•œ 높은 κ°€μš©μ„± 보μž₯

  • 버저닝 및 벑터 μ‹œκ³„λ₯Ό μ‚¬μš©ν•œ 좩돌 ν•΄μ†Œ

  • 데이터 νŒŒν‹°μ…˜

    • μ•ˆμ • ν•΄μ‹œ

  • 점진적 규λͺ¨ ν™•μž₯μ„±

    • μ•ˆμ • ν•΄μ‹œ

  • λ‹€μ–‘μ„±(heterogeneity)

    • μ•ˆμ • ν•΄μ‹œ

  • 쑰절 κ°€λŠ₯ν•œ 데이터 일관성

    • μ •μ‘±μˆ˜ ν•©μ˜(quorum consensus)

  • μΌμ‹œμ  μž₯μ•  처리

    • λŠμŠ¨ν•œ μ •μ‘±μˆ˜ ν”„λ‘œν† μ½œ(sloopy quorum)κ³Ό λ‹¨μ„œ ν›„ μž„μ‹œ μœ„νƒ(hinted handoff)

  • 영ꡬ적 μž₯μ•  처리

    • 데이터λ₯Ό μ—¬λŸ¬ 데이터센터에 닀쀑화

  • 데이터 μ„Όν„° μž₯μ•  λŒ€μ‘

    • μ—¬λŸ¬ 데이터 센터에 걸친 데이터 닀쀑화

Last updated