Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° SQLite Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄ HCtree, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΅Π΄ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π²ΠΈΡΠΎΠΊ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎΠ²ΠΈΡΡ Π±Π΅ΠΊΠ΅Π½Π΄ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° SQLite Π² ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΡΡΠ²ΡΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
Π‘ΡΡΡΠΊΡΡΡΠΈΡΠ΅ b-tree, ΠΊΠΎΠΈΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² SQLite Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π½Π΅ ΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΡΠ°ΠΊΠΎΠ²Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° SQLite Π΄ΠΎ Π·Π°ΠΏΠΈΡ Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ. ΠΠ°ΡΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΡΡΠΊΡΡΡΠ° HC-tree, ΠΏΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π·Π°ΠΏΠΈΡ.
ΠΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² HCtree Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° MVCC (ΠΌΠ½ΠΎΠ³ΠΎΠ²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ), Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΡΡΡΠ°Π½ΠΈΡΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΠΏΡΠΈΠ²ΡΡΠ·Π°Π½ΠΎΡΡ ΠΊΡΠΌ ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠΈΠΈΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π²Π°Ρ Π²ΠΈΠ΄ΠΈΠΌΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°.
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ:
- Β«BEGINΒ» β ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ Π½Π΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° Π΄ΡΡΠ³ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π·Π°ΠΏΠΈΡ Π²ΡΡΡΠ΅ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΈΠΊΡΠΈΡΠ°Π½Π° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π² ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π½Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π·Π°ΠΏΠΈΡ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
- Β«BEGIN CONCURRENTΒ» β ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° Π΄ΡΡΠ³ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π·Π°ΠΏΠΈΡ Π²ΡΡΡΠ΅ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΈΠΊΡΠΈΡΠ°Π½Π°, Π°ΠΊΠΎ ΠΎΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ° Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ° Π±ΠΈΠ»ΠΈ ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
- Β«BEGIN EXCLUSIVEΒ» β ΡΠ»Π΅Π΄ ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄ΠΎ Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅.
HCtree ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π² ΡΡΠΈΠ» "master-slave", ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Π΄ΡΡΠ³Π° ΠΠ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° Π²ΡΠΎΡΠΈΡΠ½ΠΈ ΠΠ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΠ. HCtree ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΠ - Π²ΠΌΠ΅ΡΡΠΎ 32-Π±ΠΈΡΠΎΠ²ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ Π΄Π°Π½Π½ΠΈ, HCtree ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° 48-Π±ΠΈΡΠΎΠ²ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΠ ΠΎΡ 16 ΡΠ΅Π±ΠΈΠ±Π°ΠΉΡΠ° Π΄ΠΎ 1 ΡΠΊΡΠ±ΠΈΠ±Π°ΠΉΡ (ΠΌΠΈΠ»ΠΉΠΎΠ½ ΡΠ΅Π±ΠΈΠ±Π°ΠΉΡΠ°). ΠΡΠ°ΠΊΠ²Π° ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° SQLite Ρ HCtree ΠΊΠ°ΡΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-Π½ΠΈΡΠΊΠ° ΠΎΡ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄Π½ΠΎΠΏΠΎΡΠΎΡΠ΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄. ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π½Π° SQLite Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° HCtree ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠ°ΠΊΡΠΎ Π΄ΠΎ ΠΠ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° HC-tree, ΡΠ°ΠΊΠ° ΠΈ Π΄ΠΎ ΡΡΠ°ΡΠΈ SQLite ΠΠ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
