Expand description
§실시간 사전 업데이트 (Hot Reload) 모듈
무중단 사전 교체, 파일 변경 감지, 버전 관리 기능을 제공합니다.
§주요 기능
- 파일 변경 감지: notify 크레이트를 통한 자동 감지
- 무중단 교체:
RwLock과 Copy-on-Write 전략 - 델타 업데이트: 변경분만 적용하여 성능 최적화
- 버전 관리: 사전 버전 추적 및 롤백 지원
- 스레드 안전성: 동시 읽기/쓰기 처리
§아키텍처
┌─────────────────────────────────────────┐
│ HotReloadDictionary │
│ - RwLock<VersionedDictionary> │
│ - FileWatcher (notify) │
└─────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌────────────────┐
│ System Dict │ │ User Dict │
│ (Read-only) │ │ (Mutable) │
└─────────────────┘ └────────────────┘§사용 예제
ⓘ
use mecab_ko_dict::hot_reload::{HotReloadDictionary, DeltaUpdate, DeltaUpdateBuilder};
// 핫 리로드 사전 생성
let dict = HotReloadDictionary::new("/path/to/dict").unwrap();
// 실시간 엔트리 추가
dict.add_entry("딥러닝", "NNG", -1000i16, None).unwrap();
// 델타 업데이트 적용
let delta = DeltaUpdateBuilder::new()
.add("머신러닝", "NNG", -1000)
.add("자연어처리", "NNG", -1000)
.build();
dict.apply_delta(delta).unwrap();
// 버전 관리
let version = dict.current_version();
dict.rollback(version - 1).unwrap();§성능 특성
- 읽기: Lock contention 최소화 (
RwLock) - 쓰기:
Copy-on-Write로 기존 읽기 영향 없음 - 델타 업데이트: O(변경분) 복잡도
- 메모리: 버전당 증분 메모리 사용
Structs§
- Delta
Update - 델타 업데이트
- Delta
Update Builder - 델타 업데이트 빌더
- Entry
Change - 엔트리 변경 정보
- HotReload
Dictionary - 핫 리로드 가능한 사전
- Version
Info - 버전 정보
Type Aliases§
- Version
- 사전 버전