더북(TheBook)

키-값 데이터베이스에서 값의 정의는 매우 모호해서 대부분의 경우 별 쓸모가 없다. 값은 객체로, 보통은 바이트byte의 집합체며 키와 연관되어 있다. 값의 데이터 타입에는 정수, 실수, 문자열, BLOB과 JSON 객체, 이미지, 오디오 같은 비정형 구조체를 쓸 수 있다. 바이트 나열로 표현될 수 있는 다른 데이터 타입도 쓸 수 있다.

Note 키-값 데이터베이스가 서로 다른 방법으로 구현될 때 값에 대한 제약도 서로 다르다는 점을 이해하는 것이 중요하다. 대부분의 키-값 데이터베이스는 값의 크기에 제한을 두고 있다. 예를 들어 Redis는 문자열 값이 512MB까지 길어질 수 있다. ACID 트랜잭션을 지원하는 키-값 데이터베이스로 알려진 FoundationDB(foundationdb.com)는 값의 최대 크기가 100,000바이트다.

키-값을 구현하는 것은 값에 대한 작업 유형에 따라 달라질 것이다. 최소한 키-값 데이터베이스라면 값을 읽고 설정하는 기능은 지원해야 한다. 다른 키-값 데이터베이스들은 기존 값에 문자열을 덧붙이거나 무작위로 한 문자열 일부에 접근하는 것과 같은 추가 기능도 지원한다. 이런 기능은 값을 가져와 클라이언트 애플리케이션에 전달하고, 클라이언트 애플리케이션에서 가져온 값에 문자열을 덧붙인 후 다시 이 값을 데이터베이스에 갱신하는 것보다는 훨씬 효율적이다.

Note 확장 기능의 또 다른 예는 Riak(www.basho.com)에서 찾아볼 수 있다. 값에 대해 풀 텍스트 인덱싱을 지원하고 있어 검색 질의를 사용해 키와 값을 찾는 데 API를 사용할 수 있다.

키와 값은 키-값 데이터베이스를 구성하는 기본 요소이자 출발점이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.