Modeling Concurrency Control as a Learnable Function

이 논문은 베이지안 최적화와 그래프 축소 탐색 알고리즘을 결합하여 다양한 워크로드에서 기존 최첨단 동시성 제어 알고리즘들보다 높은 처리량과 빠른 최적화 속도를 보이는 새로운 학습 기반 동시성 제어 알고리즘인 NeurCC 를 제안합니다.

Hexiang Pan, Shaofeng Cai, Tien Tuan Anh Dinh, Yuncheng Wu, Yeow Meng Chee, Gang Chen, Beng Chin Ooi

게시일 Wed, 11 Ma
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

🏢 비유: 거대한 은행의 창구 시스템

데이터베이스를 거대한 은행이라고 상상해 보세요. 수천 명의 고객 (거래) 이 동시에 창구에 와서 돈을 입금하거나 출금하려고 합니다.

  1. 문제점 (기존 방식의 한계):

    • 2PL (두 단계 잠금): 모든 고객이 줄을 서서 하나씩 처리해야 합니다. 안전하지만 너무 느립니다. (대기 시간이 길어짐)
    • OCC (낙관적 동시성 제어): "아마 충돌하지 않겠지?"라고 믿고 모두 동시에 작업을 하다가, 마지막에 "어? 내 돈이 바뀌었네?"라고 발견하면 처음부터 다시 시작합니다. (재시도 비용이 큼)
    • 기존의 지능형 시스템: "이 고객은 VIP 라서 2PL 을 쓰고, 저 고객은 일반이라서 OCC 를 쓰자"라고 미리 정해둔 규칙을 따릅니다. 하지만 고객의 성향이 갑자기 바뀌면 (예: 장날이 되어 갑자기 VIP 가 많아짐) 시스템이 적응하지 못해 엉망이 됩니다.
  2. NeurCC 의 등장:

    • NeurCC 는 **"상황을 보고 그 순간에 가장 좋은 방법을 스스로 배우는 스마트한 은행 관리자"**입니다.
    • 미리 정해진 규칙이 아니라, 실시간으로 상황을 관찰하고 "지금 이 순간에는 이렇게 처리하는 게 가장 빠르겠다"라고 스스로 결정합니다.

🧠 NeurCC 가 어떻게 작동할까요?

1. "상황을 읽는 눈" (State Collection)

NeurCC 는 은행의 상태를 실시간으로 파악합니다.

  • "지금 어떤 계좌를 많이 건드리고 있지?" (데이터의 뜨거움)
  • "누가 누구의 작업을 기다리고 있지?" (의존 관계)
  • "지금 거래가 몇 개나 진행 중이지?" (부하)
    이 정보를 바탕으로 **현재의 상황 (State)**을 파악합니다.

2. "스마트한 결정" (Learnable Function)

기존 시스템은 "A 상황이면 B 방법"이라고 딱 정해져 있었지만, NeurCC 는 A, B, C... 등 수많은 방법 중 하나를 섞어서 최적의 해결책을 만듭니다.

  • 비유: 요리사가 레시피를 따르는 게 아니라, 손님의 입맛 (부하) 을 보고 "오늘은 소금 1g, 후추 0.5g, 간장 2ml"처럼 정확한 양을 스스로 조절해서 최고의 요리를 만들어내는 것과 같습니다.
  • NeurCC 는 이 '조리법'을 **찾아보기 쉬운 표 (Lookup Table)**로 만들어서, 은행 관리자가 1 초도 걸리지 않게 바로 적용합니다.

3. "스스로 배우고 고치는 과정" (Optimization)

가장 놀라운 점은 배우는 속도가 매우 빠르다는 것입니다.

  • 기존 방식 (Polyjuice 등): 새로운 레시피를 찾기 위해 수백 번을 시식하고 실패하며 배우느라 몇 시간이 걸렸습니다.
  • NeurCC:
    1. 가상 시뮬레이션 (Bayesian Optimization): 실제 은행 문을 닫고 시식하는 대신, 컴퓨터 안에서 "이렇게 하면 어떨까?"라고 수천 번을 가상으로 시뮬레이션해 봅니다.
    2. 그래프 축소 (Graph Reduction): 불필요한 갈등 관계를 미리 찾아내어 "이건 충돌할 일이 없으니 무시하자"라고 줄여버립니다.
    • 결과: 기존에 몇 시간이 걸리던 학습이 몇 분 만에 끝납니다.

🚀 NeurCC 가 가져온 혁신

이 논문은 NeurCC 가 기존 최고의 시스템들보다 압도적으로 빠르고 똑똑하다는 것을 증명했습니다.

  1. 속도 (Throughput):

    • 같은 시간에 처리할 수 있는 거래량이 기존 시스템보다 최대 4 배 이상 늘어났습니다.
    • 비유: 기존 은행이 100 명을 처리하는 동안, NeurCC 은행은 400 명을 처리했습니다.
  2. 적응력 (Workload Drift):

    • 은행에 갑자기 VIP 가 몰리거나, 반대로 평범한 고객만 몰려도 순간적으로 대처합니다.
    • 비유: 비가 오면 우산을 들고, 해가 뜨면 선글라스를 끼는 것처럼, 날씨 (부하) 가 변하면 즉시 옷차림 (처리 방식) 을 바꿉니다.
  3. 학습 시간 (Optimization Time):

    • 새로운 환경에 적응하는 데 걸리는 시간이 기존 학습형 시스템보다 11 배나 빠릅니다.
    • 비유: 새 직장에 들어와서 11 개월 걸려서 적응하던 직원이, NeurCC 는 1 개월 만에 적응해 최고의 성과를 냅니다.

💡 한 줄 요약

"NeurCC 는 데이터베이스의 혼란을 미리 정해진 규칙으로 해결하는 게 아니라, 인공지능이 실시간으로 상황을 파악하고 스스로 최적의 해결책을 찾아내어, 은행 창구를 훨씬 더 빠르고 유연하게 운영하는 차세대 관리자입니다."

이 기술 덕분에 앞으로 우리가 사용하는 앱이나 서비스는 더 많은 사람이 동시에 사용해도 멈추지 않고, 훨씬 더 빠르게 작동하게 될 것입니다.