굉장히 단어가 비슷해서 착각할 수 있지만 엄연히 다른 용어라고 보는 게 맞을 것이다. 구글에서 비교해 봤을때 replica는 [레플리카]로 번역되고, replication은 [복제]로 번역되게 된다. 굳이 '레플리카'라는 단어로 번역되는건 한국에서 대체할 만한 단어가 없기 때문이 아닐까 싶은데, 어쨌든 레플리카는 DBMS를 얘기할 때 일반적인 replication과는 다른 개념으로 사용되는 경우가 많다. replication은 완전한 복제는 아니며 Active-Standby 환경에서 주로 사용된다. CDC를 아시는지? 보통은 타겟의 로그파일을 읽어서 데이터를 긁어오는 형식인데, CDC가 꽤나 대표적인 replication에 해당한다. 상대방이 commit을 수행하고 그 내용을 Log(redo log)에 ..
일반적으로 two-phase commit(2pc)는 소프트웨어 개발론에 주로 나오는 내용이지만 오늘은 DB와 관련돼서 얘기를 해볼 생각이다. DB의 클러스터링 기법에 주로 사용되는 편인데 아마 mysql NDB cluster 라는 놈이 2pc를 쓰고 있는 것으로 안다. (국내는 GOLDILOCKS라는 놈이 있다.) 오라클은 RAC니까 안쓰겠지? 라고 생각했는데 진짜로 생각해 보니까 2pc를 쓸거 같아서 찾아보니 진짜로 쓴다고 함. Active-Active 시스템 하에서 트랜잭션이 서로 발생할 경우 일반적인 Standalone과는 다른 트랜잭션 제어 방식이 필요하게 된다. 네트워크 지연이나 데이터 반영 속도 등등 노드간의 차이로 인해 트랜잭션의 시간선이 어긋날 경우가 상당히 많기 때문. 이건 뭐 대부분이 ..