카테고리
Version
생성자
U
Untitled- 3.5.11
- 개선 사항
- 버그 수정
- 3.5.10
- 개선 사항
- 버그 수정
- 3.5.9
- 개선 사항
- 버그 수정
- 3.5.8
- 개선 사항
- 버그 수정
- 3.5.7
- 개선사항
- 버그 수정
- 3.5.6
- 개선사항
- 버그 수정
- 3.5.5
- 개선 사항
- 버그 수정
- 3.5.4
- 개선 사항
- 버그 수정
- 3.5.3
- 개선 사항
- 버그 수정
- 3.5.2
- 개선 사항
- 버그 수정
- 동작 변경
- 3.5.1
- 새로운 기능
- 개선 사항
- 버그 수정
- 동작 변경 사항
- 3.5.0
- 업그레이드 주의사항
- 공유 데이터 개선사항
- 데이터 레이크 분석
- 성능 개선 및 쿼리 최적화
- 파티션 관리
- 클러스터 관리
- 보안 및 인증
- 구체화된 뷰
- 로딩 및 언로딩
- 함수
- v3.5.0-RC01
- Shared-data 개선사항
- Data Lake Analytics
- 성능 향상 및 쿼리 최적화
- Partition 관리
- Cluster 관리
- 보안 과 인증
- Materialized Views
- 데이터 로딩 & 언로딩
- 함수들
- Upgrade Notes
3.5.11
출시일: 2026년 1월 5일
개선 사항
- 접근 불가능한 노드에서 Arrow Flight 데이터 검색을 지원합니다. #66348
- SIGTERM 핸들러에서 원인(트리거 프로세스 정보 포함)을 로그에 기록합니다. #66737
- UPDATE 문이 자동 통계 수집을 트리거할 수 있는지 여부를 제어하는 FE 설정
enable_statistic_collect_on_update가 추가되었습니다. #66794 networkaddress.cache.ttl설정을 지원합니다. #66723- "no rows imported" 오류 메시지가 개선되었습니다. #66624 #66535
- 대규모 파티션 테이블에 대해
deltaRows의 지연 평가가 최적화되었습니다. #66381 - Materialized View 재작성 성능이 최적화되었습니다. #66623
- Shared-data 클러스터에서 단일 태블릿
ResultSink최적화를 지원합니다. #66517 rewrite_simple_agg_to_meta_scan이 기본적으로 활성화됩니다. #64698- GROUP BY 표현식 푸시다운과 Materialized View 재작성을 지원합니다. #66507
- Materialized View 로그 개선을 위해 오버로드된
newMessage메서드가 추가되었습니다. #66367
버그 수정
다음 이슈들이 수정되었습니다:
- 입력 rowset을 찾을 수 없을 때 Publish Compaction 크래시. #67154
- 컬럼 수가 많은 테이블 쿼리 시
update_segment_cache_size의 반복적인 호출로 인한 CPU 오버헤드 및 락 경합. #66714 MulticastSinkOperator가OUTPUT_FULL상태에서 멈추는 이슈. #67153- skew join 힌트에서 "column not found" 이슈. #66929
- 모든 태블릿의 성장이 계속되고, pending과 running 태블릿의 합이 전체 태블릿 수와 일치하지 않는 이슈. #66718
- Leader 시작 시 구축된 Compaction 맵의 트랜잭션이 CompactionScheduler에서 접근할 수 없고 맵에서 제거되지 않는 이슈. #66533
- Delta Lake 테이블 새로고침이 적용되지 않는 이슈. #67156
- DATE 조건자가 있는 비파티션 Iceberg 테이블 쿼리 시 CN 크래시. #66864
- 여러 문이 제출될 때 Profiles에서 문이 올바르게 표시되지 않는 이슈. #67097
- Meta Reader가 Delta 컬럼 그룹 파일 읽기를 지원하지 않아 수집 중 dictionary 정보가 누락되는 이슈. #66995
- Java UDAF에서 잠재적인 Java heap OOM. #67025
- PARTITION BY와 ORDER BY가 없는 ranking window 최적화의 잘못된 로직으로 인한 BE 크래시. #67081
- timezone 캐시 미스에 대한 오해의 소지가 있는 로그 레벨. #66817
- 런타임 필터 병합 시 잘못된
can_use_bf검사로 인한 크래시 및 잘못된 결과. #67021 - 다른 OR 조건자와 함께 런타임 비트셋 필터 푸시다운 이슈. #66996
- lz4의 중요한 수정 패치 적용. #67053
- AsyncTaskQueue 데드락 이슈. #66791
- ObjectColumn의 캐시 불일치. #66957
- RewriteUnnestBitmapRule로 인한 잘못된 출력 컬럼 타입. #66855
- Delta Writer에서 FINISH 태스크 이후 WRITE 또는 FLUSH 태스크가 있을 때 데이터 경합 및 데이터 손실. #66943
- 이전에 중단된 로드 채널이 다시 열릴 때 발생하는 유효하지 않은 로드 채널 및 오해의 소지가 있는 내부 오류. #66793
- Arrow Flight SQL 버그. #65889
- MetaScan으로 이름이 변경된 컬럼 쿼리 시 이슈. #66819
- skew 제거가 비활성화된 상태에서 partitionwise spillable 집계에서 청크 플러시 전 해시 컬럼이 제거되지 않는 이슈. #66839
- BOOLEAN 타입 기본값이 문자열 리터럴로 저장될 때 올바르게 처리되지 않는 이슈. #66818
- decimal2decimal 캐스트가 예기치 않게 입력 컬럼을 결과로 직접 반환하는 이슈. #66773
- 스키마 변경 중 쿼리 계획에서 NPE. #66811
- LocalTabletsChannel과 LakeTabletsChannel 데드락. #66748
- 새 FE에서
publish_version로그가 빈txn_ids를 표시하는 이슈. #66732 - FE 설정
statistic_collect_query_timeout의 잘못된 동작. #66363 - UPDATE 문이 통계 수집을 지원하지 않는 이슈. #66443
- low cardinality 관련 Case 재작성 오류. #66724
- 컬럼 목록이 비어 있을 때 통계 쿼리 실패. #66138
- 힌트를 통해 warehouse 전환 시 사용량/기록 불일치. #66677
ANALYZE TABLE문에 ExecTimeout이 없는 이슈. #66361array_map이 상수 단항 표현식에서 잘못된 결과를 반환하는 이슈. #66514- FE 재시작 후 외래 키 제약 조건이 손실되는 이슈. #66474
- 빈 테이블에서
max(not null string)실행 시std::length_error발생. #66554 - Primary Key 인덱스 Compaction과 Apply 간의 동시성 이슈. #66282
EXPLAIN <query>의 부적절한 동작. #66542- Iceberg 테이블 컬럼에 DECIMAL128 싱크 시 이슈. #66071
- 대상 길이가 최소값과 같을 때 JSON → CHAR/VARCHAR에 대한 JSON 길이 검사 이슈. #66628
- 표현식 자식 수 오류. #66511
3.5.10
출시일: 2025년 12월 15일
개선 사항
- 문제가 있는 오퍼레이터를 빠르게 찾을 수 있도록 BE crash 로그에 plan node ID 덤프를 지원합니다. #66454
information_schema의 시스템 뷰 스캔이 최적화되어 오버헤드가 감소했습니다. #66200- 두 가지 히스토그램 메트릭(
slow_lock_held_time_ms및slow_lock_wait_time_ms)이 추가되어 slow lock 시나리오에 대한 관찰성이 향상되고, 오래 유지되는 락과 높은 락 경합을 구분할 수 있습니다. #66027 - 태블릿 리포트 및 클론 플로우에서 복제본 락 처리가 데이터베이스 레벨에서 테이블 레벨로 변경되어 락 경합이 감소하고 스케줄링 효율성이 향상되었습니다. #61939
- BE 스토리지에서 컬럼 출력을 방지하고, 조건자 연산을 BE 스토리지로 푸시다운합니다. #60462
- 백그라운드 스레드에서 스캔 범위 배포 시 쿼리 프로파일 정확도가 개선되었습니다. #62223
- 추가 태스크 배포 시 프로파일 계산이 개선되어 CPU 시간이 중복 계산되지 않습니다. #62186
- 참조된 파티션이 존재하지 않을 때 더 상세한 오류 메시지가 추가되어 실패 진단이 용이해졌습니다. #65674
- 코너 케이스에서 샘플 타입 카디널리티 추정이 더 견고해져 행 수 추정이 개선되었습니다. #65599
INSERT OVERWRITE가 오래된 파티션 통계를 읽는 것을 방지하기 위해 통계 로딩 시 파티션 필터가 추가되었습니다. #65578- 파이프라인 CPU
execution_time메트릭이 쿼리와 로드에 대해 별도의 시리즈로 분리되어 워크로드 타입별 관찰성이 향상되었습니다. #65535 - 첫 번째 로드 시 통계 수집에 대한 세밀한 제어를 위해 테이블 단위로
enable_statistic_collect_on_first_load를 지원합니다. #65463 - S3 의존 유닛 테스트 이름이
PocoClientTest에서 S3 관련 이름으로 변경되어 의존성과 의도를 더 잘 반영합니다. #65524
버그 수정
다음 이슈들이 수정되었습니다:
- 호환되지 않는 JDK로 StarRocks 시작 시 libhdfs가 크래시하는 이슈. #65882
PartitionColumnMinMaxRewriteRule로 인한 잘못된 쿼리 결과. #66356- AST 키로 Materialized View를 해석할 때 메타데이터가 새로고침되지 않아 발생하는 재작성 이슈. #66472
- 특정 유니코드 공백 문자를 트리밍할 때 trim 함수가 크래시하거나 잘못된 결과를 생성하는 이슈. #66428, #66477
- 삭제된 warehouse를 여전히 참조하는 메타데이터 로드 및 SQL 실행 실패. #66436
- group execution Join이 window 함수와 결합될 때 잘못된 결과. #66441
resetDecommStatForSingleReplicaTabletUnlocked에서 가능한 FE null 포인터. #66034- shared-data 클러스터에서
LakeDataSource에 대한 Join 런타임 필터 푸시다운 최적화 누락. #66354 - 런타임 필터 전송 옵션(타임아웃, HTTP RPC 제한 등)의 파라미터가 수신자에게 전달되지 않아 일관성이 없는 이슈. #66393
- 파티션 값이 이미 존재할 때 자동 파티션 생성 실패. #66167
- 조건자의 선택도가 높을 때 감사 로그의 부정확한 스캔 통계. #66280
- 비결정적 함수가 오퍼레이터 아래로 푸시되어 발생하는 잘못된 쿼리 결과. #66323
CASE WHEN으로 인한 표현식 수의 기하급수적 증가. #66324- 동일한 테이블이 서로 다른 파티션 조건자로 쿼리에 여러 번 나타날 때 Materialized View 보상 버그. #66369
- 서브프로세스에서 fork 사용 시 BE가 응답하지 않는 이슈. #66334
- CVE-2025-66566 및 CVE-2025-12183. #66453, #66362
- 중첩된 CTE 재사용으로 인한 오류. #65800
- 충돌하는 schema-change 절에 대한 검증 부재로 인한 이슈. #66208
- rowset 커밋 실패 시 부적절한 rowset GC 동작. #66301
- 파이프라인 카운트다운 시 잠재적인 use-after-free. #65940
- Stream Load에 대한
information_schema.loads에서 Warehouse 필드가 NULL인 이슈. #66202 - 참조된 뷰가 기본 테이블과 동일한 이름을 가질 때 Materialized View 생성 이슈. #66274
- 일부 경우에 global dictionary가 올바르게 업데이트되지 않는 이슈. #66194
- Follower 노드에서 전달된 쿼리에 대한 잘못된 쿼리 프로파일 로깅. #64395
- SELECT 결과 캐싱 및 스키마 재정렬 시 BE 크래시. #65850
- 표현식으로 파티션 삭제 시 shadow 파티션이 삭제되는 이슈. #66171
- 동일한 태블릿에 대해 CLONE 태스크가 존재할 때 DROP 태스크가 실행되는 이슈. #65780
- RocksDB 로그 파일 옵션이 제대로 설정되지 않아 발생하는 안정성 및 관찰성 이슈. #66166
- NULL 결과를 생성할 수 있는 잘못된 Materialized View 보상. #66216
- SIGSEGV 수신 후에도 BE가 alive로 보고되는 이슈. #66212
- Iceberg 스캔 버그. #65658
- Iceberg 뷰 SQL 테스트 케이스의 회귀 커버리지 및 안정성 이슈. #66126
set_collector가 반복적으로 호출되어 발생하는 예기치 않은 동작. #66199- column-mode partial update가 conditional update와 함께 사용될 때 인제스션 실패. #66139
- 동시 트랜잭션에서 임시 파티션 값 충돌. #66025
cache.size() == 0일 때도 Guava LocalCache가 오래된 항목을 유지할 수 있는 Iceberg 테이블 캐시 버그로, 새로고침이 효과가 없고 쿼리가 오래된 테이블을 반환하는 이슈. #65917LargeInPredicateException의 잘못된 포맷 플레이스홀더로 인해 오류 메시지에서LargeInPredicate발생 횟수가 잘못 보고되는 이슈. #66152connectContext가 null일 때 ConnectScheduler의 타임아웃 체커에서 NullPointerException. #66136- threadpool 태스크에서 발생한 처리되지 않은 예외로 인한 크래시. #66114
- 특정 플랜에서
DISTINCT LIMIT푸시다운 시 데이터 손실. #66109 - 기본 해시 셋이 two-level 해시 셋으로 변환된 후
multi_distinct_count가distinct_size를 업데이트하지 않아 잘못된 고유 값 수가 발생할 수 있는 이슈. #65916 - exec 그룹이 다음 드라이버를 제출할 때 경쟁 조건이
Check failed: !driver->is_in_blocked()를 트리거하고 BE 프로세스를 중단시킬 수 있는 이슈. #66099 - 기본값이 있는
ALTER TABLE ADD COLUMN과INSERT가 동시에 실행될 때, 새로 추가된 컬럼의 기본 표현식에 대한 타입 불일치로 인한 INSERT 실패. #65968 - SparkSQL이 일찍 종료될 때
RecordBatchQueue가 종료된 후에도MemoryScratchSinkOperator가pending_finish상태로 남아 파이프라인이 중단되는 이슈. #66041 - 빈 row 그룹이 포함된 Parquet 파일 읽기 시 코어 덤프. #65928
- 이벤트 스케줄러의 준비 상태 검사가 복잡하여 높은 DOP에서 재귀 호출 및 잠재적 스택 오버플로우. #66016
- Iceberg 기본 테이블에 만료된 스냅샷이 포함된 경우 비동기 Materialized View 새로고침이 업데이트를 건너뛰는 이슈. #65969
- 옵티마이저가 조건자 차이를 구분하기 위해 hashCode에만 의존하여 조건자 재사용 및 재작성에 잠재적 이슈. #65999
- 다중 레벨 파티션된 기본 테이블이 있는 비동기 Materialized View 새로고침에서 부모 파티션 메타데이터만 검사하고 하위 파티션 업데이트를 건너뛰는 이슈. #65596
- 빈 결과 셋에 대해
AVG(ARRAY_LENGTH(...))가 NULL을 반환할 수 있는 통계 수집 이슈. #65788 - BE와 FE 모두에서 증분 업데이트 중 런타임 프로파일 카운터가 min/max 값을 올바르게 업데이트하거나 지우지 않는 이슈. #65869
- 클러스터 스냅샷 생성 시 이미지 저널 ID를 얻는 잘못된 로직으로, 스냅샷이 올바른 로그 위치를 사용하도록 보장. #65970
- 파일 정리 오류 처리에서 잘못된 상태 검사 로직으로 인해 정리 실패 시 결과가 잘못 보고되는 이슈. #65709
DictMappingOperator의 특정 플랜isVariable()에서 가능한 무한 루프. #65743ConnectContext가 scan-range 배포 스레드에 전달되지 않아 발생하는 실패 및 감사/프로파일 데이터 누락. #63544- 스토리지 엔진이 중지될 때 로컬 Primary Key 인덱스 매니저의 use-after-free 이슈. #65534
- dynamic overwrite가 있는
INSERT OVERWRITE의 통계 수집 이슈. #65657 DiskAndTabletLoadReBalancer의 coarse-grained 락으로 인한 동시성 이슈. #65557- 중요 락에 대한 slow-lock 감지 부재로 slow 락이 올바르게 감지되고 보고되지 않는 이슈. #65559
- 대상 데이터베이스가 삭제된 후 upsert 트랜잭션 상태를 재생할 때 NullPointerException. #65595
INSERT OVERWRITE에 의해 트리거된 통계 수집 후 오래된 파티션 통계가 삭제되지 않아 오래된 통계가 사용되는 이슈. #65586- 동시성 하에서 ID 충돌이 발생할 수 있는 파티션 ID 할당의 데이터 경쟁. #65608
- 초기 태블릿 메타데이터 검색 시 태블릿 ID 누락. #65550
- 감사 및 프로파일 로그에서
PREPARE/EXECUTE문에 대한 잘못된 레코드 정보. #65448 - 스레드 안전하지 않은
has_output함수가 여러 스레드에서 호출되어 발생하는 잠재적 크래시. #65514 memtable_finalize_task_total카운터 메트릭 부재로 MemTable finalize 태스크를 제대로 추적할 수 없는 이슈. #65548- Arrow Flight에서 쿼리 ID 충돌로 인해 여러 쿼리가 더 이상 동일한 쿼리 ID를 공유하지 않는 이슈. #65558
TabletChecker.doCheck()와 다른 작업 간의 락 충돌. #65237- shared-data와 shared-nothing 클러스터 간 스캔 동작이 일관되지 않아 쿼리 시맨틱스가 다른 이슈. #61100
3.5.9
출시일: 2025년 11월 26일
개선 사항
- 트랜잭션 단계 간 타이밍 관찰을 위해 FE에 트랜잭션 레이턴시 메트릭이 추가되었습니다. #64948
- 데이터 레이크 시나리오에서 전체 테이블 재작성을 단순화하기 위해 S3 비파티션 Hive 테이블 덮어쓰기를 지원합니다. #65340
- 태블릿 메타데이터 캐싱에 대한 세밀한 제어를 제공하기 위해
CacheOptions가 도입되었습니다. #65222 - 통계가 최신 데이터와 일관성을 유지하도록
INSERT OVERWRITE에 대한 샘플 통계 수집을 지원합니다. #65363 - 비동기 태블릿 리포트로 인한 통계 누락 또는 오류를 방지하기 위해
INSERT OVERWRITE후 통계 수집 전략이 최적화되었습니다. #65327 INSERT OVERWRITE또는 Materialized View 새로고침 작업으로 삭제되거나 교체된 파티션에 대한 보존 기간이 도입되어, 복구 가능성 향상을 위해 일정 시간 동안 휴지통에 보관됩니다. #64779
버그 수정
다음 이슈들이 수정되었습니다:
LocalMetastore.truncateTable()관련 락 경합 및 동시성 이슈. #65191- TabletChecker 관련 락 경합 및 복제본 검사 성능 이슈. #65312
- HTTP SQL을 통한 사용자 변경 시 잘못된 오류 로깅. #65371
- DelVec CRC32 업그레이드 호환성 이슈로 인한 체크섬 실패. #65442
- RocksDB 반복 타임아웃으로 인한 태블릿 메타데이터 로드 실패. #65146
- JSON hyper 추출 경로가
$이거나 모든 경로가 건너뛰어져서 내부flat_path문자열이 비어 있을 때,substr호출이 예외를 발생시켜 BE 크래시를 유발하는 이슈. #65260 - fragment 실행에서
PREPARED플래그가 올바르게 설정되지 않는 이슈. #65423 - 중복된 로드 프로파일 카운터로 인한 부정확한 쓰기 및 플러시 메트릭. #65252
- 여러 HTTP 요청이 동일한 TCP 연결을 재사용할 때,
ExecuteSQL요청 후 비ExecuteSQL요청이 도착하면 채널 종료 시HttpConnectContext가 등록 해제되지 않아 HTTP 컨텍스트 누수가 발생하는 이슈. #65203 - MySQL 8.0 스키마 인트로스펙션 오류 (세션 변수
default_authentication_plugin및authentication_policy추가로 수정). #65330 - 파티션 덮어쓰기 작업 후 생성된 임시 파티션에 대한 불필요한 통계 수집으로 인한
SHOW ANALYZE STATUS오류. #65298 - Event Scheduler의 Global Runtime Filter 경쟁. #65200
- 최소 Data Cache 디스크 크기 제약이 너무 커서 Data Cache가 적극적으로 비활성화되는 이슈. #64909
- gold 링커 자동 폴백 관련 aarch64 빌드 이슈. #65156
3.5.8
출시일: 2025년 11월 10일
개선 사항
- 중첩된 복잡한 파일을 포함하는 Parquet 레거시 list를 지원하기 위해 Arrow가 19.0.1로 업그레이드되었습니다. #64238
FILES()가 레거시 Parquet LIST 인코딩을 지원합니다. #64160- 세션 변수와 삽입되는 컬럼 수에 따라 Partial Update 모드가 자동으로 결정됩니다. #62091
- 테이블 함수 위의 분석 오퍼레이터에 low-cardinality 최적화가 적용되었습니다. #63378
- 블로킹을 방지하기 위해
finishTransaction에 설정 가능한 테이블 락 타임아웃이 추가되었습니다. #63981 - Shared-data 클러스터가 테이블 레벨 스캔 메트릭 귀속을 지원합니다. #62832
- Window 함수
LEAD/LAG/FIRST_VALUE/LAST_VALUE가 이제 ARRAY 타입 인수를 받습니다. #63547 - 조건자 푸시다운 및 조인 단순화를 개선하기 위해 여러 배열 함수에 대한 상수 폴딩을 지원합니다. #63692
SHOW PROC /backends/{id}를 통해 주어진 노드의tabletNum검색을 최적화하기 위한 배치 API를 지원합니다. FE 설정 항목enable_collect_tablet_num_in_show_proc_backend_disk_path(기본값: true)가 추가되었습니다. #64013INSERT ... SELECT가 계획 전 외부 테이블을 새로고침하여 최신 메타데이터를 읽도록 보장합니다. #64026- 오버플로우되는 컬럼 생성을 방지하기 위해 테이블 함수, NL-join probe, hash-join probe에
capacity_limit_reached검사가 추가되었습니다. #64009 - 외부 테이블의 통계 수집을 위한 최대 태스크 수 설정을 위해 FE 설정 항목
collect_stats_io_tasks_per_connector_operator(기본값: 4)가 추가되었습니다. #64016 - 샘플 수집을 위한 기본 파티션 크기가 1000에서 300으로 업데이트되었습니다. #64022
- lock table 슬롯이 256으로 증가하고 slow-lock 로그에 rid가 추가되었습니다. #63945
- 레거시 데이터 존재 시 Gson 역직렬화의 견고성이 개선되었습니다. #63555
- 락 경합 및 계획 레이턴시를 줄이기 위해
FILES()스키마 푸시다운에 대한 메타데이터 락 범위가 축소되었습니다. #63796 - FE 설정 항목
task_runs_timeout_second도입으로 Task Run 실행 타임아웃 체커가 추가되고, 지연된 실행에 대한 취소 로직이 개선되었습니다. #63842 REFRESH MATERIALIZED VIEW ... FORCE가 (일관성이 없거나 손상된 경우에도) 항상 대상 파티션을 새로고침하도록 보장합니다. #63844
버그 수정
다음 이슈들이 수정되었습니다:
- ClickHouse의
Nullable(Decimal)타입 파싱 시 예외. #64195 - 태블릿 마이그레이션과 Primary Key 인덱스 조회 동시성 이슈. #64164
- Materialized View 새로고침에서
FINISHED상태 부재. #64191 - shared-data 클러스터에서 Schema Change Publish가 재시도되지 않는 이슈. #64093
- Data Lake의 Primary Key 테이블에서 잘못된 행 수 통계. #64007
- shared-data 클러스터에서 태블릿 생성이 타임아웃될 때 노드 정보를 반환할 수 없는 이슈. #63963
- 손상된 Lake DataCache를 지울 수 없는 이슈. #63182
IGNORE NULLS플래그가 있는 Window 함수가IGNORE NULLS플래그가 없는 대응 함수와 통합될 수 없는 이슈. #63958- 컴팩션이 이전에 중단된 경우 FE 재시작 후 테이블 컴팩션이 다시 스케줄링되지 않는 이슈. #63881
- FE가 자주 재시작되면 태스크 스케줄링 실패. #63966
- GCS 오류 코드 관련 이슈. #64066
- StarMgr gRPC executor 불안정성 이슈. #63828
- 독점 작업 그룹 생성 시 데드락. #63893
- Iceberg 테이블 캐시가 제대로 무효화되지 않는 이슈. #63971
- shared-data 클러스터에서 정렬된 집계의 잘못된 결과. #63849
PartitionedSpillerWriter::_remove_partition의 ASAN 오류. #63903- morsel 큐에서 분할을 가져오는 데 실패할 때 BE 크래시. #62753
- Materialized View 재작성에서 집계 푸시다운 타입 캐스트 버그. #63875
- FE에서 만료된 로드 작업 제거 시 NPE. #63820
- 파티션 제거 시 Partitioned Spill 크래시. #63825
- 특정 플랜에서 Materialized View 재작성이
IllegalStateException을 발생시키는 이슈. #63655 - 파티션된 Materialized View 생성 시 NPE. #63830
3.5.7
출시일: 2025년 10월 21일
개선사항
- 과도한 메모리 경합 시나리오에서 재시도 백오프를 도입하여 Scan 연산자의 메모리 통계 정확도 개선. #63788
- 기존 tablet 분산을 활용하여 과도한 bucket 생성을 방지하도록 Materialized view bucketing 추론 최적화. #63367
- 빈번한 메타데이터 업데이트 중 일관성을 향상하고 캐시 무효화 위험을 줄이도록 Iceberg 테이블 캐싱 메커니즘 개선. #63388
- API 및 스케줄러 전반에서 쿼리 출처를 더 잘 추적하기 위해
QueryDetail및AuditEvent에querySource필드 추가. #63480 - MemTable 쓰기에서 중복 키가 감지될 때 상세한 컨텍스트를 출력하여 Persistent Index 진단 강화. #63560
- 동시 시나리오에서 락 세분성 및 순서를 개선하여 Materialized view 작업의 락 경합 감소. #63481
버그 수정
다음 이슈들이 수정되었습니다:
- 타입 불일치로 인한 Materialized view 재작성 실패. #63659
regexp_extract_all의 잘못된 동작 및pos=0지원 부족. #63626- 복잡한 함수가 있는 CASE WHEN의 무익한 단순화로 인한 스캔 성능 저하. #63732
- 부분 업데이트가 컬럼 모드에서 행 모드로 전환될 때 잘못된 DCG 데이터 읽기. #61529
ExceptionStackContext초기화 중 발생할 수 있는 교착 상태. #63776- ARM 아키텍처 머신에서 Parquet 숫자 변환 시 발생하는 크래시. #63294
- Aggregate 중간 타입이
ARRAY<NULL_TYPE>을 사용하여 발생하는 문제. #63371 - 부호 경계 케이스(예: INT128_MIN)에서 LARGEINT를 DECIMAL128로 캐스팅할 때 잘못된 오버플로 감지로 인한 안정성 문제. #63559
- LZ4 압축 및 압축 해제 오류를 감지할 수 없는 문제. #63629
- INT 타입 컬럼에서
FROM_UNIXTIME으로 파티션된 테이블을 쿼리할 때ClassCastException발생. #63684 - 유일한 유효한 소스 replica가
DECOMMISSION으로 표시되어 있을 때 밸런스 트리거 마이그레이션 후 tablet을 복구할 수 없는 문제. #62942 - PREPARE 문을 사용할 때 Profile에서 SQL 문과 Planner Trace가 손실되는 문제. #63519
extract_number,extract_bool,extract_string함수가 예외 안전하지 않은 문제. #63575- 종료된 tablet이 가비지 컬렉션되지 않는 문제. #63595
- PREPARE/EXECUTE 문의 반환에 대해 Profile이 SQL을
omit으로 표시하는 문제. #62988 - 결합된 조건자를 가진
date_trunc파티션 프루닝이 잘못 EMPTYSET을 생성하는 문제. #63464 - NullableColumn의 CHECK로 인한 릴리스 빌드 크래시. #63553
3.5.6
출시일: 2025년 9월 22일
개선사항
- 해제된 BE의 모든 tablet이 recycle bin에 있을 때 강제로 삭제하여 해당 tablet으로 인해 해제가 차단되는 것을 방지. #62781
- Vacuum 성공 시 Vacuum 메트릭이 업데이트됨. #62540
- 프래그먼트 인스턴스 실행 상태 리포트에 활성 스레드, 대기열 수, 실행 중인 스레드를 포함한 스레드 풀 메트릭 추가. #63067
- MinIO 및 기타 S3 호환 스토리지 시스템과의 호환성을 개선하기 위해 shared-data 클러스터에서 S3 경로 스타일 액세스 지원. storage volume 생성 시
aws.s3.enable_path_style_access를 true로 설정하여 이 기능을 활성화할 수 있음. #62591 ALTER TABLE <table_name> AUTO_INCREMENT = 10000;을 통해 AUTO_INCREMENT 값의 시작점 재설정 지원. #62767- 그룹 매칭을 위해 Group Provider에서 Distinguished Name(DN) 사용 지원으로 LDAP/Microsoft Active Directory 환경의 사용자 그룹 솔루션 개선. #62711
- Azure Data Lake Storage Gen2에 대한 Azure Workload Identity 인증 지원. #62754
- 장애 진단을 돕기 위해
information_schema.loadsview에 트랜잭션 오류 메시지 추가. #61364 - Scan 조건자에서 복잡한 CASE WHEN 표현식에 대한 공통 표현식 재사용을 지원하여 반복 계산 감소. #62779
- REFRESH 문 실행 시 Materialized view에서 ALTER 대신 REFRESH 권한 사용. #62636
- 잠재적 문제를 방지하기 위해 Lake 테이블에서 low-cardinality 최적화를 기본적으로 비활성화. #62586
- Shared-data 클러스터에서 worker 간 tablet 밸런싱을 기본적으로 활성화. #62661
- Outer-join WHERE 조건자에서 표현식 재사용을 지원하여 반복 계산 감소. #62139
- FE에 Clone 메트릭 추가. #62421
- BE에 Clone 메트릭 추가. #62479
- 기본적으로 통계 캐시 지연 새로 고침을 비활성화하기 위한 FE 설정 항목
enable_statistic_cache_refresh_after_write추가. #62518 - 보안 강화를 위해 SUBMIT TASK에서 자격 증명 정보 마스킹. #62311
- Trino 방언에서
json_extract가 JSON 타입 반환. #59718 null_or_empty에서 ARRAY 타입 지원. #62207- Iceberg manifest 캐시의 크기 제한 조정. #61966
- Hive에 대한 원격 파일 캐시 제한 추가. #62288
버그 수정
다음 이슈들이 수정되었습니다:
- 음수 타임아웃 값으로 인해 보조 replica가 무기한 중단되어 잘못된 타임스탬프 비교를 발생시키던 문제. #62805
- TransactionState가 REPLICATION일 때 PublishTask가 차단될 수 있는 문제. #61664
- Materialized view 갱신 중 삭제되고 재생성된 Hive 테이블에 대한 잘못된 복구 메커니즘. #63072
- Materialized view aggregation push-down 재작성 후 잘못된 실행 플랜이 생성되던 문제. #63060
- PlanTuningGuide가 쿼리 프로파일에서 인식할 수 없는 문자열(null explainString)을 생성하여 발생하는 ANALYZE PROFILE 실패. #63024
hour_from_unixtime의 부적절한 반환 타입 및 CAST의 잘못된 재작성 규칙. #63006- 데이터 경합 상태에서 Iceberg manifest 캐시의 NPE. #63043
- Shared-data 클러스터에서 Materialized view의 colocation 지원 부족. #62941
- Scan Range 배포 중 Iceberg 테이블 Scan 예외. #62994
- View 기반 재작성에 대해 잘못된 실행 플랜이 생성되던 문제. #62918
- Compute Node가 종료 시 정상적으로 종료되지 않아 발생하는 오류 및 중단된 작업. #62916
- Stream Load 실행 상태 업데이트 시 NPE. #62921
- PARTITION BY 절의 컬럼 이름과 이름의 대소문자가 다를 때 통계 관련 문제. #62953
- LEAST 함수가 조건자로 사용될 때 잘못된 결과가 반환되는 문제. #62826
- 테이블 프루닝 경계 CTEConsumer 위의 잘못된 ProjectOperator. #62914
- Clone 후 중복 replica 처리. #62542
- Stream Load 프로파일 수집 실패. #62802
- 부적절한 BE 선택으로 인한 비효율적인 디스크 리밸런싱. #62776
- 누락된 tablet_id가 null delta writer를 유발할 때 LocalTabletsChannel에서 발생할 수 있는 NPE 크래시. #62861
- KILL ANALYZE가 작동하지 않던 문제. #62842
- MCV 값에 작은따옴표가 포함될 때 히스토그램 통계의 SQL 구문 오류. #62853
- Prometheus용 메트릭의 잘못된 출력 형식. #62742
- 데이터베이스 삭제 후
information_schema.analyze_status를 쿼리할 때 NPE. #62796 - CVE-2025-58056. #62801
- SHOW CREATE ROUTINE LOAD 실행 시 데이터베이스를 지정하지 않으면 null로 간주되어 잘못된 결과가 반환되는 문제. #62745
files()에서 CSV 헤더를 잘못 건너뛰어 발생하는 데이터 손실. #62719- 배치 트랜잭션 upsert 재생 시 NPE. #62715
- Shared-nothing 클러스터에서 정상 종료 중 Publish가 성공으로 잘못 보고되는 문제. #62417
- null 포인터로 인한 비동기 delta writer 크래시. #62626
- 복원 작업 실패 후 Materialized view 버전 맵이 지워지지 않아 Materialized view 갱신이 건너뛰어지는 문제. #62634
- Materialized view 분석기에서 대소문자를 구분하는 파티션 컬럼 검증으로 인한 문제. #62598
- 구문 오류가 있는 문에 대한 중복 ID. #62258
- CancelableAnalyzeTask의 중복 상태 할당으로 인해 StatisticsExecutor 상태가 재정의되는 문제. #62538
- 통계 수집에서 생성되는 잘못된 오류 메시지. #62533
- 외부 사용자에 대한 불충분한 기본 최대 연결로 인한 조기 제한. #62523
- Materialized view 백업 및 복원 작업에서 발생할 수 있는 NPE. #62514
- 잘못된
http_workers_num메트릭. #62457 - 런타임 필터가 구성 중 해당 실행 그룹을 찾지 못하는 문제. #62465
- 복잡한 함수로 CASE WHEN을 단순화하여 Scan Node에서 지루한 결과가 발생하는 문제. #62505
gmtime이 스레드 안전하지 않은 문제. #60483- 이스케이프된 문자열로 Hive 파티션을 가져올 때 발생하는 문제. #59032
3.5.5
출시일: 2025년 9월 5일
개선 사항
- 새로운 시스템 변수
enable_drop_table_check_mv_dependency(기본값:false)가 추가되었습니다.true로 설정하면, 삭제하려는 객체가 downstream materialized view에서 참조되는 경우 시스템이DROP TABLE/DROP VIEW/DROP MATERIALIZED VIEW실행을 방지합니다. 오류 메시지는 종속된 materialized view를 나열하고 자세한 내용은sys.object_dependenciesview를 확인하도록 안내합니다. #61584 - 이제 로그에 빌드의 Linux 배포판과 CPU 아키텍처 정보가 포함되어 이슈 재현 및 문제 해결이 용이해졌습니다. Log format:
... build <hash> distro <id> arch <arch>. #62017 - Tablet별 영구 인덱스 및 증분 컬럼 그룹 파일 크기가 캐싱되어 온디맨드 디렉토리 스캔을 대체합니다. 이는 BE에서 Tablet 상태 보고를 가속화하고 높은 I/O 시나리오에서 지연 시간을 줄입니다. #61901
- FE 및 BE의 여러 고빈도 INFO 로그가 VLOG로 다운그레이드되었고, 태스크 제출 로그가 집계되어 중복 스토리지 관련 로그와 높은 부하 상태에서의 로그 양이 크게 감소했습니다. #62121
information_schema를 통한 External Catalog 메타데이터 쿼리 성능이 개선되었습니다.getTable을 호출하기 전에 테이블 필터를 적용하여 테이블별 RPC를 방지합니다. #62404
버그 수정
다음 문제들이 수정되었습니다:
- 데이터 누락으로 인해 Plan 단계에서 파티션 레벨 컬럼 통계를 가져올 때 NullPointerException 발생. #61935
- 비어있지 않은 NULL 배열의 Parquet 쓰기 문제가 수정되었고,
SPLIT(NULL, …)동작이 일관되게 NULL을 반환하도록 수정되어 데이터 손상 및 런타임 오류를 방지합니다. #61999 CASE WHEN표현식을 사용하여 materialized view를 생성할 때 호환되지 않는 VARCHAR 타입 반환으로 인한 실패(refresh 전후의 일관성을 보장하고, STRING을 선호하고 길이 불일치를 방지하기 위해 새로운 FE 구성transform_type_prefer_string_for_varchar를 도입하여 해결). #61996enable_rbo_table_prune이false일 때 중첩된 CTE에 대한 통계를 memo 외부에서 계산할 수 없는 문제. #62070- Audit 로그에서 INSERT INTO SELECT 문에 대한 부정확한 Scan Rows 결과. #61381
- Query Queue v2가 활성화된 상태에서 초기화 중 ExceptionInInitializerError/NullPointerException으로 인한 FE 시작 실패. #62161
LakePersistentIndex초기화 실패 및_memtable정리가 트리거될 때 BE 크래시 발생. #62279- creator 역할이 활성화되지 않아 materialized view 새로 고침 중 권한 문제 발생(FE 구성
mv_use_creator_based_authorization을 추가하여 해결.false로 설정하면 materialized view가 root로 새로 고침되어 LDAP 인증 클러스터와의 호환성 유지). #62396 - 대소문자 구분 List 파티션 테이블 이름으로 인한 materialized view 새로 고침 실패(OLAP 테이블 의미론에 맞춰 파티션 이름에 대한 대소문자 구분 없는 고유성 검사를 강제하여 해결). #62389
3.5.4
출시일: 2025년 8월 22일
개선 사항
- tablet을 복구할 수 없는 이유를 명확히 하는 로그가 추가되었습니다. #61959
- 로그의 DROP PARTITION 정보가 최적화되었습니다. #61787
- 통계 추정을 위해 알 수 없는 통계를 가진 테이블에 크지만 구성 가능한 행 수를 할당했습니다. #61332
- 라벨 위치에 따른 밸런스 통계가 추가되었습니다. #61905
- 클러스터 모니터링 개선을 위한 colocate 그룹 밸런스 통계가 추가되었습니다. #61736
- 정상 복제본 수가 기본 복제본 수를 초과할 때 Publish 대기 단계를 건너뜁니다. #61820
- tablet 보고서에 tablet 정보 수집 시간이 포함되었습니다. #61643
- 태그가 있는 Starlet 파일 작성을 지원합니다. #61605
- SHOW PROC를 통한 클러스터 밸런스 통계 보기를 지원합니다. #61578
- librdkafka를 2.11.0으로 업그레이드하여 Kafka 4.0을 지원하고 더 이상 사용되지 않는 구성을 제거했습니다. #61698
- Stream Load Transaction 인터페이스에
prepared_timeout구성이 추가되었습니다. #61539 - StarOS를 v3.5‑rc3로 업그레이드했습니다. #61685
버그 수정
다음 문제들이 수정되었습니다:
- 무작위 분산 테이블의 잘못된 Dict 버전. #61933
- context 조건에서 잘못된 쿼리 context. #61929
- ALTER 작업 중 shadow tablet에 대한 동기 Publish로 인한 Publish 실패. #61887
- CVE‑2025‑55163 이슈. #62041
- Apache Kafka에서 실시간 데이터 수집 시 메모리 누수. #61698
- lake persistent index의 재구축 파일 수 오류. #61859
- 생성된 표현식 컬럼에 대한 통계 수집으로 인한 크로스 데이터베이스 쿼리 오류. #61829
- 공유 없는 클러스터에서 Query Cache 불일치로 인한 일관되지 않은 결과. #61783
- 삭제된 파티션 정보를 보존하는 CatalogRecycleBin의 높은 메모리 사용량.#61582
- 타임아웃이 65,535밀리초를 초과할 때 SQL Server JDBC 연결 실패. #61719
- Security Integration이 암호를 암호화하지 못해 민감한 정보가 노출되는 문제. #60666
- Iceberg 파티션 컬럼에서
MIN()및MAX()함수가 예기치 않게 NULL을 반환하는 문제. #61858 - 푸시다운 불가능한 서브필드를 포함하는 Join의 다른 조건자가 잘못 재작성되는 문제. #61868
- QueryContext 취소가 use-after-free 상황을 초래할 수 있는 문제. #61897
- CBO의 테이블 정리가 다른 조건자를 간과하는 문제. #61881
COLUMN_UPSERT_MODE에서 부분 업데이트가 자동 증가 컬럼을 0으로 덮어쓸 수 있는 문제. #61341- 잘못된 시간대 오프셋을 사용하는 JDBC TIME 타입 변환으로 인해 잘못된 시간 값이 발생하는 문제. #61783
- Routine Load 작업에서
max_filter_ratio가 직렬화되지 않는 문제. #61755 - Stream Load에서
now(precision)함수의 정밀도 손실. #61721 - 쿼리 취소 시 "query id not found" 오류가 발생할 수 있는 문제. #61667
- LDAP 인증이 PartialResultException을 놓쳐 불완전한 쿼리 결과를 초래할 수 있는 문제.#60667
- 쿼리 조건에 DATETIME이 포함될 때 Paimon Timestamp 시간대 변환 문제.#60473
3.5.3
출시일: 2025년 8월 11일
개선 사항
- Lake Compaction에 세그먼트 쓰기 시간 통계가 추가되었습니다. #60891
- 성능 저하를 방지하기 위해 데이터 캐시 쓰기의 인라인 모드가 비활성화되었습니다. #60530
- Iceberg 메타데이터 스캔이 공유 파일 I/O를 지원합니다. #61012
- 모든 PENDING ANALYZE 작업 종료를 지원합니다. #61118
- 과도한 최적화 시간을 방지하기 위해 CTE 노드가 너무 많을 때 강제 재사용이 적용됩니다. #60983
- 클러스터 밸런스 결과에
BALANCE유형이 추가되었습니다. #61081 - 외부 테이블에 대한 구체화된 뷰 재작성이 최적화되었습니다. #61037
- 시스템 변수
enable_materialized_view_agg_pushdown_rewrite의 기본값이true로 변경되어 구체화된 뷰 쿼리에 대한 집계 푸시다운이 기본적으로 활성화됩니다. #60976 - 파티션 통계 잠금 경쟁이 최적화되었습니다. #61041
버그 수정
다음 문제들이 수정되었습니다:
- 컬럼 정리 후 일관되지 않은 청크 컬럼 크기 문제. #61271
- 파티션 통계 로딩의 동기 실행으로 인한 교착 상태 발생 가능성. #61300
array_map이 상수 배열 컬럼을 처리할 때 크래시 발생. #61309- 자동 증가 컬럼을 NULL로 설정할 때 시스템이 동일한 청크 내 유효한 데이터를 잘못 거부하는 문제. #61255
- 실제 JDBC 연결 수가
jdbc_connection_pool_size제한을 초과하는 문제. #61038 - FQDN 모드에서 IP 주소를 캐시 맵 키로 사용하지 않는 문제. #61203
- 배열 비교 중 배열 컬럼 복제 오류. #61036
- 직렬화된 스레드 풀 차단 배포로 인한 쿼리 성능 저하. #61150
- 하트비트 재시도 카운터 재설정 후 OK hbResponse가 동기화되지 않는 문제. #61249
hour_from_unixtime함수의 잘못된 결과. #61206- ALTER TABLE 작업과 파티션 생성 간의 충돌. #60890
- v3.3에서 v3.4 이상으로 업그레이드 후 캐시가 적용되지 않는 문제. #60973
- 벡터 인덱스 메트릭
hit_count가 설정되지 않는 문제. #61102 - Stream Load 트랜잭션이 코디네이터 노드를 찾지 못하는 문제. #60154
- OOM 파티션을 로딩할 때 BE가 크래시되는 문제. #60778
- 수동으로 생성된 파티션에서 INSERT OVERWRITE가 실패하는 문제. #60750
- 파티션 이름이 대소문자를 구분하지 않고 일치하지만 다른 값을 가질 때 파티션 생성이 실패하는 문제. #60909
- 시스템이 PostgreSQL UUID 타입을 지원하지 않는 문제. #61021
FILES()를 통해 Parquet 데이터를 로딩할 때 컬럼 이름의 대소문자 구분 문제. #61059
3.5.2
출시일: 2025년 7월 18일
개선 사항
- 쿼리 계획 정확도를 향상시키기 위해 ARRAY 컬럼에 대한 NDV(고유 값 수) 통계를 수집합니다. #60623
- 불필요한 로그 출력을 줄이기 위해 Colocate 테이블의 복제본 밸런싱 및 공유 데이터 클러스터의 태블릿 스케줄링이 비활성화되었습니다. #60737
- 카탈로그 접근 워크플로우 최적화: FE가 이제 외부 서비스 사용 불가로 인한 중단을 방지하기 위해 시작 시 외부 데이터 소스에 비동기적으로 접근하도록 지연시킵니다. #60614
- 조건자 푸시다운을 제어하기 위한 세션 변수
enable_predicate_expr_reuse가 추가되었습니다. #60603 - Kafka 파티션 정보 가져오기 실패 시 재시도 메커니즘을 지원합니다. #60513
- 구체화된 뷰와 기본 테이블 간 파티션 컬럼의 정확한 매핑을 요구하는 제한이 제거되었습니다. #60565
- 집계 중 데이터 필터링을 통해 집계 성능을 향상시키는 런타임 인-필터(Runtime In-Filters) 구축을 지원합니다. #59288
버그 수정
다음 문제들이 수정되었습니다:
- 여러 컬럼에 대한 낮은 카디널리티 최적화로 인한 COUNT DISTINCT 쿼리 크래시. #60664
- 여러 함수가 동일한 이름을 공유할 때 글로벌 UDF의 잘못된 매칭. #60550
- Stream Load 가져오기 중 널 포인터 예외(NPE) 문제. #60755
- 클러스터 스냅샷에서 복구 중 FE 시작 시 널 포인터 예외(NPE) 문제. #60604
- 순서가 맞지 않는 값으로 숏서킷 쿼리를 처리할 때 컬럼 모드 불일치로 인한 BE 크래시. #60466
- SUBMIT TASK 문에서 PROPERTIES를 통해 설정된 세션 변수가 적용되지 않는 문제. #60584
- 특정 조건에서
SELECT min/max쿼리의 잘못된 결과. #60601 - 조건자의 왼쪽이 함수일 때 잘못된 버킷 정리로 인한 잘못된 쿼리 결과. #60467
- Arrow Flight SQL을 통해 존재하지 않는
query_id에 대한 쿼리 시 크래시. #60497
동작 변경
lake_compaction_allow_partial_success의 기본값이true로 설정되었습니다. 이제 압축 작업이 부분적으로만 완료되더라도 성공으로 표시될 수 있어 후속 압축 작업의 차단을 방지합니다. #60643
3.5.1
출시일: 2025년 7월 1일
새로운 기능
- [실험적 기능] v3.5.1부터 StarRocks는 Apache Arrow Flight SQL 프로토콜 기반의 고성능 데이터 전송 채널을 도입하여 데이터 가져오기 채널을 포괄적으로 최적화하고 전송 효율성을 크게 향상시켰습니다. 이 솔루션은 StarRocks 컬럼형 실행 엔진에서 클라이언트까지 완전한 컬럼형 데이터 전송 파이프라인을 구축하여 기존 JDBC 및 ODBC 인터페이스에서 일반적으로 발생하는 빈번한 행-열 변환 및 직렬화 오버헤드를 제거하고, 진정한 제로 복사, 낮은 지연 시간 및 높은 처리량의 데이터 전송 기능을 달성합니다. #57956
- Java 스칼라 UDF(사용자 정의 함수)가 이제 입력 매개변수로 ARRAY 및 MAP 유형을 지원합니다. #55356
- 노드 간 데이터 캐시 공유: 노드가 네트워크를 통해 컴퓨팅 노드 간에 데이터 레이크의 캐시된 외부 테이블 데이터를 공유할 수 있게 합니다. 로컬 캐시 미스가 발생하면 시스템은 먼저 동일한 클러스터 내 다른 노드의 캐시에서 데이터를 가져오려고 시도합니다. 모든 캐시가 미스된 경우에만 원격 스토리지에서 데이터를 다시 가져옵니다. 이 기능은 탄력적 확장 시 캐시 무효화로 인한 성능 지터를 효과적으로 줄이고 안정적인 쿼리 성능을 보장합니다. 새로운 FE 구성 매개변수
enable_trace_historical_node가 이 동작을 제어합니다(기본값:false). #57083 - 스토리지 볼륨에 Google 클라우드 스토리지(GCS) 네이티브 지원 추가: 이제 GCS를 백엔드 스토리지 볼륨으로 사용하고 네이티브 SDK를 통해 GCS 리소스를 관리하고 액세스할 수 있습니다. #58815
개선 사항
- Hive 외부 테이블 생성 실패 시 오류 메시지가 최적화되었습니다. #60076
- Iceberg 메타데이터의
file_record_count를 사용하여count(1)쿼리 성능이 최적화되었습니다. #60022 - 모든 하위 작업이 성공할 때 지연된 일정 예약을 방지하기 위해 Compaction 스케줄링 로직이 개선되었습니다. #59998
- JDK 17로 업그레이드 후 BE 및 CN에
JAVA_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED"가 추가되었습니다. #59947 - Kafka 브로커 엔드포인트가 변경될 때 ALTER ROUTINE LOAD 명령을 통해
kafka_broker_list속성 수정을 지원합니다. #59787 - 매개변수를 통해 Docker 기본 이미지의 빌드 종속성 감소를 지원합니다. #59772
- 관리형 ID 인증을 사용하여 Azure 액세스를 지원합니다. #59657
- 중복된 경로 컬럼 이름으로
Files()함수를 통해 외부 데이터를 쿼리할 때 오류 메시지가 개선되었습니다. #59597 - LIMIT 푸시다운 로직이 최적화되었습니다. #59265
버그 수정
다음 문제들이 수정되었습니다:
- 쿼리에 Max 및 Min 집계와 빈 파티션이 포함된 경우의 파티션 정리(pruning) 문제. #60162
- NULL 파티션 누락으로 인한 구체화된 뷰로 쿼리를 재작성할 때 잘못된 쿼리 결과. #60087
str2date를 기반으로 하는 파티션 표현식을 사용할 때 Iceberg 외부 테이블의 새로 고침 오류. #60089- START END 구문을 사용하여 임시 파티션을 생성할 때 잘못된 파티션 범위. #60014
- 비 리더 FE 노드에서 Routine Load 메트릭이 잘못 표시되는 문제. #59985
COUNT(*)윈도우 함수가 포함된 쿼리를 실행할 때 BE/CN이 충돌하는 문제. #60003- 대상 테이블 이름에 중국어 문자가 포함된 경우 Stream Load 실패. #59722
- 보조 복제본에 로딩이 실패할 때 3중 복제본 테이블에 전체 로딩 실패. #59762
- SHOW CREATE VIEW 출력에서 누락된 매개변수. #59714
동작 변경 사항
- 일부 FE 메트릭에
is_leader레이블이 포함됩니다. #59883
3.5.0
출시일: 2025년 6월 13일
업그레이드 주의사항
- StarRocks v3.5.0부터는 JDK 17 이상이 필요합니다.
- v3.4 이전 버전에서 클러스터를 업그레이드하려면 StarRocks가 의존하는 JDK 버전을 업그레이드해야 하며, FE 설정 파일 fe.conf의 설정 항목
JAVA_OPTS에서 JDK 17과 호환되지 않는 옵션(예: CMS 및 GC 관련 옵션)을 제거해야 합니다. v3.5 설정 파일의 기본JAVA_OPTS값을 사용하는 것을 권장합니다. - 외부 카탈로그를 사용하는 클러스터의 경우, BE 설정 파일 be.conf의
JAVA_OPTS설정 항목에-add-opens=java.base/java.util=ALL-UNNAMED를 추가해야 합니다. - 또한 v3.5.0부터 StarRocks는 더 이상 특정 JDK 버전에 대한 JVM 설정을 제공하지 않습니다. 모든 JDK 버전에서
JAVA_OPTS를 사용합니다.
공유 데이터 개선사항
- 공유 데이터 클러스터에서 생성된 컬럼을 지원합니다.
- 공유 데이터 클러스터의 클라우드 네이티브 기본 키 테이블에서 특정 인덱스 재구축을 지원합니다. 인덱스의 성능도 최적화되었습니다.
- 대규모 데이터 로딩 작업의 실행 로직이 최적화되어 메모리 제한으로 인해 Rowset에 너무 많은 작은 파일이 생성되는 것을 방지합니다. 데이터 가져오기 중에 시스템이 임시 데이터 블록을 병합하여 작은 파일 생성을 줄임으로써, 가져오기 후 쿼리 성능을 향상시키고 후속 압축 작업을 줄여 시스템 리소스 활용도를 개선합니다.
데이터 레이크 분석
- [베타] Hive Metastore 통합을 통해 Iceberg 카탈로그에서 Iceberg 뷰 생성을 지원합니다. 또한 ALTER VIEW 문을 사용하여 외부 시스템과의 구문 호환성 향상을 위해 Iceberg 뷰의 방언을 추가하거나 수정할 수 있습니다.
- Iceberg REST 카탈로그에서 중첩 네임스페이스를 지원합니다.
- Iceberg REST 카탈로그에서 임대 자격 증명을 제공하기 위해
IcebergAwsClientFactory를 사용하여 AWS 클라이언트 생성을 지원합니다. - Parquet 리더가 Bloom Filter를 사용한 데이터 필터링을 지원합니다.
- 쿼리 중 Parquet 형식의 Hive/Iceberg 테이블에서 낮은 카디널리티 컬럼에 대한 전역 사전을 자동으로 생성하는 기능을 지원합니다.
성능 개선 및 쿼리 최적화
- 통계 최적화:
- 테이블 샘플링을 지원합니다. 물리적 파일의 데이터 블록을 샘플링하여 통계 정확도와 쿼리 성능을 개선했습니다.
- targeted 통계 수집을 위해 쿼리의 조건절 컬럼 기록을 지원합니다.
- 파티션 레벨 카디널리티 추정을 지원합니다. 시스템은 시스템 정의 뷰
_statistics_.column_statistics를 재사용하여 각 파티션의 NDV를 기록합니다. - 컬럼이 서로 연관된 시나리오에서 CBO가 생성한 쿼리 계획을 최적화하기 위해 다중 컬럼 결합 NDV 수집을 지원합니다.
- 히스토그램을 사용하여 조인 노드 카디널리티와 in_predicate 선택도를 추정하여 데이터 편향에서의 추정 정확도를 개선합니다.
- 쿼리 피드백이 최적화되었습니다. 동일한 구조를 가진 쿼리는 매개변수 값이 다르더라도 동일한 유형으로 분류되어 실행 계획 최적화를 위한 동일한 튜닝 가이드를 공유합니다.
- 특정 시나리오에서 Bloom Filter의 대안으로 Runtime Bitset Filter를 지원합니다.
- 조인 런타임 필터의 스토리지 레이어 푸시다운을 지원합니다.
- 파이프라인 이벤트 스케줄러를 지원합니다.
파티션 관리
- 저장소 효율성과 쿼리 성능을 최적화하기 위해 ALTER TABLE을 사용하여 시간 함수 기반의 표현식 파티션 병합을 지원합니다.
- 리스트 파티션 테이블과 구체화된 뷰에 대한 파티션 TTL(Time-to-live)을 지원합니다. 또한 테이블과 구체화된 뷰에서
partition_retention_condition속성을 지원하여 사용자가 리스트 파티션에 대한 데이터 보존 전략을 설정할 수 있어 더 유연한 파티션 삭제 전략을 구현할 수 있습니다. - ALTER TABLE을 사용하여 일반 파티션 표현식으로 지정된 파티션 삭제를 지원하여 사용자가 유연하게 파티션을 일괄 삭제할 수 있습니다.
클러스터 관리
- 시스템 안정성과 성능 향상을 위해 FE 컴파일 대상을 Java 11에서 Java 17로 업그레이드했습니다.
보안 및 인증
- MySQL 프로토콜 기반의 SSL로 암호화된 보안 연결을 지원합니다.
- 외부 시스템을 사용한 인증 강화:
- OAuth 2.0과 JSON Web Token (JWT)을 사용하여 StarRocks 사용자 생성을 지원합니다.
- 외부 시스템과의 인증 프로세스를 단순화하기 위한 보안 통합을 지원합니다. 보안 통합은 LDAP, OAuth 2.0, JWT를 지원합니다.
- 외부 인증 서비스에서 사용자 그룹 정보를 얻기 위한 그룹 제공자를 지원합니다. 그룹 정보는 인증 및 권한 부여에 사용될 수 있습니다. 그룹 제공자는 LDAP, 운영 체제 또는 파일에서 그룹 정보를 획득하는 것을 지원합니다. 사용자는
current_group()함수를 사용하여 자신이 속한 사용자 그룹을 조회할 수 있습니다.
구체화된 뷰
- 사용자가 더 유연한 전략으로 데이터를 파티셔닝할 수 있도록 다중 파티션 컬럼을 사용한 구체화된 뷰 생성을 지원합니다.
- 데이터의 시의성을 일정 부분 희생하더라도 성능 안정성을 유지하기 위해
query_rewrite_consistency를force_mv로 설정하여 시스템이 구체화된 뷰를 사용하도록 강제하는 것을 지원합니다.
로딩 및 언로딩
pause_on_json_parse_error속성을true로 설정하여 JSON 구문 분석 오류 발생 시 Routine Load 작업을 일시 중지하는 것을 지원합니다.- [베타] 다중 SQL 문을 사용한 트랜잭션을 지원합니다(현재는 INSERT만 지원). 사용자는 여러 로딩 작업의 ACID(원자성, 일관성, 격리성, 지속성) 속성을 보장하기 위해 트랜잭션을 시작, 적용 또는 취소할 수 있습니다.
함수
- 세션 및 전역 레벨에서 시스템 변수
lower_upper_support_utf8를 도입하여upper()및lower()와 같은 대소문자 변환 함수에서 UTF-8 문자열(특히 비 ASCII 문자)에 대한 지원을 강화했습니다. - 새로운 함수 추가:
field()ds_theta_count_distinct()array_flatten()inet_aton()percentile_approx_weight()
v3.5.0-RC01
Shared-data 개선사항
Shared-data clusters support generated columns. #53526
- 공유 데이터 클러스터 환경에서 클라우드 네이티브 기반의 Primary Key 테이블은 이제 특정 인덱스만 선별적으로 재구축할 수 있는 기능을 지원합니다. 또한 이러한 인덱스들의 성능이 최적화되었습니다. #53971 #54178
- 대규모 데이터 로딩 작업의 실행 로직이 최적화되어 메모리 제한으로 인해 Rowset에 너무 많은 소형 파일이 생성되는 문제를 방지합니다. 데이터 가져오기 과정에서 시스템은 임시 데이터 블록을 병합하여 소형 파일 생성을 줄임으로써, 가져오기 후 쿼리 성능을 향상시키고 후속 Compaction(압축) 작업을 감소시켜 시스템 자원 활용도를 개선합니다. #53954
Data Lake Analytics
- [Beta] Hive Metastore 통합을 통해 Iceberg Catalog에서 Iceberg 뷰 생성을 지원합니다. 또한 ALTER VIEW 구문을 사용하여 Iceberg 뷰의 방언(dialect)을 추가하거나 수정할 수 있어 외부 시스템과의 구문 호환성이 향상되었습니다.. #56120
- Iceberg REST Catalog에서 중첩 네임스페이스를 지원합니다. #58016
- Iceberg REST Catalog에서
IcebergAwsClientFactory를 사용하여 AWS 클라이언트를 생성할 수 있어 임대 자격 증명(vended credentials)을 제공할 수 있습니다. #58296 - Parquet 리더가 Bloom Filter를 사용한 데이터 필터링을 지원합니다. #56445
- 쿼리 실행 중 Parquet 형식의 Hive/Iceberg 테이블에서 낮은 카디널리티(고유값 수가 적은) 컬럼에 대해 글로벌 사전을 자동으로 생성하는 기능을 지원합니다. #55167
성능 향상 및 쿼리 최적화
- 통계 최적화:
- 테이블 샘플링 지원. 물리적 파일의 데이터 블록을 샘플링하여 통계 정확도와 쿼리 성능을 개선했습니다. #52787
- 쿼리의 조건절(predicate) 컬럼을 기록하여 선별적인 통계 수집을 지원합니다. #53204
- 파티션 수준의 카디널리티(고유값 수) 추정을 지원합니다. 시스템은
_statistics_.column_statistics시스템 정의 뷰를 재사용하여 각 파티션의 고유값 수(NDV)를 기록합니다. #51513 - 다중 컬럼 결합 고유값 수(Joint NDV) 수집을 지원하여 컬럼 간 상관관계가 있는 시나리오에서 비용 기반 최적화기(CBO)가 생성하는 쿼리 계획을 최적화합니다. #56481 #56715 #56766 #56836
- 히스토그램을 사용하여 조인 노드 카디널리티와 in-조건절 선택도를 추정함으로써 데이터 불균형(skew) 상황에서의 추정 정확도를 향상시킵니다. #57874 #57639
- 쿼리 피드백을 지원합니다. 동일한 구조를 가지지만 매개변수가 다른 쿼리들은 같은 유형으로 분류되어 계획 실행 최적화를 위한 동일한 튜닝 가이드를 공유합니다. #58306
- 특정 시나리오에서 블룸 필터의 대안으로 런타임 비트셋 필터(Runtime Bitset Filter)를 지원합니다. #57157
- 조인 런타임 필터를 스토리지 레이어로 푸시다운하는 기능을 지원합니다. #55124
- 파이프라인 이벤트 스케줄러를 지원합니다. #54259
Partition 관리
- ALTER TABLE 문을 사용하여 시간 함수 기반의 표현식 파티션을 병합하는 기능을 지원하여 저장 효율성과 쿼리 성능을 최적화합니다. #56840
- Listed 파티션된 테이블과 구체화된 뷰에 대해 파티션 TTL(Time-to-live, 수명 기간)을 지원합니다. 또한 테이블과 구체화된 뷰에서
partition_retention_condition속성을 지원하여 사용자가 리스트 파티션에 대한 데이터 보존 전략을 설정할 수 있게 함으로써, 더 유연한 파티션 삭제 전략을 구현할 수 있게 합니다. #53117 - ALTER TABLE 문을 사용하여 일반 파티션 표현식으로 지정된 파티션을 삭제하는 기능을 지원하여 사용자가 파티션을 일괄적으로 유연하게 삭제할 수 있습니다. #53118
Cluster 관리
- 시스템 안정성 과 성능 향상을 위해서 FE의 컴파일 기준을 Java11 에서 Java17로 변경하였습니다. #53617 #57030
보안 과 인증
- MySQL 프로토콜을 기반으로 SSL로 암호화된 보안 연결을 지원합니다. #54877
- 외부 시스템을 사용한 강화된 인증:
- OAuth 2.0 및 JSON 웹 토큰(JWT)을 사용하여 StarRocks 사용자 생성을 지원합니다.
- 외부 시스템과의 인증 프로세스를 단순화하기 위한 보안 통합(Security Integration)을 지원합니다. 보안 통합은 LDAP, OAuth 2.0 및 JWT를 지원합니다. #55846
- 외부 인증 서비스에서 사용자 그룹 정보를 얻기 위한 그룹 제공자(Group Provider)를 지원합니다. 이 그룹 정보는 인증 및 권한 부여에 활용될 수 있습니다. 그룹 제공자는 LDAP, 운영 체제 또는 파일에서 그룹 정보를 획득하는 것을 지원합니다. 사용자는
current_group()함수를 사용하여 자신이 속한 사용자 그룹을 조회할 수 있습니다.#56670
Materialized Views
- 다중 파티션 컬럼 또는 표현식 지정을 지원하여 사용자가 더 유연한 전략으로 데이터를 파티셔닝할 수 있습니다. #52576
query_rewrite_consistency옵션을force_mv로 설정하여 시스템이 쿼리 재작성에 구체화된 뷰(materialized view)를 강제로 사용하도록 지원합니다. 이를 통해 어느 정도 데이터 최신성을 희생하는 대신 성능 안정성을 유지할 수 있습니다. #53819
데이터 로딩 & 언로딩
- JSON 파싱 오류 발생 시 Routine Load 작업을 일시 중지할 수 있도록
pause_on_json_parse_error속성을true로 설정하는 기능을 지원합니다. #56062 - [Experimental] 여러 SQL 문을 포함하는 트랜잭션을 지원합니다(현재는 INSERT 문만 지원됨). 사용자는 트랜잭션을 시작, 적용 또는 취소하여 여러 로딩 작업의 ACID(원자성, 일관성, 격리성 및 지속성) 속성을 보장할 수 있습니다. #53978
함수들
- 세션 및 글로벌 레벨에서 시스템 변수
lower_upper_support_utf8이 도입되었습니다. 이를 통해upper()및lower()같은 대소문자 변환 함수에서 UTF-8 문자열(특히 비 ASCII 문자)에 대한 지원이 강화되었습니다. 이로써 한글, 중국어, 일본어 등 다양한 유니코드 문자에 대한 대소문자 처리가 개선되었습니다. #56192 - 새로운 함수들이 추가되었습니다:
field()#5533 - MySQL의 FIELD 함수 찾는 문자열의 위치를 리턴ds_theta_count_distinct()#56960 - DataSketches | 기반의 확률 유니크 값 함수array_flatten()#50080 - array 값을 펼처주는 함수inet_aton()#51883 - MySQL에 있는 INET_ATON() 함수와 동일 IP값을 숫자로 변경percentile_approx_weight()#57410 - 가중치를 적용한 근사 백분위수(percentile)를 계산하는 함수
Upgrade Notes
- StarRocks v3.5.0부터는 JDK 17 이상이 필수 요구사항입니다. v3.4 이하 버전에서 클러스터를 업그레이드하려면, StarRocks가 의존하는 JDK 버전을 업그레이드해야 하며, FE 설정 파일 fe.conf의 JAVA_OPTS 설정 항목에서 JDK 17과 호환되지 않는 옵션들을 제거해야 합니다. 예를 들어, CMS와 GC 관련 옵션이 이에 해당합니다. 또한, v3.5.0부터 StarRocks는 더 이상 특정 JDK 버전에 맞춘 JVM 설정을 제공하지 않습니다. 모든 JDK 버전은 JAVA_OPTS를 공통적으로 사용합니다.