νΈλμμ μ΄λ? Transaction
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€κΈ° ν΄μ μννλ μμ μ λ¨μ
μμμ± (Atomicity) :νΈλμμ μ΄ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ λ°μλλκ°, μλλ©΄ μ ν λ°μλμ§ μμμΌ νλ€λ κ²
μΌκ΄μ± (Consistency) : νΈλμμ μ μμ μ²λ¦¬ κ²°κ³Όκ° νμ μΌκ΄μ±μ΄ μμ΄μΌ νλ€λ κ²
λ λ¦½μ± (Isolation) : λ μ΄μμ νΈλμμ μ΄ λμμ μ€νλμμ λ, μ΄λ€ νλμ νΈλμμ μ΄λΌλ λ€λ₯Έ νΈλμμ μ μ°μ°μ λΌμ΄λ€ μ μλ κ²
μ§μμ± (Durability) : νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λμμ κ²½μ°, κ²°κ³Όλ μꡬμ μΌλ‘ λ°μλμ΄μΌ νλ€λ κ²
λ³νμ μ΄λ? Concurrency Control
"λ³ν"μ λ§€μ° λΉ λ₯΄κ² μ¬λ¬ νΈλμμ μ¬μ΄λ₯Ό μ΄λνλ©΄μ μ‘°κΈμ© μ²λ¦¬λ₯Ό μννλ λ°©μ.
μ€μ λ‘λ νλ²μ νλ²μ νΈλμμ λ§ μννμ§λ§, λμμ μ¬λ¬ νΈλμμ μ μννλ κ²μ²λΌ 보μ΄λλ‘ νλ€.
λ³νμ μ΄μ λͺ©μ
- λ°μ΄ν°λ² μ΄μ€μ μΌκ΄μ± μ μ§
- λ°μ΄ν°λ² μ΄μ€ 곡μ μ΅λν
- μμ€ν νμ© μ΅λν
- μ¬μ©μ μλ΅μκ° μ΅μν
- λ¨μ μκ°λΉ νΈλμμ μ²λ¦¬ 건μ μ΅λν
λ³νμ μ΄ κΈ°λ²
1. λ‘νΉ (Locking)
νΈλμμ μ΄ μ κ·Όνλ €λ λ°μ΄ν°λ₯Ό λ€λ₯Έ νΈλμμ μ΄ μ κ·Όνμ§ λͺ»νλλ‘ μ κ·Έλ(Lock)νλ λ³ν μ μ΄ κΈ°λ²
μ΄λ₯Ό ν΅ν΄ μνΈλ°°μ κΈ°λ₯μ μ 곡νλ©° μ κΈμ μ€μ ν νΈλμμ μ΄ ν΄μ ν λκΉμ§ λ°μ΄ν°λ₯Ό λ μ μ μΌλ‘ μ¬μ©ν μ μμ
ν λ²μ λ‘νΉν μ μλ λ°μ΄ν° ν¬κΈ°λ₯Ό λ‘νΉλ¨μλΌκ³ νλ©° νλ/λ μ½λ/ν μ΄λΈ/νμΌ/λ°μ΄ν°λ² μ΄μ€ λͺ¨λ λ‘νΉ λ¨μκ° λ μ μμ
2. 2λ¨κ³ λ‘νΉ κ·μ½ (Two-Path Locking, 2PL)
κ° νΈλμμ μ lockκ³Ό unlock μμ²μ 2λ¨κ³λ‘ μ€μνλ λ°©μ
νμ₯λ¨κ³μ μΆμλ¨κ³λ‘ λλλ€.
μ΄λ₯Ό ν΅ν΄ μ§λ ¬μ±μ 보μ₯νλ λνμ μΈ λ‘νΉ κ·μ½μ΄μ§λ§ μ¬μ ν lockμ°μ°μΌλ‘ μΈν κ΅μ°©μνλ₯Ό μλ°©ν μ μλ€λ λ¨μ μμ
- νμ₯λ¨κ³(Growing phase): μλ‘μ΄ lock μ°μ°λ§μ μνν μ μκ³ , unlock μ°μ°μ μνν μ μλ λ¨κ³
- μΆμλ¨κ³(shrinking phase): unlock μ°μ°μ μνν μ μκ³ , lockμ°μ°μ μνν μ μλ λ¨κ³
3. νμμ€ν¬ν μμ (Timestamp ordering) κΈ°λ²
λΉμ§λ ¬ νΈλμμ μ νμμ€ν¬ν μμμ λ°λΌ μ§λ ¬ν μν€λ λ°©λ²
λ°μ΄ν°μ μ κ·Όνλ μκ°(timestamp)μ 미리 μ ν΄λμ΄ λΆμ¬λ μκ° μμλλ‘ λ°μ΄ν°μ μ κ·Όνλ©°, lockμ μ¬μ©νμ§ μκ³ μκ°μ λλ μ¬μ©νκΈ° λλ¬Έμ κ΅μ°©μνκ° λ°μνμ§ μλλ€.
νμ§λ§ rollback λ°μλ₯ μ΄ λκ³ , μ°μ 볡κ·λ₯Ό μ΄λν μ μλ λ¨μ μ΄ μμ
4. λκ΄μ λ³ν μ μ΄ (Optimistic Concurrency Control)
νΈλμμ μν λμμ μ΄λ ν κ²μ¬λ₯Ό νμ§ μκ³ , νΈλμμ μ΄ μ’ λ£λ μ΄νμ μΌκ΄μ μΌλ‘ κ²μ¬νλ λ°©μ
μν λμ€μλ νΈλμμ μ μν΄ μ μ§λλ λ°μ΄ν° νλͺ©λ€μ μ§μ μ¬λ³Έμ λν΄μλ§ κ°±μ νκ³ , νΈλμμ μ΄ μ’ λ£λκ³ λ νμ μ§λ ¬νλ₯Ό κ²μ¦νμ¬ κ²μ¦λλ©΄ λ°μ΄ν°λ² μ΄μ€μ νλ²μ λ°μνλ λ°©μμ
5. λ€μ€ λ²μ λ³ν μ μ΄ (Multi-version Concurrency Control)
ν λ°μ΄ν°μ λν΄ μ¬λ¬ λ²μ μ κ°μ μ μ§νλ©° κ΄λ¦¬νλ λ°©μ
νμμ€ν¬ν κ°λ μ μ΄μ©νλ©° λ€μ€ λ²μ νμ μ€ν¬ν κΈ°λ²μ΄λΌκ³ λ ν¨
μ¬λ¬ λ²μ μ νμμ€ν¬νλ₯Ό λΉκ΅νμ¬ μ€μΌμ₯΄μ μ§λ ¬ κ°λ₯μ±μ΄ 보μ₯λλ νμ μ€ν¬νλ₯Ό μ ννκ³ ,
μΆ©λμ΄ λ°μν κ²½μ° μ°μ 볡κ·κ° λ°μν μ μλ λ¨μ μ΄ μμ
'π₯°STUDY > μ κΉ μμ!' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Legacy BIOS vs UEFI (2) | 2024.10.22 |
---|---|
apiμ endpoint? (0) | 2024.07.17 |
ping dnsλ‘ κ°μ§ μμ λ (2) | 2024.06.13 |
νλΌλ―Έν°λ? (0) | 2024.03.22 |
IP staticμΌλ‘ κ³ μ νκΈ° (0) | 2024.02.19 |