Freeboard

[정보] Berkley DB 를 In-Memory로 사용하기

페이지 정보

작성자 최고관리자 댓글 0건 조회 1,255회 작성일 20-02-06 15:35

본문

버클리 DB의 유용함은 이루 말할 수 없을 정도입니다.

하지만 파일DB의 특성상 데이터가 커지면 그 속도가 느려질 수 밖에 없는데요

이번에 새로 출시된 4.7버전에서 In-Memory로 사용하는 기술이 추가됐습니다.

간단한 사용 방법은 아래와 같습니다.



#include "db.h"    // Berkley DB의 헤더파일

//#1 DB생성
db_create(&dbp, NULL, 0);

//#2 캐쉬 설정
dbp->set_cachesize(dbp, 0, 1*1024*1024, 1);
// 두번째인자는 캐쉬의 기가바이트 단위, 세번째 인자는 바이트 단위, 네번째 인자는 캐쉬 수입니다.
// 캐쉬수는 잘 모르겠고, 사용하시는 시스템의 메모리에서 적당한 크기로 캐쉬를 잡으시면 됩니다.
// 캐쉬가 너무 적어서 DB에서 그 양을 모두 차지했다면 파일DB때보다 더 않좋은 성능을 낼 수 있으니
// 가급적 넉넉한 용량을 설정하시기를 바랍니다.

//#3 DB열기
dbp->open(dbp, NULL, NULL, db_name, DB_BTREE, DB_CREATE, 0);
// 기존의 파일DB모드로 사용할때와 달라진것은 세번째와 네번째 인자입니다.
// 세번째는 DB파일의 이름이었는데 이제는 필요하지 않으므로 NULL로 사용합니다.
// 네번재는 logical-db-name 이라고 하는데 그냥 적당히 주면 될 듯 합니다.

//#4 DB닫기
dbp->close(dbp, 0);



아마 캐쉬에 있는 것을 파일로 쓰는 방법도 있을 듯 한데요.

필요하신 분은 docs 폴더를 참조하시기 바랍니다.

댓글목록

등록된 댓글이 없습니다.

Copyright ⓒ 2020 Natural Language Processing Lab. All rights reserved.