ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಎಂಬೆಡೆಡ್ DBMS libmdbx 0.10.4 ಮತ್ತು libfpta 0.3.9 ಬಿಡುಗಡೆ

libmdbx 0.10.4 (MDBX) ಲೈಬ್ರರಿಗಳು ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಕಾಂಪ್ಯಾಕ್ಟ್ ಎಂಬೆಡೆಡ್ ಕೀ-ಮೌಲ್ಯದ ಡೇಟಾಬೇಸ್ ಮತ್ತು ದ್ವಿತೀಯ ಮತ್ತು ಸಂಯೋಜಿತ ಸೂಚಿಕೆಗಳೊಂದಿಗೆ ಡೇಟಾದ ಕೋಷ್ಟಕ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಂಬಂಧಿತ libfpta 0.3.9 (FPTA) ಲೈಬ್ರರಿಯ ಅನುಷ್ಠಾನದೊಂದಿಗೆ ಬಿಡುಗಡೆ ಮಾಡಲ್ಪಟ್ಟವು. MDBX ಮೇಲೆ. ಎರಡೂ ಗ್ರಂಥಾಲಯಗಳನ್ನು OSI ಅನುಮೋದಿತ ಪರವಾನಗಿಗಳ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗುತ್ತದೆ. ಎಲ್ಲಾ ಪ್ರಸ್ತುತ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಮತ್ತು ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳು ಬೆಂಬಲಿತವಾಗಿದೆ, ಹಾಗೆಯೇ ರಷ್ಯಾದ ಎಲ್ಬ್ರಸ್ 2000.

ಐತಿಹಾಸಿಕವಾಗಿ, libmdbx ಎನ್ನುವುದು LMDB DBMS ನ ಆಳವಾದ ಪುನರ್ನಿರ್ಮಾಣವಾಗಿದೆ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆ, ವೈಶಿಷ್ಟ್ಯದ ಸೆಟ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯಲ್ಲಿ ಅದರ ಪೂರ್ವಜರಿಗಿಂತ ಉತ್ತಮವಾಗಿದೆ. LMDB ಗೆ ಹೋಲಿಸಿದರೆ, libmdbx ಕೋಡ್ ಗುಣಮಟ್ಟ, API ಸ್ಥಿರತೆ, ಪರೀಕ್ಷೆ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ತಪಾಸಣೆಗೆ ಹೆಚ್ಚಿನ ಒತ್ತು ನೀಡುತ್ತದೆ. ಕೆಲವು ಚೇತರಿಕೆ ಸಾಮರ್ಥ್ಯಗಳೊಂದಿಗೆ ಡೇಟಾಬೇಸ್ ರಚನೆಯ ಸಮಗ್ರತೆಯನ್ನು ಪರಿಶೀಲಿಸುವ ಉಪಯುಕ್ತತೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ.

ತಂತ್ರಜ್ಞಾನದ ಪ್ರಕಾರ, libmdbx ಸಿಪಿಯು ಕೋರ್‌ಗಳಾದ್ಯಂತ ಲೀನಿಯರ್ ಸ್ಕೇಲಿಂಗ್‌ನೊಂದಿಗೆ ACID, ಬಲವಾದ ಬದಲಾವಣೆಯ ಧಾರಾವಾಹಿ ಮತ್ತು ನಿರ್ಬಂಧಿಸದ ರೀಡ್‌ಗಳನ್ನು ನೀಡುತ್ತದೆ. ಸ್ವಯಂ ಸಂಕುಚಿತಗೊಳಿಸುವಿಕೆ, ಸ್ವಯಂಚಾಲಿತ ಡೇಟಾಬೇಸ್ ಗಾತ್ರ ನಿರ್ವಹಣೆ ಮತ್ತು ಶ್ರೇಣಿಯ ಪ್ರಶ್ನೆಯ ಅಂದಾಜು ಬೆಂಬಲಿತವಾಗಿದೆ. 2016 ರಿಂದ, ಯೋಜನೆಗಳಿಗೆ ಧನಾತ್ಮಕ ತಂತ್ರಜ್ಞಾನಗಳಿಂದ ಹಣ ನೀಡಲಾಗಿದೆ ಮತ್ತು 2017 ರಿಂದ ಅದರ ಉತ್ಪನ್ನಗಳಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

libmdbx C++ API ಅನ್ನು ನೀಡುತ್ತದೆ, ಜೊತೆಗೆ Rust, Haskell, Python, NodeJS, Ruby, Go, ಮತ್ತು Nim ಗಾಗಿ ಉತ್ಸಾಹಿ-ಬೆಂಬಲಿತ ಭಾಷಾ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ನೀಡುತ್ತದೆ. libfpta ಗಾಗಿ, API ವಿವರಣೆ ಮಾತ್ರ C/C++ ಹೆಡರ್ ಫೈಲ್ ರೂಪದಲ್ಲಿ ಸಾರ್ವಜನಿಕವಾಗಿ ಲಭ್ಯವಿದೆ.

