분류

멤캐시드 및 클라이언트: 데이터베이스 UDF

노스케일의 패트릭 갤브레이스는 수년 동안 노스케일과 함께 MySQL, 그리고 이제 Drizzle, 멤캐시드용 UDF. 지난주 Patrick은 최신 릴리스인 1.1 버전에서 한 단계 더 나아가 '확인 및 설정'(일명 CAS) 작업을 지원하게 되었습니다.

사용자 정의 함수는 다양한 데이터베이스에 사용할 수 있습니다. 이를 통해 일종의 저장 프로시저 언어 또는 기타 트리거를 사용하여 DB로 가져온 다른 코드를 실행할 수 있습니다. 멤캐시드 UDF의 경우, 이는 저장 프로시저에 멤캐시드 연산을 호출할 수 있는 기능을 부여하는 것을 의미합니다.

여기서 일반적인 아이디어는 매우 간단합니다. 대부분의 애플리케이션은 데이터베이스로 시작하지만 웹 서비스나 플랫 파일을 사용할 수도 있습니다. 데이터가 유지되는 위치에 관계없이 캐시를 항상 최신 상태로 유지하려면 SoR(시스템 오브 레코드)에서 레코드를 업데이트할 때마다 무효화(즉, 삭제)를 캐시에 전파하는 매우 간단한 접근 방식이 있습니다. 단일 또는 샤딩된 데이터베이스는 앱 데이터를 관리하는 데 매우 널리 사용되므로 이 패턴에서 중요한 역할을 합니다. 아래 다이어그램에서 애플리케이션이 사용자 상호 작용을 기반으로 레코드를 업데이트해야 하는 경우(#1), 데이터베이스는 UDF를 활성화하고 그 방법을 알려주면 캐시에서 해당 데이터를 무효화할 수 있습니다(#2).

여러 작업이 애플리케이션에서 트랜잭션으로 적용되지 않을 수 있으므로 모든 경우에 적용되는 것은 아니지만, 설정이 간단하고 많은 앱에서 작동합니다.

Patrick의 우수한 MySQL 및 Drizzle용 UDF 외에도 다음과 같은 기능이 있습니다. PostgreSQL용 pgmemcache의 프로토타입과 아파치 더비용 UDF (일명 JavaDB).

아, 그리고 Patrick이 MySQL/Drizzle UDF에 추가한 새로운 CAS 기능에 대해서도 말씀드리겠습니다. 대부분의 멤캐시드 사용자는 작은 작업인 get과 set부터 시작합니다. 그런 다음 add와 같은 연산에 대한 유용성을 찾습니다. 그리고 얼마 지나지 않아 항목을 업데이트하려는 분산 클라이언트를 처리하는 방법을 고민하게 됩니다. 높은 수준에서 보면 "확인 및 설정"(일명 CAS) 연산이 바로 여기에 해당합니다. 원본을 살펴보세요. protocol.txt (또는 바이너리 프로토콜 문서)를 참조하여 사용 방법을 알아보세요. 특히 CAS를 추가하면 분산 시스템에서 여러 시스템이 항목을 업데이트할 때 자주 필요한 잠금 없는 알고리즘을 구현할 수 있습니다.

다음 목록에 참여하세요. memcached.org 에서 자세한 정보를 확인하세요.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 제니퍼 가르시아

의 선임 웹 관리자입니다. 웹 사이트 관리자로서 디자인, 구현, 콘텐츠 및 성능을 포함한 웹 사이트 자산에 대한 전반적인 책임을 맡고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.