Mutex를 넘어서: 마이크로서비스 환경에서의 분산 Lock과 Coordination
소개: 이중 지불 문제 E-commerce 플랫폼을 개발하다 보면 흔히 마주치는 문제가 있습니다. 예를 들어, 환불 로직이 고객, 판매자, 또는 자동화된 사기 탐지 시스템에 의해 동시에 트리거될 수 있습니다. 분산 시스템 내에서 적절한 메커니즘이 없으면 동일한 주문이 여러 번 환불됩니다. ...
소개: 이중 지불 문제 E-commerce 플랫폼을 개발하다 보면 흔히 마주치는 문제가 있습니다. 예를 들어, 환불 로직이 고객, 판매자, 또는 자동화된 사기 탐지 시스템에 의해 동시에 트리거될 수 있습니다. 분산 시스템 내에서 적절한 메커니즘이 없으면 동일한 주문이 여러 번 환불됩니다. ...
내 두 번째 GPU는 왜 느릴까? x86 I/O의 숨겨진 병목 들어가며 CPU는 NVMe 드라이브, 네트워크 카드, 혹은 GPU와 어떻게 대화를 나눌까요? 대부분의 소프트웨어 엔지니어는 드라이버나 커널 모듈이 알아서 해주겠거니 믿고, 그 밑바닥 메커니즘까지는 깊게 생각하지 않습니다. 하지만 성능 이슈를 디버깅하거나, 인터럽트 처리를 튜닝하거나, perf가 가리키는 병목 현상의 원인을 파악하려면 하드웨어 레벨에서 무슨 일이 벌어지는지 반드시 알아야 합니다. ...
PostgreSQL 통계의 사각지대를 드러낸 고객 클레임 모든 일은 고객의 클레임 한 건에서 시작되었습니다. 워크플로우의 핵심 부분이 응답하지 않는다는 내용이었죠. 로그를 까보니 병목 구간은 평소라면 아무 문제 없었을 평범한 쿼리였는데, 이 녀석이 갑자기 타임아웃을 내고 있었습니다. 원인을 파악하기 위해 우리는 PostgreSQL 쿼리 플래너(Query Planner)의 내부를 깊숙이 파고들어야 했습니다. 그리고 그곳에서 특정 데이터 분포 패턴이 통계 추정(statistics estimation)의 희귀한 버그를 건드리고 있다는 사실을 발견했습니다. ...