ಎಂಬೆಡೆಡ್ DBMS libmdbx ಬಿಡುಗಡೆ 0.13.2

libmdbx 0.13.2 (MDBX) ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ, ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಕಾಂಪ್ಯಾಕ್ಟ್ ಎಂಬೆಡೆಡ್ ಕೀ-ಮೌಲ್ಯದ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ. libmdbx ಕೋಡ್ ಅನ್ನು Apache 2.0 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ. ಪ್ರಸ್ತುತ ಎಲ್ಲಾ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಮತ್ತು ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳು ಬೆಂಬಲಿತವಾಗಿದೆ, ಹಾಗೆಯೇ ರಷ್ಯನ್ ಎಲ್ಬ್ರಸ್ 2000. libmdbx C++ ಗಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ API ಅನ್ನು ನೀಡುತ್ತದೆ, ಜೊತೆಗೆ Rust, Haskell, Python, NodeJS, Ruby, Go, Nim ಭಾಷೆಗಳಿಗೆ ಉತ್ಸಾಹಿ-ಬೆಂಬಲಿತ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ನೀಡುತ್ತದೆ. , ಡೆನೋ, ಸ್ಕಲಾ.

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

ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • ಸಂಕೀರ್ಣ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಪುಟ ಪಟ್ಟಿಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವಾಗ / ಹಾಕುವಾಗ GC ನವೀಕರಣವನ್ನು ವೇಗಗೊಳಿಸಿ. ಹಿಂದೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾದ ಪ್ರಾಯೋಗಿಕ ಸರಿಪಡಿಸುವ ಪ್ರತಿಕ್ರಿಯೆ ಮೋಡ್ ಅನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ ಮತ್ತು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಇದು ಮೂಲಭೂತವಾಗಿ ಸುಧಾರಿತ ಒಮ್ಮುಖವನ್ನು ಹೊಂದಿದೆ (ಮರುಪ್ರಯತ್ನಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಿದೆ), ಮತ್ತು ಅಪರೂಪದ ನಿರ್ದಿಷ್ಟ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ವಹಿವಾಟುಗಳನ್ನು (MDBX_PROBLEM ದೋಷದ ವಾಪಸಾತಿಯೊಂದಿಗೆ) ಮಾಡುವಾಗ "ಲೂಪಿಂಗ್" ಗೆ ಕಾರಣವಾಗುವ ದೋಷವನ್ನು ಸಹ ತೆಗೆದುಹಾಕುತ್ತದೆ.
  • CMake ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು C23 ಮಾನದಂಡವನ್ನು ಒಳಗೊಂಡಿವೆ.
  • ಜೋಡಿಸಲಾದ char/wchar_t ಕಾರ್ಯಗಳಿಗಾಗಿ T-ಮ್ಯಾಕ್ರೋಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • C++ API ಗೆ ನೆಸ್ಟೆಡ್ ರೈಟ್ ವಹಿವಾಟುಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಸೆಮ್ಯಾಂಟಿಕ್ ಆವೃತ್ತಿಯ ವಿವರಣೆಯ ಎರಡನೇ ಆವೃತ್ತಿಗೆ ಪರಿವರ್ತನೆ (“ಸೆಮ್ಯಾಂಟಿಕ್ ಆವೃತ್ತಿ 2”) ಪೂರ್ಣಗೊಂಡಿದೆ ಮತ್ತು ಆವೃತ್ತಿಯ ಮಾಹಿತಿಯನ್ನು VERSION.json ಗೆ ರಫ್ತು ಮಾಡುವುದನ್ನು ಖಾತ್ರಿಪಡಿಸಲಾಗಿದೆ.
  • ನಿರ್ಮಾಣ ಪುನರುತ್ಪಾದನೆಗಾಗಿ, SOURCE_DATE_EPOCH ಪರಿಸರ ವೇರಿಯಬಲ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. MDBX_BUILD_TIMESTAMP ಬೆಂಬಲವನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲಾಗಿದೆ ಮತ್ತು ಈ ವೇರಿಯಬಲ್ ಆದ್ಯತೆಯನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
  • MDBX_BUILD_METADATA ಆಯ್ಕೆಯ ಮೂಲಕ libmdbx ಬಿಲ್ಡ್ ಕುರಿತು ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿಯನ್ನು ಸೂಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಈಗ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಮಾಹಿತಿಯನ್ನು mdbx_build.metadata ಮೌಲ್ಯವಾಗಿ ಲೈಬ್ರರಿಯೊಳಗೆ ಸರಳವಾಗಿ ಸೇರಿಸಲಾಗಿದೆ, ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ಇದನ್ನು ಪ್ಯಾಕೇಜುಗಳನ್ನು ರಚಿಸುವಾಗ ಬಳಸಲಾಗುತ್ತದೆ, ಇತ್ಯಾದಿ.
  • API ನಿಂದ ಹಿಂತಿರುಗಿದ ದೋಷಗಳ ಲಾಗಿಂಗ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಈಗ, ಇದನ್ನು ಮಾಡಲು, MDBX_LOG_DEBUG (ಲಾಗಿಂಗ್ ದೋಷಗಳು ಮೈನಸ್ MDBX_NOTFOUND) ಅಥವಾ MDBX_LOG_TRACE (ಎಲ್ಲಾ ದೋಷಗಳನ್ನು ಲಾಗ್ ಮಾಡಲು, ಹಾಗೆಯೇ MDBX_RESULT_TRUE) ಲಾಗಿಂಗ್ ಹಂತವನ್ನು ಹೊಂದಿಸಲು ಸಾಕು.
  • ನಡವಳಿಕೆ ಬದಲಾವಣೆ:
    • mdbx::cursor::get_multiple_samelength() ವಿಧಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು mdbx::txn::put_multiple_samelength() ಎಂದು ಮರುಹೆಸರಿಸಲಾಗಿದೆ.
    • C++ API ಸ್ಥಿರತೆಗಾಗಿ, MDBX_GET_MULTIPLE ಕಾರ್ಯಾಚರಣೆಯು ಕೀಲಿಯ ಮೌಲ್ಯವನ್ನು ಸಹ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
    • mdbx::env:: ಜ್ಯಾಮಿತಿ ಗಾತ್ರದ ಸ್ಥಿರಾಂಕಗಳಿಗಾಗಿ, ಮೂಲ ಪ್ರಕಾರವನ್ನು ಸಹಿ ಮಾಡದ size_t ನಿಂದ ಸಹಿ ಮಾಡಿದ intptr_t ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.
    • CRT ಬದಲಿಗೆ ntdll ಅನ್ನು ಬಳಸುವ ಆಯ್ಕೆಯನ್ನು ಈಗ C++ API ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಮಾತ್ರ ಮಾಡಲಾಗುತ್ತದೆ.
    • mdbx_txn_commit() ಗೆ ರವಾನೆಯಾದ / ಸ್ಥಗಿತಗೊಂಡ ಓದಿದ ವಹಿವಾಟುಗಳ ಮೆಮೊರಿಯನ್ನು ಮುಕ್ತಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಇಂತಹ ವ್ಯವಹಾರಗಳನ್ನು mdbx_txn_abort() ಬಳಸಿಕೊಂಡು ಬಿಡುಗಡೆ ಮಾಡಬೇಕೆಂದು API ಕನ್ವೆನ್ಶನ್ ಅಗತ್ಯವಿದೆ, ಇದು mdbx_txn_commit() ಅಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ ವಹಿವಾಟುಗಳನ್ನು ಸ್ಥಗಿತಗೊಳಿಸದೆ ದೋಷವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಇದು ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿನ ದೋಷಗಳಿಂದಾಗಿ ಮೆಮೊರಿ ಸೋರಿಕೆಗೆ ಕಾರಣವಾಯಿತು, ವರ್ತನೆಯ ಬದಲಾವಣೆಗಳನ್ನು ಪ್ರೇರೇಪಿಸುತ್ತದೆ.
    • ವ್ಯಾಖ್ಯಾನಿಸಿದರೆ __deprecated_enum ಮ್ಯಾಕ್ರೋ ಅನ್ನು ಬಳಸುವುದು.
    • CMake ನೊಂದಿಗೆ ನಿರ್ಮಿಸುವಾಗ, C ಭಾಷೆಯ ಗುಣಮಟ್ಟವನ್ನು CMAKE_C_STANDARD ಆಧರಿಸಿ ಈಗ ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

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