Skip to content

libmemcached에서의 0.53 버전까지의 Distribution

Yeoncheol Kim edited this page Dec 22, 2023 · 3 revisions

Distribution type 변천사

  • v0.13
    • distribution type 등장
      • MEMCACHED_DISTRIBUTION_MODULA
      • MEMCACHED_DISTRIBUTION_CONSISTENT
        • consistent hash 구성 시 wheel 이라는 자료구조를 사용
        • wheel : 배열에서 서버마다 특정 칸만큼 순서대로 반복하여 포인트를 가짐
          • ex) 3개의 서버(0, 1, 2)가 3개의 칸마다 포인트를 가지는 경우
          • 0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 ...
  • v0.20 : KETAMA, WHEEL type 추가
    • MEMCACHED_DISTRIBUTION_CONSISTENT_WHEEL
      • 이전 버전의 MEMCACHED_DISTRIBUTION_CONSISTENT의 동작 방식
    • MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA
      • v0.53 의 weight 없는 KETAMA와 유사
      • MEMCACHED_DISTRIBUTION_CONSISTENT 의 동작 방식을 KETAMA로 변경
  • v0.23 : WHEEL type 제거 및 KETAMA 방식에 weight 기능 추가
  • v0.25 : RANDOM type 추가
    • MEMCACHED_DISTRIBUTION_RANDOM
  • v0.35 : KETAMA_SPY type 추가
    • MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY
  • v0.51 : CONSISTENT_WEIGHTED, VIRTUAL_BUCKET type 추가
    • MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED
    • MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKET

BEHAVIOR_KETAMA vs BEHAVIOR_KETAMA_WEIGHT

MEMCACHED_BEHAVIOR_KETAMA

  • memcached_behavior_set(ptr, MEMCACHED_BEHAVIOR_KETAMA, true / false)
    • ~ v0.15 : 별다른 기능 X
    • v0.20 ~ :
      • true : distribution type을 KETAMA로 변경
      • false : distribution type을 MODULA로 변경
      • consistent hash 재구성

MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED

  • memcached_behavior_set(ptr, MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED, true / false)
    • v0.23 ~
      • 무조건 distribution type을 KETAMA로 변경
      • weight 값(true / false)만 변경
      • consistent hash 재구성