B+ ํธ๋ฆฌ ๊ตฌํ
1. ๊ธฐ๋ณธ ๊ตฌ์กฐ ๊ตฌํ
- ๋ ธ๋(Node)์ ํธ๋ฆฌ(BPlusTree) ๊ตฌ์กฐ์ฒด ์ ์
- ์ ๋ค๋ฆญ ํ์ ๋งค๊ฐ๋ณ์ (K: Ord, V)
- Box, Rc, RefCell์ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ๊ธฐ๋ณธ ์์ฑ์ (new) ๊ตฌํ
- ํธ๋ฆฌ๊ฐ ๋น์ด์๋์ง ํ์ธํ๋ ๊ธฐ๋ฅ (is_empty)
2. ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ
- ๋จ์ผ ํค ๊ฒ์ ๋ฉ์๋ (search)
- ์ด์ง ๊ฒ์์ ์ฌ์ฉํ ํค ์ฐพ๊ธฐ
- ๋ด๋ถ ๋ ธ๋ ํ์
- ๋ฆฌํ ๋ ธ๋์์ ๊ฐ ์ฐพ๊ธฐ
- ํ ์คํธ ์ผ์ด์ค ์์ฑ
3. ์ฝ์ ๊ธฐ๋ฅ ๊ตฌํ
- insert ๋ฉ์๋ ๊ตฌํ
- ์ฒซ ๋ ธ๋ ์์ฑ ์ฒ๋ฆฌ
- ๋ฆฌํ ๋ ธ๋ ์ฐพ๊ธฐ
- ๋ฆฌํ ๋ ธ๋์ ํค-๊ฐ ์ ์ฝ์
- ๋
ธ๋ ๋ถํ (split) ๊ตฌํ
- ๋ถํ ์์ ๊ฒฐ์ (order ๊ธฐ๋ฐ)
- ๋ฆฌํ ๋ ธ๋ ๋ถํ
- ๋ด๋ถ ๋ ธ๋ ๋ถํ
- ๋ถ๋ชจ ๋ ธ๋๋ก ํค ์ ํ
- ๋ฃจํธ ๋ ธ๋ ๋ถํ ์ฒ๋ฆฌ
- ๋ฆฌํ ๋ ธ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ด๋ฆฌ
- ํ ์คํธ ์ผ์ด์ค ์์ฑ
4. ์ํ ๋ฐ ๋ฒ์ ๊ฒ์
- ๋ฒ์ ๊ฒ์ ๋ฉ์๋ (range_search) ๊ตฌํ
- ์์ ํค์ ๋ฆฌํ ๋ ธ๋ ์ฐพ๊ธฐ
- ๋ฆฌํ ๋ ธ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์ํ
- ๋ฒ์ ๋ด์ ๋ชจ๋ ํค-๊ฐ ์ ์์ง
- ๋ฐ๋ณต์ ๊ตฌํ
- IntoIterator ํธ๋ ์ดํธ ๊ตฌํ
- ์์ฐจ ์ ๊ทผ ๋ฐ๋ณต์
- ๋ฒ์ ์ ๊ทผ ๋ฐ๋ณต์
- ํ ์คํธ ์ผ์ด์ค ์์ฑ
5. ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ
- delete ๋ฉ์๋ ๊ตฌํ
- ์ญ์ ํ ํค์ ๋ฆฌํ ๋ ธ๋ ์ฐพ๊ธฐ
- ๋ฆฌํ ๋ ธ๋์์ ํค-๊ฐ ์ ์ ๊ฑฐ
- ์ธ๋ํ๋ก์ฐ ์ฒ๋ฆฌ
- ์ต์ ํค ๊ฐ์ ํ์ธ
- ํ์ ๋ ธ๋์ ์ฌ๋ถ๋ฐฐ
- ํ์ ๋ ธ๋์ ๋ณํฉ
- ๋ถ๋ชจ ๋ ธ๋์ ํค ์ ๋ฐ์ดํธ
- ๋ฃจํธ ๋ ธ๋ ์ฒ๋ฆฌ
- ๋ฆฌํ ๋ ธ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์ ๋ฐ์ดํธ
- ํ ์คํธ ์ผ์ด์ค ์์ฑ