모든 키가 고정 크기이고 모든 값이 고정 된 시나리오 용으로 설계된 디스크 기반 B + 트리 구현을 제공하는 라이브러리가 있습니까? 크기도 (키와 같은 고정 크기 일 필요는없는)?고정 크기 키 및 값을 사용하는 디스크 기반 B + 트리 구현
참고 : 예, 개념 증명 RDBMS를 구현하고 싶습니다. 그리고 a very good reason이 있는데 왜 SQL DBMS를 사용하지 않는 것입니까? 참고 사항.
라이브러리의 언어를 특별히 신경 쓰지는 않지만 라이브러리의 기능과 관련된 몇 가지 요구 사항이 있습니다. 명확성을 위해 이러한 요구 사항은 C로 작성된 예제로 설명됩니다.
라이브러리는 필자 자신의 비교 기능을 사용할 수 있도록 충분히 유연해야합니다. 예를 들어
struct comparer
{
void * extra;
int (*function)(
void *, // closure over extra
char *, // 1st value to be compared
char * // 2nd value to be compared
);
};
조작해야 인덱스 파일은 모든 키에 대해 고정 된 길이의 모든 값에 대해 고정 된 길이, 키 비교 함수에 의해 정의 된 방법의 메커니즘. 예를 들어 :
struct index_spec
{
size_t keylen, vallen; // fixed lengths for keys and values
struct comparer comp; // comparison function for keys
};
그것은 도서관이 된 쿼리 및 업데이트 할 수있는 인덱스 및 쿼리 가능 하나이 예상 될 때 업데이트 할 수있는 인덱스를 사용하는 메커니즘 사이의 차이를 설립하는 경우 (필수는 아니지만) 정말 좋은 터치를 수 있지만 것 다른 방법은 아닙니다. 예를 들면 다음과 같습니다.