-
Valkey 8에 반영된 개선사항 - 살펴 볼 목록 나열하기개발하면서/코드보면서 2025. 5. 23. 17:00반응형
Valkey 8에서 개선된 사항을 알아 보는 중인데 Valkey 블로그에 소개된 것 말고도 더 알고 싶다.
어떤걸 볼지 먼저 정리하고 살펴보는게 좋겠다는 생각을 했는데 마침 잘 정리한 릴리즈 노트 사이트(?)를 발견했다.
기능 개발은 제외하고 성능 개선과 메모리 절약하는 수정 사항 중에서
왠지 모르게 끌리는 내용들을 정리해봤다.
https://docs.percona.com/valkey/release-notes/release-notes.html Valkey 8에 적용된 성능개선 또는 메모리 절약 수정사항 List
8.0.0 RC1
- Embed key directly in main dictionary entry for improved memory efficiency. (#541)
- Use thread-local storage to reduce atomic contention in updating memory metrics. (#674)
- Reduce redundant calls to prepareClientToWrite for continuous addReply*. (#670)
- Optimize the logic for checking conversion to skip list during ZADD operations. (#806)
- Optimize sdsfree with zfree_with_size to avoid redundant size calculation. (#453)
- Optimize DEL command to avoid redundant deletions for expired keys. (Redis#13080)
- Optimize hash table resizing to include empty dictionaries. (Redis#12819)
- Optimize ZRANGE offset location from linear search to skip list jump. (Redis#12450)
8.0.0. RC2
- Optimize ZUNION[STORE] command by removing unnecessary accumulator dict. (#829)
- Optimize various commands by using sdsAllocSize instead of sdsZmallocSize. (#923)
- Using intrinsics to optimize counting HyperLogLog trailing bits. (#846)
- Free client’s MULTI state when it becomes dirty to reduce memory usage. (#961)
- Optimize the fast path of SET if the expiration time has already expired. (#865)
8.0.0 GA
- Optimized the handling of temporary set objects in SUNION and SDIFF commands, resulting in a 41% performance improvement for SUNION and 27% for SDIFF. (#996)
8.1.0 RC1
- Introduce a new memory efficient hash table to store keys (#1186)
- Accelerate hash table iterator with prefetching (#1501)
- Accelerate hash table iterator with value prefetching (#1568)
- Replace dict with new hashtable: hash datatype (#1502)
- Replace dict with new hashtable for sets datatype (#1176)
- Replace dict with new hashtable: sorted set datatype (#1427)
- Move prepareClientToWrite out of loop for HGETALL command (#1119)
- Trim free space from inline command argument strings to avoid excess memory usage (#1213)
- Increase the max number of io threads to 256. (#1220)
- Optimize sdscatrepr by batch processing printable characters (#1342)
- Optimize ZRANK to avoid path comparisons (#1389)
- Move clientCron onto a separate timer (#1387)
- Client struct: lazy init components and optimize struct layout (#1405)
8.1.0 RC2
- Embed hash value in hash data type entries to reduce memory footprint (#1579)
반응형