2012-08-09 4 views
0

키당 2 개의 값을 저장할 수있는 kyoto cabinet의 단순성과 속도로 NoSQL 데이터베이스를 찾고 있습니다. 또한 Java API를 사용합니다. 나는 http://nosql-database.org/을 보았지만 약간의 선택에 압도되어서 여기 사람들이 내 조언을 해줄 수 있기를 바랐다. (오픈 소스는 내 응용 프로그램이 오픈 소스이기도하다.)키/값/값이있는 NoSQL

내가 달성하고자하는 것은 데이터 값 "+ 해시 키를 사용하여 카운트 값을 저장하는 것입니다. 는 정교하게하려면 :

  • 나는 인덱스 값 (0 ... 무한) 해시에 각 인덱스지도와 테이블이있다. 여러 개의 인덱스가 동일한 해시에 매핑 될 수 있습니다.
  • 그러면 키 (인덱스 테이블과 동일한 해시)가 데이터 집합으로 매핑됩니다.
  • 이제 해시/데이터를 버릴 수 있는지 확인하십시오. 쌍, 나는 얼마나 많은 인덱스 값이 해시에 매핑되는지를 결정해야한다. 인덱스/해시 테이블을 반복하는 데 너무 오래 걸리므로 (수백만 개의 레코드 및 교토 캐비닛에 직접 명령이 없음) 이제는 각 해시가 사용 카운트를 나타내는 값으로 매핑되는 별도의 테이블을 갖습니다.
  • 해시/데이터 테이블에이 개수를 저장하여 다른 검색을 방지하십시오 (디스크 검색을 유발 함)

어떤 제안이 있습니까?

+0

복잡한 키 (예 :' "my_key_1_count_10"')를 만들고 키/값 데이터베이스에 저장하고 싶지 않은 이유는 무엇입니까? –

+0

인덱스/해시 쌍이 자주 추가되고 제거 될 때 해당 개수 필드를 자주 업데이트해야하기 때문에 –

답변

1

0x69의 아이디어는 올바른 방향으로 나를 가리 킵니다.

이제 내 해시 + 개수와 해시 + 데이터는 동일한 테이블에 있지만 카운트 해시에는 'c'가 붙고 데이터 -에는 'd'가 붙습니다.

이 방법을 사용하면 교토 캐비닛을 사용할 수있었습니다. KC는 저널링 구현의 모든 번거 로움을 해결하는 트랜잭션 지원 기능을 제공합니다.