Skip to content

Server List에 서버를 추가하는 함수들

Yeoncheol Kim edited this page Jan 19, 2024 · 3 revisions
  • 서버 리스트 구성 시 해당 리스트 내에 서버를 추가하는 함수들에 대한 정리입니다.

  • 크게 3가지(memcached_server_list_append, server_add, memcached_server_push)로 분류됩니다.

  • 각 함수들의 간단 정리표

memcached_server_list_append server_add memcached_server_push
전역성 O O O
추가 가능한 서버 개수 1 1 n
Distribution Hash
재생성 여부
X O O
Ketama.weighted
플래그 설정
X O O
활용 목적
(개인 의견)
단순 서버 리스트만 구성 이미 설정 및 구성이 완료된
서버에 새로운 서버 추가 목적
이미 설정 및 구성이 완료된
서버에 새로운 서버 추가 목적

memcached_server_list_append

memcached_server_list_st 
memcached_server_list_append_with_weight(memcached_server_list_st ptr,
                                         const char *hostname, in_port_t port,
                                         uint32_t weight,
                                         memcached_return_t *error)
  • 서버 리스트를 인자로 받아 realloc 하여, 해당 리스트에 서버를 추가
  • 사용자 접근 가능 (외부 함수)
  • 하나의 서버를 서버 리스트에 추가
  • server_add 와 전체적인 동작 방식은 유사
  • 리턴값
    • 성공 : 해당 서버가 추가된 서버 리스트 주소
    • 실패 : NULL

server_add

memcached_return_t memcached_server_add_with_weight(memcached_st *ptr,
                                                    const char *hostname,
                                                    in_port_t port,
                                                    uint32_t weight)
  • 서버 설정 정보(서버 리스트, Distribution Hash, 프로토콜 등등)가 들어있는 구조체를 인자로 받아 해당 구조체 내 서버 리스트에서 realloc을 통해 서버를 추가
    • 이미 구성된 정보에 서버가 추가되었으므로 Distribution Hash를 재구성합니다.
  • 사용자 접근 가능 (외부 함수)
  • 하나의 서버를 서버 리스트에 추가
  • memcached_server_list_append 와 전체적인 동작 방식은 유사
  • 리턴값
    • 성공 : MEMCACHED_SUCCESS
    • 실패 : 원인을 알려주는 Error Number

memcached_server_push

memcached_return_t memcached_server_push_with_count(memcached_st *ptr,
                                                    const memcached_server_list_st list,
                                                    uint32_t count)

memcached_return_t memcached_server_push_with_serverinfo(memcached_st *ptr,
                                                         memcached_server_info_st *serverinfo,
                                                         uint32_t servercount)
  • 서버 설정 정보(서버 리스트, Distribution Hash, 프로토콜 등등)가 들어있는 구조체를 인자로 받아 해당 구조체 내 서버 리스트에서 realloc을 통해 다수개의 서버를 추가
    • 이미 구성된 정보에 서버가 추가되었으므로 Distribution Hash를 재구성합니다.
  • 사용자 접근 가능 (외부 함수)
  • 다수 개의 서버를 서버 리스트에 추가
  • 리턴값
    • 성공 : MEMCACHED_SUCCESS
    • 실패 : 원인을 알려주는 Error Number