변경 이력 (Changelog)
DBX의 주요 변경사항을 기록합니다.
Keep a Changelog 형식을 따르며, Semantic Versioning 규칙을 준수합니다.
[0.0.5-beta] - 2026-02-16
전체 언어 바인딩 API 동기화 릴리스. ● = 기존, 🆕 = 이번 릴리스에서 추가.
바인딩 API 매트릭스
| API | Node.js | Python | FFI/C | C# | C++ |
|---|---|---|---|---|---|
open / open_in_memory |
● | ● | ● | ● | ● |
insert / get / delete |
● | ● | ● | ● | ● |
count |
🆕 | 🆕 | ● | 🆕 | ● |
flush |
🆕 | 🆕 | ● | 🆕 | ● |
insert_batch |
● | 🆕 | 🆕 | 🆕 | 🆕 |
scan |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
range |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
table_names |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
gc |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
is_encrypted |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
execute_sql |
● | 🆕 | 🆕 | 🆕 | 🆕 |
create_index / drop_index / has_index |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
save_to_file / load_from_file |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
insert_versioned |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
get_snapshot |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
current_timestamp / allocate_commit_ts |
🆕 | 🆕 | 🆕 | 🆕 | 🆕 |
Transaction (begin / commit / rollback) |
● | ● | ● | ● | 🆕 |
FFI 참고: 컬렉션 반환은 opaque 핸들 패턴 (
DbxScanResult,DbxStringList) + 접근자 + free 함수로 구현.
수정
dbx-ffi의clippy::manual-c-str-literals경고 수정 (b"No error\0"→c"No error")
[0.0.4-beta] - 2026-02-15
첫 번째 기능 릴리스. 쿼리 실행 파이프라인 전면 최적화.
새로운 기능
- 쿼리 플랜 캐시 — 동일 SQL을 반복 실행할 때 파싱/최적화를 건너뛰는 2계층(메모리 + 디스크) 캐시 도입
- 병렬 쿼리 실행 — 대량 데이터 필터링, 집계, 프로젝션을 Rayon 스레드 풀로 병렬 처리
- WAL 파티셔닝 — 테이블별 독립 WAL 파티션으로 쓰기 병목 해소
- 스키마 버저닝 — 무중단 DDL 지원. 스키마 변경 이력 관리 및 버전별 롤백
- 인덱스 버저닝 — 인덱스 재구축 이력 관리 및 성능 추적
- 기능 플래그 — 런타임에 개별 기능을 켜고 끌 수 있는 토글 시스템 (환경변수 / 파일 저장 지원)
- UDF 프레임워크 — 사용자 정의 함수 (스칼라, 집계, 테이블), 트리거, 스케줄러
- 벤치마크 프레임워크 — Criterion 기반 성능 측정 및 Before/After 비교 도구
- PTX Persistent Kernel — NVRTC 기반 런타임 CUDA 커널 컴파일. GPU에서 상주하며 work queue 처리 (
gpufeature, 옵셔널) - Hash/Range 샤딩 — GPU 샤드 전략: 해시 기반(ahash) 및 범위 기반 행 분배
- CUDA 스트림 관리 —
fork_default_stream()을 통한 별도 스트림 생성 - 스키마 기반 INSERT 직렬화 — 테이블 스키마 존재 시 컬럼명 키를 가진 JSON 객체 직렬화
- JOIN 최적화 — INNER JOIN에서 크기 기반 build/probe 테이블 스왑 (작은 테이블을 build로 사용)
- Tombstone 삭제 — 컬럼나 델타 스토리지에 버저닝 tombstone 지원
- 테이블별 캐시 무효화 — 전체 캐시 초기화 대신 테이블 단위 선택적 제거
성능 개선
| 항목 | 이전 | 이후 | 개선폭 |
|---|---|---|---|
| SQL 반복 파싱 (10회) | 146 µs | 20 µs | 7.3x |
| WAL 100건 쓰기 | 1,016 µs | 71 µs | 14.2x |
| 스키마 조회 (싱글스레드) | 86 ns | 46 ns | 47% |
| 스키마 조회 (8스레드 동시) | 7.4M ops/s | 18.1M ops/s | 2.44x |
| 소규모 집계 (150행) | 32.5 µs | 991 ns | 33x |
리팩토링
- SQL 옵티마이저 — 874줄 단일 파일
optimizer.rs를 모듈 디렉토리 구조로 분리 (6파일: trait, 규칙 4개, 테스트) - CREATE FUNCTION — 괄호 파라미터 실제 파싱 구현
- ORDER BY —
sqlparser0.52OrderBy.exprsAPI 테스트 활성화
내부 변경
SchemaVersionManager내부 저장소를RwLock<HashMap>→DashMap으로 전환하여 동시 읽기 성능 향상ParallelQueryExecutor의 병렬화 판단 기준을 batch 수에서 총 행 수 기반으로 변경 (기본 1,000행 미만은 순차 실행)- SQL 파서에 동적 스레딩 및 배치 크기 자동 조절 적용
cudarc0.19.2의 Unified Memory, P2P 감지, Persistent Kernel 제한사항 문서화
의존성
dashmap6.x 추가 (락프리 동시 해시맵)rayon1.x 추가 (병렬 처리)criterion0.5 추가 (벤치마크)
[0.0.3-beta] - 2026-02-15
추가
- Python, Node.js, .NET 패키지 상세 사용법 가이드
- JSON 데이터 처리 예제
- 배치 작업 및 에러 처리
- 실전 예제 (KV Store, Session Manager, Cache Wrapper)
- Node.js TypeScript 지원
- ASP.NET Core 통합 예제
- 모든 언어 바인딩에 대한 이중 언어 문서 (영문 + 한글)
변경
- 플랫폼 지원: Windows x64 전용으로 수정 (Linux/macOS 계획됨)
- Cargo.toml:
homepage를 GitHub Pages로 변경 - crates.io:
dbx-core만 배포 (dbx-derive,dbx-ffi제거) - 문서: Derive Macro 섹션 제거 (프로덕션에서 미사용)
- Doc Comment: Rust doc comment를 영문으로 변환 (docs.rs 일관성)
수정
- 과대 광고된 플랫폼 지원 (이전: 모든 플랫폼, 현재: Windows x64 전용)
- 패키지 간 버전 불일치
[0.0.2-beta] - 2026-02-15
추가
- 모든 언어 바인딩 패키지 문서화 (Rust, .NET, Python, Node.js, C/C++)
- GitHub Pages 이중 언어 문서 (영어 + 한국어) 패키지별 제공
- CHANGELOG.md 생성
- NuGet 패키지 메타데이터 (버전, 라이선스, README)
- 모든 Rust 크레이트 Cargo.toml에
readme필드 추가 - GitHub Release 워크플로우에
permissions: contents: write추가
변경
- CI/CD: 단일 릴리스 워크플로우를 레지스트리별 독립 워크플로우로 분리
publish-crates.yml— crates.io (dbx-derive → dbx-core → dbx-ffi 순서)publish-nuget.yml— NuGetpublish-pypi.yml— PyPIpublish-npm.yml— npmrelease.yml— 빌드 + 테스트 + GitHub Release 생성만 담당
- 버전: 모든 패키지를
0.0.2-beta로 통일 - 라이선스: crates.io 호환을 위해
MIT로 단순화 - 워크스페이스 메타데이터:
repository,homepage,documentation상속 추가 - crates.io: publish 명령에서
|| true제거,--no-verify추가, 인덱스 대기 60초로 증가
수정
- NuGet 403 오류: API 키 권한 설정 가이드
- PyPI 400 오류: PEP 440 형식으로 버전 수정 (
0.0.2b0) - npm EOTP 오류: 2FA 우회를 위한 Granular Access Token 가이드
- crates.io 순환 의존성:
dbx-derivedev-dependency에서version제거 - GitHub Release 403:
contents: write권한 추가 edition = "2024"유지하여let chains문법 지원
[0.0.1-beta] - 2026-02-12
추가
- 최초 릴리스
- 5-Tier 하이브리드 스토리지 엔진 (WOS → L0 → L1 → L2 → Cold)
- MVCC 트랜잭션 지원 (스냅샷 격리)
- SQL 엔진 (CREATE TABLE, INSERT, SELECT, UPDATE, DELETE)
- Write-Ahead Logging (WAL) 장애 복구
- 언어 바인딩: Rust, C#/.NET, Python, Node.js, C/C++
- 암호화 지원 (AES-GCM-SIV, ChaCha20-Poly1305)
- Arrow/Parquet 네이티브 컬럼나 포맷
- GitHub Pages 문서 사이트
- GitHub Actions CI/CD 파이프라인
- SQLite, Sled, Redb 비교 벤치마크