ಮೇ 9 ರಂದು ಹಿಂದಿನ ಸುದ್ದಿಯಿಂದ ಪ್ರಮುಖ ಆವಿಷ್ಕಾರಗಳು, ಸುಧಾರಣೆಗಳು ಮತ್ತು ತಿದ್ದುಪಡಿಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ:

  • ಪುನರುತ್ಪಾದಿಸಬಹುದಾದ ನಿರ್ಮಾಣಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
  • ಒಂದು ದೋಷವನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ ಈ ಕಾರಣದಿಂದಾಗಿ, ಬಹಳ ಅಪರೂಪದ ಸಂದರ್ಭಗಳಲ್ಲಿ, ವಹಿವಾಟಿನ ಸಮಯದಲ್ಲಿ ಲೂಪ್/ಫ್ರೀಜ್ ಸಂಭವಿಸಬಹುದು. ತಮ್ಮ ಉತ್ಪನ್ನಗಳ ಆಂತರಿಕ ಪರೀಕ್ಷೆಯ ಸಮಯದಲ್ಲಿ ಧನಾತ್ಮಕ ತಂತ್ರಜ್ಞಾನಗಳ ತಜ್ಞರು ಸಮಸ್ಯೆಯನ್ನು ಗುರುತಿಸಿದ್ದಾರೆ.
  • ಪರೀಕ್ಷೆಗಳನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ ಮತ್ತು ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಪುಟ ಟ್ರೀ ಮತ್ತು ಜಿಸಿ ವಿಷಯಗಳ ಎಲ್ಲಾ ತಲುಪಬಹುದಾದ ಐಸೊಮಾರ್ಫಿಕ್ ಅಲ್ಲದ ಸ್ಥಿತಿಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಪರೀಕ್ಷಾ ಸನ್ನಿವೇಶಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ.
  • C++ API ನಲ್ಲಿ, ಹೆಚ್ಚುವರಿ "noexcept" ಅನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ, "ಕರ್ಸರ್:: erase()" ವಿಧಾನಕ್ಕಾಗಿ ಹೆಚ್ಚುವರಿ ಓವರ್‌ಲೋಡ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಬಫರ್‌ಗಳ ಅನುಷ್ಠಾನವು ಜೋಡಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು "std:: string" ಬಳಕೆಯನ್ನು ಉಳಿಸಲಾಗಿದೆ. (CLANG libstdc++ ಗೆ ಸಂಬಂಧಿಸಿದೆ).
  • ಬೃಹತ್ ವಹಿವಾಟುಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸುವಾಗ ಅಪರೂಪದ ಅನಿರೀಕ್ಷಿತ ದೋಷ MDBX_PROBLEM ನಿಂದ ಪ್ರಕಟವಾದ ಡರ್ಟಿ ಪೇಜ್ ಸ್ಪಿಲಿಂಗ್ ಅಲ್ಗಾರಿದಮ್‌ನಲ್ಲಿ (ಬದಲಾದ ಡೇಟಾಬೇಸ್ ಪುಟಗಳ ಆಯ್ದ ಎಜೆಕ್ಷನ್) ಹಿಂಜರಿತವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.
  • ಡೇಟಾಬೇಸ್‌ಗೆ ಉದ್ದೇಶಪೂರ್ವಕ ಹಾನಿಯ ಸಂದರ್ಭದಲ್ಲಿ ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಹಲವಾರು ಚೆಕ್‌ಗಳನ್ನು ಸೇರಿಸುವುದರೊಂದಿಗೆ ಹಂತ ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸಲಾಯಿತು.
  • ಸ್ಥಿರವಾದ ಸಣ್ಣ ಎಚ್ಚರಿಕೆಗಳು ವ್ಯಾಖ್ಯಾನಿಸದ ನಡವಳಿಕೆ ಸ್ಯಾನಿಟೈಜರ್ ಮತ್ತು ಕವರ್ಟಿ ಸ್ಕ್ಯಾನ್ ಸಮಸ್ಯೆಗಳು.
  • ಲೈಬ್ರರಿಯ ಹಳೆಯ ಆವೃತ್ತಿಗಳಿಂದ ರಚಿಸಲಾದ ಡೇಟಾಬೇಸ್ ಚಿತ್ರಗಳ ಒಳಗಿನ ನೆಸ್ಟೆಡ್ ಪುಟಗಳಲ್ಲಿ ಹಳೆಯದಾದ ಮತ್ತು ಇನ್ನು ಮುಂದೆ ಬಳಸದ ಆಂತರಿಕ ಫ್ಲ್ಯಾಗ್ "P_DIRTY" ಅನ್ನು ಪರಿಶೀಲಿಸುವುದನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ.
  • CMake ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಲ್ಲಿ, LTO (ಲಿಂಕ್-ಟೈಮ್ ಆಪ್ಟಿಮೈಸೇಶನ್) ಗೆ ಅಗತ್ಯವಿರುವ ಕಂಪೈಲರ್ ಘಟಕಗಳ ಹುಡುಕಾಟವನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ.
  • ಏಕಕಾಲದಲ್ಲಿ ಓದುವವರ ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯನ್ನು 32767ಕ್ಕೆ ಹೆಚ್ಚಿಸಲಾಗಿದೆ.
  • Valgrind ಮತ್ತು AddressSanitizer ಬಳಸುವಾಗ ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ.
  • ವಿಂಡೋಸ್‌ನಲ್ಲಿ, MDBX_NOTLS ಮೋಡ್‌ನಲ್ಲಿ (ಥ್ರೆಡ್ ಸ್ಥಳೀಯ ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸದೆ) ಕೆಲಸ ಮಾಡುವಾಗ SRW-ಲಾಕ್‌ನ ಪುನರಾವರ್ತಿತ ಬಳಕೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ, ಸಿಸ್ಟಮ್ ಸಮಯ ಬದಲಾಗಿದ್ದರೆ ಬೂಟಿಡ್ ಉತ್ಪಾದನೆಯನ್ನು ಸರಿಪಡಿಸಲಾಗಿದೆ, WSL1 ಮತ್ತು WSL2 ಪತ್ತೆಯನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ ಮತ್ತು ಸಾಮರ್ಥ್ಯ DrvFS ಮೂಲಕ ಅಳವಡಿಸಲಾದ ಯೋಜನೆ 9 ರಲ್ಲಿ ಡೇಟಾಬೇಸ್ ತೆರೆಯಲು ಸೇರಿಸಲಾಗಿದೆ.
  • ಒಟ್ಟಾರೆಯಾಗಿ, 160 ಫೈಲ್‌ಗಳಿಗೆ 57 ಕ್ಕೂ ಹೆಚ್ಚು ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ, ~ 5000 ಸಾಲುಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ~ 2500 ಅಳಿಸಲಾಗಿದೆ.

