[ShardingSphere] 시작 시간 개선

HyeJin Jeon·2023년 9월 5일
0
post-thumbnail

ShardingSphere 4.0.0 버전으로 Oracle Datasource 연결 시, analyze table... 쿼리가 수행되며 오랜 시간이 소요됨.
analyze 쿼리를 스킵 할 설정이 있는지 확인.

원인

https://github.com/apache/shardingsphere/issues/5999
https://github.com/apache/shardingsphere/issues/6212

ShardingSphere(~4.1.1) 가 Oracle의 테이블 메타데이터를 가져올 때 oracle-jdbc의 OracleDatabaseMetaData.getIndexInfo 를 호출하는데 이 내부에서 analyze table 쿼리가 수행됨.

MySQL 도 메타데이터를 가져올 때 시간이 소요됨.
Sharding이 적용되지 않은 테이블의 메타데이터도 가져오기 때문

해결 방안

https://github.com/apache/shardingsphere/pull/7328

  • 구성되지 않은 테이블에 대한 로드 절차를 제거. 구성되지 않은 테이블에 대해서는 테이블 이름만 로드.
  • 구성되지 않은 테이블에 대한 새로 고침 절차 제거
  • 구성되지 않은 테이블에 대한 다중 스레드 논리를 제거. (구성된 테이블은 여전히 다중 스레드를 사용)

위 변경 사항이 5.0.0-beta 버전 부터 적용되어 시작 속도가 개선됨.
5.0 업그레이드 시, 4.0 버전과 일부 config가 변경되었음을 감안할 것.

profile
Backend Developer

0개의 댓글