ááŻááá á áŹááźááˇáşáááŻááşááᯠá ááşá¸áááşáááş áááŻááşá áŹá¸áážááşááąáŹááşá¸ á á˝ááşá¸ááąáŹááşáááşááźááˇáşááŹá¸ááąáŹá ááťá áşáá áşááąáŹá áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ ááąáŹáˇáááşáááŻá¸ááąááŹááąáˇá áşááᯠáĄááąáŹááşáĄáááşááąáŹáşááźááşá¸ááźááˇáşá áááşáážáááŹá¸áážááşá¸ (0.5) áááş ááźáŻááźááşááááşá¸ááááşá¸áážáŻáááŻááşáᏠááŻááşááźááşááťááşáá áşááŻááźá áşááźáŽá¸ áááşáááˇáşáááŻá¸áááşáážáŻááťáŹá¸ ááźáŽá¸ááŻáśá¸ááźáąáŹááşá¸áážááˇáş áĄááťáŹá¸áá°áážáŹ ááąáŹááşááŻáśá¸á ááşá¸áááşááźááşá¸áážááˇáş áááşááźáááşááźááşá¸áĄáááˇáşáááŻáˇ áá°á¸ááźáąáŹááşá¸ááźááşá¸ááźá áşááźáŽá¸á áááşá¸ááąáŹááş á áŹááźááˇáşáááŻááşá áááááŻáśá¸ ááŻááşááąáážáŻ áĄááźááˇáşáĄá áŻáśááᯠáá˝á˛áˇá ááşá¸ááźááşá¸ááźá áşáááşá libmdbx ááŻááş OpenLDAP Public License áĄáąáŹááşáá˝ááşá
MDBX á áŹááźááˇáşáááŻááşáááş ááááŹáááşáážáŹá¸á á˝áŹ ááźááşáááşááąá¸ááŹá¸ááŹá¸ááąáŹ áááşá¸ááŻáśáá áşááŻááźá áşáááşá â áĄááźáąááś "ááąáŹáˇáááşáááŻá¸" áĄáááşá¸á áá˝áąááąá¸áá˝áąáá° ááźážáŻááşáážáśááŹá¸ááąáŹ DBMS áááŤáᲠMultithreaded ááŻááşáááşá¸á ááşááťáŹá¸ááᯠááąááĄáááŻááş ááťážááąááŹá¸ááąáŹ (áá˝ááşáááşáááŻááş) ááąááŹááąáˇá áşáá áşááŻáážááˇáş áá áşááźááŻááşáááş ááááááąáŹááşááąáŹááş ááŻááşááąáŹááşáááŻááşá áąááŤáááşá áĄááźáŹá¸áá áşáááşáá˝ááşá MDBX áááş LMDB áááşáááŻáááŻááźááşáááşááźáŽá¸ ááŻáśááźááşá áááşááťáááąáŹá áááşá¸áá˛áˇáááŻáˇááąáŹ áááşá¸ááážáąáˇáááşáá°á áĄááááĄááşášááŤáááşáĄáŹá¸ááŻáśá¸ááᯠááááşá¸ááááşá¸ááŹá¸á ááşá áážááˇáş CPU cores ááťáŹá¸áá áşááťážáąáŹááş linear scaling ááźááˇáş ááááşáááŻáˇááźááşá¸áááŻááşááąáŹ á áŹáááşááźááşá¸á
MDBX áážááˇáş LMDB áĄááźáŹá¸ áĄááąá¸ááźáŽá¸ááŻáśá¸ áá˝áŹááźáŹá¸ááťááşááťáŹá¸
- áĄááźáąááśáĄáŹá¸ááźááˇáşá ááŻááşáĄáááşáĄáá˝áąá¸á á ááşá¸áááşááźááşá¸áážááˇáş áĄáááŻáĄááťáąáŹááş á á áşááąá¸áážáŻááťáŹá¸ááᯠáááŻááĄáŹááŻáśá ááŻááşáááşá
- áááˇáşáááşááąáŹááşááťáŹá¸ááᯠá á áşááąá¸ááźááşá¸ááž ááąááŹááąáˇá áşáááşááąáŹááşááŻáśááťáŹá¸á áĄáá˝ááşá¸áááŻááşá¸á á áşááąá¸áážáŻáĄáá ááŻááşááąáŹááşááťááşáĄáá˝ááşá¸ ááááŹáááşáážáŹá¸á á˝áŹ áááŻáááŻááááşá¸ááťáŻááşáááŻááşáááşá
- áĄáááŻáĄááťáąáŹááş á áŻá ááşá¸áážáŻáážááˇáş áĄáááŻáĄááťáąáŹááş ááąááŹááąáˇá áş áĄáá˝ááşáĄá áŹá¸ á áŽááśáááˇáşáá˝á˛áážáŻá
- 32-bit áážááˇáş 64-bit á ááşá¸ááąá¸áá˝á˛ááťáŹá¸áĄáá˝ááş ááąááŹááąáˇá áşááąáŹáşáááşáá áşááŻá
- áĄáááŻááşá¸áĄááźáŹá¸áĄáááŻááş ááá°ááŹáĄáá˝á˛ááťáŹá¸ááᯠáááˇáşáážááşá¸ááźááşá¸ (áĄáááŻááşá¸áĄááźáŹá¸áĄáááŻááş ááąá¸ááźááşá¸áážáŻ áááˇáşáážááşá¸ááťááş)á
- áááşááááşááťáŹá¸áážááˇáş áĄááŻáśá¸ááźáŻáá°áá˝áąá¸ááťááşáááŻááşááąáŹ ááąááŹááąáˇá áş á áŹááťááşáážáŹáĄáá˝ááşáĄá áŹá¸áááş áážá áşááááŻááźáŽá¸ááąáŹ ááŽá¸ááťáŹá¸áĄáá˝ááş ááśáˇáááŻá¸áážáŻá
libmdbx ááŻááşááąáááˇáş áááŻááşá áŹá¸áážááşááąáŹááşá¸áááş MDBX áážááˇáş MithrilDB áááąáŹááťááşááťáŹá¸ááᯠáá˝á˛ááŻááşáááş áŠááŻááşá 2019 ááŻáśá¸ááźááşááťááşá ááááşááźá áşáááşá libmdbx áá˝ááşá áááşáážááşá¸ááťááşáážáŹ áááşá¸áááŹáááŻááşááŹááźá˝áąá¸ááźáŽááťáŹá¸ááᯠáááşáááŻááşáááťážáááşáážáŹá¸áááşáážááˇáş á áŹááźááˇáşáááŻááşááᯠáááşááźáááşá áąáááşááźá áşáááşá ááááşááąáŹáˇá áá°ááááˇáşáážááşá¸ááťááşáá˛áˇ á áŽá ááşááŹá¸ááŹáááş ááŽáŚá¸áááşááťááşáážáŹ áĄááŻááşáážá áşááááą ááŻáśá¸á áááŻááźáŽá¸ááźáŽá¸ááźáąáŹááşáá˛áˇááŤáááş-
- ááśáˇáááŻá¸ááąáŹááşáá˝ááşááąá¸áá˛áˇááŤáááşá macOS áážááˇáş ááŻááááĄáááˇáş ááááşááąáŹááşá¸ááťáŹá¸- FreeBSDá Solarisá DragonFly BSDá OpenBSDá NetBSDá áááŻáĄááşááŤá AIX áážááˇáş HP-UX áĄáá˝ááş ááśáˇáááŻá¸áážáŻááᯠáááˇáşáá˝ááşá¸áááŻááşáááşá
- Undefined Behavior Sanitizer áážááˇáş Address Sanitizer ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááᯠáááˇáşá ááşááŹá¸ááźáŽá¸á "-Wpedantic" ááźááˇáş áááşááąáŹááşáááˇáşáĄá፠áááááąá¸ááťááşáĄáŹá¸ááŻáśá¸ááᯠCoverity Static Analyzer áááááąá¸ááťááşááťáŹá¸ á áááşáááŻáˇáá˛áˇáááŻáˇ áááşáážáŹá¸áá˛áˇáááşá
- áá˝ááşá¸ááś .
- ááźážáŻááşáážáśááŹáá˝ááş áá˝ááşáá°á áąáááşáĄáá˝ááş áááşá¸ááźá áşááŻááşááᯠááąáŤááşá¸á ááşá¸ááźááşá¸ (ááąáŤááşá¸á ááşá¸ááźááşá¸)á
- CMake ááśáˇáááŻá¸áážáŻá
- áĄáááŻááşáĄáááşá¸ áĄááąáŹááşá¸áĄáááşááťáŹá¸áĄáá˝ááş ááśáˇáááŻá¸áážáŻá
- OS ááźááşáááşá áááşááźááşá¸ áážáá ááážá ááŻáśá¸ááźááşáááş bootid ááᯠáĄááŻáśá¸ááźáŻááźááşá¸ (áá áşáááşááąáŹ ááąááŹááąáˇá áş áááşáááˇáşááźááşá¸)á
- áĄááŻáśá¸ááž áĄááŻáśá¸áĄáá áĄááşááááşááŻááşááŹá¸ááąáŹ/áĄááąáŹááşá¸ á áŹááťááşáážáŹááąáá˝ááşááźááşá¸áážááˇáş áááşáááŻá¸áá˝áąááąá¸áá˝áąáá° áĄááťááşáĄáááşá
- áá˝á˛ááŻáśá¸áááŻááşááąáŹááŻááşáá˝ááş áá˝ááˇáşááŹá¸ááźáŽá¸ááąáŹááąááŹááąáˇá áşáááŻáˇááťáááşáááşáááşáĄáá˝ááş áá˝áąá¸ááťááşá áᏠMDBX_ACCEDEá
- ááĄááŻáśá¸ááźáŻáážáŻ ááážááááŻááşááąáŹáĄááŤá
- áááŻááşáá˛áá˝ááş áá°ááąáŹáĄááśá
- áĄáá°á¸ááźáŻ ááźáŻááźááşááŹá¸ááąáŹ áĄáá˝ááşá¸áááŻááşá¸ á áŽááźááşá¸ áĄááşááááŻááŽáááş ("qsort()" áááş 2-3 á áááŻááźááşááźáŽá¸ "std::sort()" áááş 30% áĄáá)á
- áĄááťáŹá¸ááŻáśá¸ááąáŹáˇáĄáážááşááᯠáááŻá¸ááźážááˇáşááŹá¸áááşá
- ááźááŻáááşááźááşá¸áĄáŹá¸ áĄáááŻáĄááťáąáŹááş ááááşá¸ááťáŻááşááźááşá¸ (áážááşááŹááşáá˛áá˝ááş ááąááŹááąáˇá áşáááŻááş ááááşá¸áááşá¸ááźááşá¸áááşá¸ááťá°ááŹ)á
- áááŻáááŻááźááşá¸áááşááźáŽá¸ áááŻááźááşááąáŹ áĄáááŻáĄááťáąáŹááş á áŻá ááşá¸áážáŻá
- B+ áá áşáááşá áŹááťááşáážáŹááťáŹá¸ááᯠááąáŤááşá¸á ááşá¸áááşáĄáá˝ááş áááŻáááŻáááˇáşááťáąáŹáşááąáŹ ááťá°ááŹáá áşááŻá
- áááťáąáŹáşááááşáĄááŻáśá¸ááźáŻáážáŻááźáąáŹááˇáş ááąááŹááąáˇá áş ááąáŹááşááźááşááźááşá¸ááž ááŹáá˝ááşáááş á ááşáá˝ááşá¸áááŻááşááąáŹ áááŻááşá áá áşááťáŹá¸ (NFSá Samba á áááşáááŻáˇ) ááᯠá áąáŹááˇáşááźááˇáşááźááşá¸á
- á á áşááąá¸áážáŻáĄá áŻáśááᯠáááŻá¸ááťá˛áˇááźáŽá¸ááŤááźáŽá
libmdbx á "ááąáŹááşáá áşááŻ" ááŹá¸áážááşá¸ááᯠááŽá¸ááźáŹá¸áááąáŹááťááşáá áşááŻáĄááźá áş áááşáááşááąáŹáşááąáŹááşááŤáááşá MDBX á "áááşáážá" ááŹá¸áážááşá¸á áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻ vector áááş áááşáážááşáĄááşášááŤáááşááᯠáĄáąá¸áá˛á áąáááşáážááˇáş áááşá¸ááᯠáááşááźáááşá áąáááş áááşáá˝ááşááŤáááşá á¤ááŻáśá¸ááźááşááťááşááᯠáĄááźáąáŹááşá¸áĄáááşá¸ ááŻáśá¸ááŻááźááˇáş ááźáŻááŻááşáá˛áˇááźááşá¸ááźá áşáááş-
- ááŻáśá¸áááááŹááááźá áşááŤ- MithrilDB áááş á áŽá ááşááŹá¸áááˇáşáĄááşášááŤáááşáĄáŹá¸ááŻáśá¸ááᯠáĄááąáŹááşáĄáááşááąáŹáşáááşáĄáá˝ááş ááá°ááŽááąáŹ (ááááŹááááźá áş) ááąááŹááąáˇá áşáááŻááşááąáŹáşáááşáážááˇáş ááá°ááŽááąáŹ (ááááŹááááźá áş) API áá áşáᯠáááŻáĄááşáááşá
- áĄáááşá¸áĄááźá áşááŻááşáĄáá áş- MithrilDB áááşá¸ááźá áşááŻááşááᯠLMDB ááž ááŽá¸ááźáŹá¸áááŻááşá ááşáááŹá¸ááźáŽá¸á áááąáŹááťááşáááŻááşáááŻááşá ááá°ááŽááąáŹáááŻááşá ááşáá áşááŻáĄáąáŹááşáá˝ááş ááŻááşááąáááş á áŽá ááşááŹá¸áááş (áá˝ááˇáşááźáŻááŹá¸ááąáŹá Apache 2.0 áááŻááşá ááş áááŻááşááŤá ).
- áá˝á˛áá˝ááşááźááşá¸áááş ááźá áşáááŻááşááťáąáážáááąáŹ áážáŻááşáá˝áąá¸áážáŻááťáŹá¸ááᯠáážáąáŹááşáážáŹá¸áááşá áááŻáááŻáážááşá¸áááşá¸áážáŻááąá¸áᏠáááąáŹááťááşááťáŹá¸áĄáá˝ááş áá˝ááşáááşááąáŹ áá˝áśáˇááźááŻá¸áááŻá¸áááşááąá¸áááşá¸ááźáąáŹááşá¸ááťáŹá¸ááᯠááąááťáŹá áąááŤáááşá
MDBX áá˛áˇáááŻáˇ MithrilDB áááŻáááşá¸ áĄááźáąááśááŹá¸áááşá MDBX áážááˇáş LMDB áááŻáˇá áĄááźáąááśáĄáŹá¸áááşá¸ááťááşááťáŹá¸á á˝áŹááᯠáááşáážáŹá¸ááąá¸ááąá ááşáá˝ááş áĄáá˝ááşááźááˇáşááŹá¸ááąáŹ á á˝ááşá¸ááąáŹááşáááşáááŻáááşá¸ ááŤáážááááşá áĄáá°á¸áááźááˇáşá áážááşááťáŹá¸ááąáŹá áŹáááşááźááşá¸ááŻááşáááşá¸ááťáŹá¸ááźááˇáş áĄáážááŻááşááťáŹá¸ááŻááşááąáŹááşááźááşá¸ááᯠááááşáááŻáˇááŹá¸ááźááşá¸ááźáąáŹááˇáş ááąááŹááąáˇá áşá "ááąáŹááşáááşá¸ááźááşá¸" ááŻáááşáážáŹá¸áááˇáş "ááźáŹáážááşá á˝áŹáááşáážáŻááźááşá¸" áááźáżááŹááᯠáááşáážáŹá¸áá áşáááşááźá áşáááşá MithrilDB áĄááşášááŤáááşáĄáá áşááťáŹá¸ ááŤáááşáááş-
- ááąááŹááąáˇá áşááťáŹá¸ááᯠáĄááťááŻá¸ááťááŻá¸ááąáŹááŽááŽááŹáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸á á˝áŹáá˝ááş ááŹá¸áážáááźááşá¸áĄáá˝ááş ááśáˇáááŻá¸áážáŻ- HDDá SSD áážááˇáş ááááşááźáááşááąáŹáážááşááŹááşá
- "áá°"á "áá˝áąá¸" áážááˇáş "áĄáąá¸" ááąááŹáĄáá˝ááş "áááşáááŻá¸ááźááˇáş" áážááˇáş "áááşáááŻá¸áááşá¸" ááąááŹáĄáá˝ááş áĄááąáŹááşá¸ááŻáśá¸ááťá°ááŹááťáŹá¸á
- ááąááŹááąáˇá áşáááŻááşááŹáážáŻááᯠá áąáŹááˇáşááźááˇáşáááş Merkle áá áşáááşááᯠáĄááŻáśá¸ááźáŻááźááşá¸á
- WAL ááᯠá áááşááźááŻááşáá˝áąá¸ááťááşáĄááŻáśá¸ááźáŻáááŻááşááźáŽá¸ ááąááŹáááŻááşááŹáážáŻáĄáŹáááśááťááşááźááˇáş ááąá¸áááşáĄáá°á¸áááŻáĄááşááąáŹ áĄááźáąáĄááąááťáŹá¸áá˝ááş ááááááŹááŹááźááˇáşááŹá¸ááąáŹá á˝ááşá¸ááąáŹááşáááşá
- ááťááşá¸ááááąááąáŹ ááąááŹááťáŹá¸ááᯠáá áşááşááťáŹá¸ááąáŤáşáá˝ááş ááťá°á¸áá˝ááşáááşá
source: opennet.ru
