2011-01-12 4 views

답변

10

David Segleau, Berkeley DB의 제품 관리 담당 이사. 일반적으로 사람들은 Berkeley DB forums에 질문을하는 것이 좋습니다. 활발한 버클리 DB 응용 프로그램 개발자 커뮤니티가 있습니다.

예, Berkeley DB (C의 원래 제품)에는 B-Tree, Hash, Queue 및 Recno 액세스 방법이 있습니다. Berkeley DB Java Edition은 B-Tree 만 지원합니다. 가장 큰 이유는 약 99 %의 사용자가 B-Tree를 사용하여 스토리지를 사용하고 Hash는 일부 애플리케이션에서만 사용하기 때문입니다. 이 주제에

몇 가지 유용한 기술 가벼운 음식 :

  1. 해시는 거대한 데이터 세트 및 사용 가능한 메모리 캐시의 매우 작은 양을 가지고 사람들에게 특히 유용하다. 이 특정 시나리오에서 B-Tree는 캐시에 맞지 않는 내부 인덱스 페이지를 페치하고 레코드를 페치하기 위해 다중 I/O를 요구할 수 있습니다. 해시는 일반적으로 단일 I/O로 데이터 레코드에 액세스 할 수 있습니다.
  2. 해시 인덱스에 암시 된 순서가 없으므로 데이터에 순차적으로 액세스하거나 중복을 허용하려면 해시는 일반적으로 도움이되지 않습니다.
  3. 대부분의 응용 프로그램은 가장 자주 액세스되는 데이터 레코드뿐만 아니라 B ​​트리의 내부 노드를 보유하기에 충분한 메모리 캐시를 사용할 수 있습니다. 훨씬 더 일반적인 시나리오에서 B-tree와 Hash는 거의 동일한 성능을 보입니다.
  4. 지난 해 버클리 DB 자바 에디션 팀은 매우 큰 데이터 세트 (250GB - 낮은 TB 범위)를 사용하는 고객 및 애플리케이션 개발자와 긴밀히 협력 해 왔습니다. 특히 캐시 효율성을 극대화하고 캐시 퇴거 알고리즘을 개선하며 Java 가비지 수집의 영향을 최소화하는 방법에 중점을 두었습니다. 우리는 BDB JE 4.1이 캐시 관리 및 효율성 측면에서 특히 사용 가능한 캐시를 초과하는 데이터 세트에서 훨씬 뛰어나다는 것을 발견했습니다. 이 변경 사항에 대한 자세한 내용은 Berkeley DB 다운로드 페이지의 BDB JE 4.1.7 변경 로그를 참조하십시오.
  5. Berkeley DB의 해시 대 B 트리 액세스 방법에 대한 자세한 내용은 BDB 참조 설명서 (액세스 방법 선택)의 2 장을 참조하십시오.

이 정보가 도움이되기를 바랍니다.

감사합니다,

데이브

+0

데이브, recno는 어떨까요? – bmargulies

+0

Recno는 단순히 숫자 키 값을 가진 btree입니다. Recno에는 Logical Record Numbered 키의 동작과 관련된 특정 속성이 있습니다. 자세한 내용은 http://bit.ly/f7Kh2P에서 참조 안내서를 참조하십시오. 앞서 언급했듯이 대부분의 사람들은 B- 트리를 사용합니다.Recno, Hash 또는 Queue를 사용하는 데 관심이 있다면 Java API를 통해 Berkeley DB 제품을 사용하는 것이 가장 좋습니다. – dsegleau

0

은 또한 같은 일을 이해하려고 노력했다. 내가 (1) 시나리오에서 작업 할 때 berkeley db je에서 해시를 사용할 가능성에 대해서도 고맙게 생각합니다. 따라서 메모리 크기와 데이터 세트 크기 사이의 특정 비율로 말입니다.

여기에 대한 옵션이 있습니까? 앞으로 이걸 되돌릴 계획입니까? oracle.com의 berkeley db je 사이트에서는 액세스 시간이 데이터 세트 크기와 별개로 일정하다고 말합니다. BTrees를 사용하면이 주장이 잘못되었습니다.

+0

Recno, Hash 또는 Queue를 사용하고자한다면 Java API를 통해 Berkeley DB 제품을 사용하는 것이 가장 좋습니다. Berkeley DB Java Edition은 HASH 액세스 방법을 지원하지 않았습니다. 현재 BDB JE에 추가 ​​할 계획은 없습니다. 오해의 소지가있는 텍스트가 사이트에있는 경우 사과드립니다. 분명히 액세스 시간은 B 트리의 깊이와 필요한 I/O 수에 따라 다릅니다. 색인 및 데이터가 이미 메모리에 있으면 B- 트리의 깊이는 거의 측정 할 수없는 영향을 미칩니다. – dsegleau

+0

다른 제품 및 성능 관련 질문은 OTN의 Berkeley DB 포럼에서도 문의 할 수 있습니다. BDB Java Edition 포럼은 http://bit.ly/e1AYFi에서 찾을 수 있습니다. – dsegleau