728x90
반응형
목적
- upgrade에 따른 데이터 정합성, 성능 간 이슈 등을 사전에 체크하여 장애 발생을 방지
- 지속적으로 dbms 생명주기를 관리하여 신기술에 대한 인지 및 도입 방안 마련
읽기 전에
- 아래 내용은 Release note 내용 중 필요하다고 판단되는 부분 위주로 정리함
- 버전의 A.B 에서 A는 년(ex_ 20의 경우 2020년)을 의미하며 B는 월(ex_ 6의 경우 6월)을 의미함. 즉, 버전에서 Release date를 유추할 수 있음
- 중복된 내용의 경우 가장 낮은 버전(이전 버전)에서 최초 기입하며 이후 중복 기입하지 않음
Backward Incompatible Change
- Ver. 21.5
- float와 integer 숫자의 비교가 변경됨. 이전에는 예를 들어 12.0과 12를 비교하면 이전에는 true였으나 이제 false로 변경됨. 이는 CPU모델에 따라 다른 값을 반환하기 때문에 정합성을 위해 변경되었기 때문.
- 단일 Tuple 인자에 대한 argMin, argMax의 지원이 제거됨
New Feature
- Ver. 21.5
- ALTER TABLE ... FETCH PART ... 쿼리가 추가됨. 이는 FETCH PARTITION과 유사하나 오직 하나의 part가 대상임
- 분산 테이블에 대한 재귀적 쿼리의 깊이를 제한하는 max_distributed_depth 파라미터가 추가됨
Bug Fix
- Ver. 21.5
- input_format_with_names_use_header 파라미터를 비활성화하면 CSVWithNames 형식의 모든 입력이 삭제되는 버그가 수정됨
- Distributed에 삽입시 "Cannot schedule a task" 에러가 발생할 수 있는 버그가 수정됨
- escape sequence가 있는 일부 LIKE 표현식이 잘못 동작하는 버그가 수정됨
- restart, stop 명령어가 행이 걸리는 버그가 수정됨
- 이 컬럼이 ReplcaingMergeTree의 파라미터로 쓰이고 해당 컬럼의 기본값을 바꿀 때 충돌하는 버그가 수정됨
- CAST([] AS Array(Array(String)))와 같이 비어있는 array literal에서 1보다 큰 차원으로 캐스팅할 수 없는 버그가 수정됨
- 가상 컬럼을 기반으로 파티션 pruning할 때 호환되지 않는 상수 표현이 발생하는 버그가 수정됨
- ReplicatedMergeTree 테이블의 생성과 삭제 사이에 매우 드물게 경쟁 상태가 발생하는 버그가 수정됨
- data_type_default_nullable 파라미터가 default profile 태그 내 활성화되었을 때 서버가 시작되지 못할 수 있는 버그가 수정됨
- 현재 커넥션 수를 잘못 세어 충돌이나 shutdown이 발생하는 버그가 수정됨
- Atomic database에서 Materialized View를 detach 했다가 attach할 때 "Table .inner_id... doesn't exist" 에러가 발생되는 버그가 수정됨
- OOM 예외 발생시 주키퍼 요청에 행이 걸릴 수 있는 버그가 수정됨
- ReplicatedMergeTree 테이블 엔진에서 몇몇 replica의 mutation 대기가 수정됨. 이전에는 다른 replica에서 실행되기 전에 mutation/alter 쿼리가 완료되었음
- 클라이언트가 매우 일찍 연결을 닫으면 충돌이 발생하는 버그가 수정됨
- TSV 형식의 끝에서 개행 없이 비어있는 문자열에 대한 역직렬화가 수정됨
- Merge 조인 알고리즘에서 LowCardinality 타입 컬럼의 잘못된 형변환이 발생하는 버그가 수정됨
- Merge 테이블 엔진에서 조인과 집계가 사용된 쿼리를 수행할 때 "unknown column" 에러가 발생하는 버그가 수정됨
- pushdown 최적화에서 이름 충돌이 발생하는 버그가 수정됨. 이는 FULL JOIN 후 where 필터에서 잘못된 수행을 하였음
Improvement
- Ver. 21.5
- HTTP 인터페이스 내 URL의 최대 크기를 기본적으로 1MiB 로 증가시킴
- background_fetches_pool_size를 8로 설정하여 빈번한 작은 삽입과 느린 주키퍼 클러스터에 대해 서비스 단계에서 더 성능이 개선됨
- non-replicated MergeTree 삽입 중복 제거에 대해 non_replicated_deduplication_window 파라미터가 추가됨
- 분산 쿼리에 대해 OS thread의 더 적은양을 사용하도록 async_socket_for_remote가 기본적으로 활성화됨
- 노드가 하나인 클러스터에 대해 optimize_skip_unused_shards를 사용하지 않음
- 버퍼 테이블에 대해 백그라운드에서만 버퍼 플러시 기능이 추가됨
- ReplicatedMergeTree에 대해 max_part_removal_threads를 고려함
- 버퍼 상의 락을 기다리는 동안 얼마나 시간을 소모했는지 추적하는 메트릭 지표가 추가됨
- VIEW 정의에 CTE를 사용할 수 있음
- 분산 테이블에서 보내는 데이터의 블록 구조를 올바르게 체크함
Performance Improvement
- Ver. 21.5
- 기본 프로토콜을 통해 localhost와 상호작용할 때(clickhouse-client와 혹은 분산 쿼리로 서버 to 서버로) 기본적으로 압축이 비활성화됨. 이는 일부 import/export 기능에 대한 성능을 개선하기 위함임
- 분산 쿼리에서 IN 연산자의 오른쪽에 샤드에 속하지 않는 값이 제외됨
Experimental Feature
- Ver. 21.5
- -
Build/Testing/Packaging Improvement
- Ver. 21.5
- -
Contents that needs to be tested
- Ver. 21.5
- -
참고
- clickhouse change log doc_001
https://clickhouse.com/docs/en/whats-new/changelog/
728x90
반응형
'CDBMS > Clickhouse' 카테고리의 다른 글
[Clickhouse] Ver. 21.7 Release note 요약 (0) | 2024.04.15 |
---|---|
[Clickhouse] Ver. 21.6 Release note 요약 (0) | 2024.04.14 |
[Clickhouse] Ver. 21.4 Release note 요약 (0) | 2024.04.12 |
[Clickhouse] Ver. 21.3 Release note 요약 (0) | 2024.04.11 |
[Clickhouse] Ver. 21.2 Release note 요약 (0) | 2024.04.10 |