-
Notifications
You must be signed in to change notification settings - Fork 16
response 모듈
response 모듈은 io 모듈을 통해 socket read를 수행하고 그 결과를 객체로 반환하는 read 유틸리티 모듈입니다.
response 모듈의 진입점이 되는 함수로는 memcached_read_one_response(), memcached_response(), memcached_coll_response(), memcached_coll_smget_response() 함수가 있습니다.
ascii 프로토콜을 사용하여 textual_read_one_response() 함수를 호출합니다.
textual_read_one_response() 함수가 실패했을 경우 io reset으로 read 버퍼와 write 버퍼를 비우고 socket 연결을 해제합니다.
이 때 메모리가 부족하여 발생한 실패라면 delayed reconnect를, 그렇지 않다면 immediate reconnect를 수행합니다.
textual_read_one_response() 함수에서는 io 모듈의 memcached_io_readline() 함수를 호출합니다.
즉, read one response란 \n
으로 끝나는 한 라인을 읽어 객체로 반환하는 기능을 수행하는 것입니다.
arcus-memcached에서 반환하는 응답의 종류는 arcus-memcached 문서를 참고해주세요.
memcached_response() 함수는 while 문으로 memcached_read_one_response() 함수를 호출합니다.
즉, arcus-memcached의 응답이 여러 라인으로 구성되어 있을 때 사용됩니다.
기존 memcached에 포함되지 않은, collection 연산을 요청한 뒤 그 결과를 받아오기 위해 호출하는 함수입니다.
memcached_response() 함수와 유사하게 while 문으로 memcached_read_one_coll_response() 함수를 호출합니다.
memcached_read_one_coll_response() 함수는 내부적으로 textual_read_one_coll_response() 함수를 호출한다는 점을 제외하면 memcached_read_one_response() 함수와 같은 에러 처리 로직을 갖고 있습니다.
-
textual_read_one_coll_response() 함수 또한 textual_read_one_response() 함수와 유사하게 io 모듈의 memcached_io_readline() 함수를 호출합니다.
-
arcus-memcached에서 반환하는 collection 응답의 종류는 arcus-memcached 문서를 참고해주세요.
memcached_coll_smget_response() 함수는 b+tree 구조의 collection에서 Sort Merge and Get 연산을 요청했을 때의 결과를 받아오기 위해 호출하는 함수입니다.
memcached_response() 함수와 유사하게 while 문으로 memcached_read_one_coll_smget_response() 함수를 호출합니다.
memcached_read_one_coll_response() 함수는 내부적으로 textual_read_one_coll_smget_response() 함수를 호출한다는 점을 제외하면 memcached_read_one_response() 함수와 같은 에러 처리 로직을 갖고 있습니다.
-
textual_read_one_coll_smget_response() 함수 또한 textual_read_one_response() 함수와 유사하게 io 모듈의 memcached_io_readline() 함수를 호출합니다.
-
arcus-memcached에서 반환하는 b+tree collection의 SMGet 연산의 응답 종류는 arcus-memcached 문서의 b+tree 부분을 참고해주세요.