본문 바로가기
IT 지식/데이터베이스

PACELC 이론

by 다빈치코딩 2023. 12. 15.

목차

    반응형

    PACELC 이론은 앞서 설명했던 NoSQL과 CAP 이론을 이해한 뒤 읽어주시기 바랍니다. PACELC 이론은 CAP 이론을 보완하기 위해 등장한 이론 입니다. CA의 경우 네트워크 장애가 전혀 없다는 전제가 깔려 있습니다. 하지만 이것은 분산 환경에는 존재할 수 없습니다. 따라서 무조건 P는 전제로 깔고 가야 합니다. 그러다보니 CP, AP 중 하나를 선택해야 하는데 이것은 장애 상황만 고려한 것입니다. 정상적인 상황도 고려한 이론이 필요했습니다.

    PACELC 이론이란?

    PACELC 이론은 PAC + ELC 라고 생각하면 됩니다. 그럼 먼저 PAC에 대해 알아보겠습니다. PAC 는 CAP 이론의 약자와 같습니다. 약자들의 순서를 바꾼 이유는 Partition Tolerance(분할 허용성) 상황에서 Avalibility(가용성)을 선택할지, Consistency(일관성)을 선택할지를 말하는 것입니다. 이 상황은 CAP 이론에서 CP, AP를 고르는 것과 같습니다.

     

    PAC는 이렇게 네트워크가 분할된 상황을 생각하는 것입니다. 하지만 이렇게 분할된 상황은 그렇게 많지 않습니다. 분할된 상황보다 정상적으로 동작하는 상황이 훨씬 많습니다. 그래서 이렇게 정상적인 상황에서 어떤 것에 더 중점을 두느냐가 ELC 입니다. E는 Else의 약자로 분할 상황이 아닌(Else) 정상 상황을 뜻합니다. 이 때 시간 지연(Latency)을 먼저 고려할지, 일관성(Consistency)을 먼저 고려할지를 선택하는 것입니다.

    구현 예

    그럼 위에서 언급한 내용들에 대해 구체적인 예를 알아보겠습니다.

    P + C 상황

    P + C 상황은 장애가 발생하였을 때 일관성이 중요한 경우 입니다. 돈이 오가는 시스템이거나, 예매 사이트에 한 자리를 여러사람이 예매를 하면 안됩니다. 이렇게 일관성이 중요한 경우는 서버가 죽거나, 서비스가 안되더라도 일관성을 지켜야 합니다. 

    E + C, E + L

    정상상황에서 일관성이 중요할지, 속도가 중요할지에 따라 E + C와 E + L로 나누어 집니다. E + C는 정상 상황에서도 모든 노드들이 같은 메시지를 보장해야 합니다. 대표적으로 VoltDB, HBase 등이 있습니다. E + L 정상 상황에서는 시간이 더 중요한 요소입니다. PNUTS가 있습니다.

    P + A 상황

    장애가 발생하였을 때 가용 노드만 반영하였다가, 복구가 되었을 때 전체가 반영되는 시스템 입니다. 일관성이 약간 떨어져도 문제가 없는 경우에 사용합니다. 카카오톡 같이 메신져 프로그램에서 메시지를 주고 받는데 한쪽에 지연이 생겨서 메시지를 못받았다고 해서 큰 문제가 생기지는 않을 것입니다. 오히려 서버가 죽는게 더 난리가 날 것입니다. 이렇게 서비스의 유지가 더 중요한 경우에 사용합니다.

    E + C, E + L

    장애시에는 가용성을 더 중요하게 생각하고, 정상 상황에서 일관성을 중요시 하는 E + C에 속하는 시스템으로는 MongoDB가 있습니다. 정상 상황에서도 속도가 더 중요한 E + L 의 시스템으로는 Cassandra와 DynamoDB가 있습니다.

     

    반응형

    'IT 지식 > 데이터베이스' 카테고리의 다른 글

    릴레이션(Relation)  (1) 2023.12.19
    CAP 이론  (0) 2023.12.14
    NoSQL(Not Only SQL)  (0) 2023.12.13
    LOD(Linked Open Data)  (0) 2023.12.12
    데이터베이스 정규화  (0) 2023.12.10