우리는 OrientDB 그래프 데이터베이스와 Java API를 사용하여 데이터베이스에 대용량 삽입을 수행하는 일일 스케줄러를 가지고 있습니다. 이러한 이유로 삽입을 수행 할 때 Java 코드에서 WAL을 사용하지 않으려 고합니다. 그렇지 않으면 WAL 파일의 크기가 매우 짧아집니다.Java API를 통해 OrientDB에서 WAL 사용 안 함
일부 OrientDB 구성을 편집하여 WAL을 영구적으로 비활성화 할 수 있음을 이미 알고 있지만 선택하지 않으려합니다.
우리는 다음과 같은 솔루션을 제안 OrientDB의 GitHub의 저장소에 폐쇄 문제가 있음을 보았다 :
private void reopenWithWALSetTo(final boolean useWAL) {
db.getStorage().close(true, false);
db.close();
OGlobalConfiguration.USE_WAL.setValue(useWAL);
db = new ODatabaseDocumentTx(dbURL);
db.open("admin", "admin");
}
문제와의 연결을 열 때 우리가 ODatabaseDocumentTx의 인스턴스를 사용하지 않는 것입니다 데이터베이스 우리는 그래프 DB를 사용하고 있기 때문에 사실, 우리는 다음과 같은 방법으로 OrientGraphFactory를 사용
factory = new OrientGraphFactory("url", "username", "password");
graph = factory.getTx();
다음과 같은 방법으로 ODatabaseDocumentTx의 인스턴스를 얻을 수있다 : 다음
db = graph.getRawGraph();
하지만를, ODatabaseDocumentTx의 인스턴스를 닫은 후에는 그래프 DB와의 연결을 다시 열 수 없습니다.
제안 사항?