Open jhpark816 opened 3 years ago
2개 이상의 config file 설정이 존재하는 경우도 고려해 주세요. engine 일부 설정은 file1으로 설정하고, engine 다른(예, replication) 설정은 file2로 설정하는 경우를 말합니다.
엔진 설정이 (1) 일반 구동 옵션과 (2) 엔진 전용 설정 옵션 (-e
)으로 모두 제공되는 경우,
엔진 전용 설정 옵션으로 지정한 설정이 최종 반영되도록 합니다.
엔진 설정 파일로 구동한 경우에 중복 설정 처리 (https://github.com/naver/arcus-memcached/issues/454) 이슈를 참고 바랍니다.
"engine 설정에 관한 구동 옵션은 engine 설정으로 이전"에 관한 설명입니다.
-e
옵션으로 설정하도록 합니다.
현재 memcached core에서 보관중인 engine 설정은 아래와 같습니다. | settings 구조체(기본값) | engine_config 설정 시 | 구동 옵션 |
---|---|---|---|
settings.maxbytes (64 * 64 * 1024) |
cache_size= |
-m |
|
settings.evict_to_free (1) |
eviction= |
-M |
|
settings.sticky_limit (0) |
sticky_limit= |
-g |
|
settings.factor (1.25) |
factor= |
-f |
|
settings.chunk_size (48) |
chunk_size= |
-n |
|
settings.prefix_delimiter (':') |
prefix_delimiter= |
-D |
|
settings.max_list_size (50000) |
max_list_size= |
환경변수 | |
settings.max_set_size (50000) |
max_list_size= |
환경변수 | |
settings.max_map_size (50000) |
max_list_size= |
환경변수 | |
settings.max_btree_size (50000) |
max_list_size= |
환경변수 |
현재 engine_config에 대한 stats 명령 사용 시 settings에서 값을 가져옵니다.
APPEND_STAT("sticky_limit", "%llu", (unsigned long long)settings.sticky_limit);
따라서 engine_config이 변경되는 경우 settings의 값을 함께 변경해 주어야 합니다. https://github.com/naver/arcus-memcached/blob/acdd417d3247d50da5816aec744ba01d237b2324/memcached.c#L8838-L8843 https://github.com/naver/arcus-memcached/blob/acdd417d3247d50da5816aec744ba01d237b2324/memcached.c#L15039-L15053
engine 설정은 settings에서 분리하고, get_config api를 활용해 engine config를 직접 얻어오는 형태로 변경하겠습니다.
engine config 관련한 잔여 작업으로 아래와 같이 정리합니다.