ನಾನು ವಿಶೇಷವಾಗಿ ಎರಿಗಾನ್ ಪ್ರಾಜೆಕ್ಟ್ ತಂಡಕ್ಕೆ ಧನ್ಯವಾದ ಹೇಳಲು ಬಯಸುತ್ತೇನೆ (ಎಥೆರಿಯಮ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆ) ವಿಪರೀತ ಬಳಕೆಯ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಪರೀಕ್ಷಿಸುವಲ್ಲಿ ಅವರ ಸಹಾಯಕ್ಕಾಗಿ. ಪ್ರತಿ Erigon ಅನುಸ್ಥಾಪನೆಯಲ್ಲಿ 0.10.0-1 TB ಡೇಟಾಬೇಸ್ ಪರಿಮಾಣದೊಂದಿಗೆ (2% Ethereum ನೋಡ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗಿದೆ) libmdbx v7 ಬಿಡುಗಡೆಯಾದ ಐದು ತಿಂಗಳಲ್ಲಿ, ಡೇಟಾಬೇಸ್ ಭ್ರಷ್ಟಾಚಾರದ ಮೂರು ವರದಿಗಳನ್ನು ಮಾತ್ರ ಸ್ವೀಕರಿಸಲಾಗಿದೆ ಎಂಬುದು ಗಮನಾರ್ಹವಾಗಿದೆ. ಇದು ಬಾಹ್ಯ ಕಾರಣಗಳಿಂದ ಸಂಭವಿಸಿದೆ ಮತ್ತು ಸಾಫ್ಟ್‌ವೇರ್ ದೋಷಗಳಲ್ಲ: ಎರಡು ಸಂದರ್ಭಗಳಲ್ಲಿ ಕಾರಣ RAM ವೈಫಲ್ಯಗಳು, ಮೂರನೆಯದರಲ್ಲಿ BTRFS ಅನ್ನು ಬಳಸಿಕೊಂಡು ಶೇಖರಣಾ ಉಪವ್ಯವಸ್ಥೆಯ ನಿರ್ದಿಷ್ಟ ಸಂರಚನೆಯಲ್ಲಿ ಡೇಟಾವನ್ನು ಮರುಹೊಂದಿಸುವಲ್ಲಿ ದೋಷ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