āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻĒāĻžāĻāĻš āĻŦāĻ›āĻ° āĻĒāĻ°, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ libmdbx 1.0 āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§€ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡

āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ°āĻŋāĻ˛āĻŋāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§€āĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ libmdbx āĻāĻ•āĻŸāĻŋ āĻ‰āĻšā§āĻš-āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ•āĻŽāĻĒā§āĻ¯āĻžāĻ•ā§āĻŸ āĻāĻŽāĻŦā§‡āĻĄā§‡āĻĄ āĻ•ā§€-āĻŽāĻžāĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡āĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ (0.5) āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ°āĻŋāĻ˛āĻŋāĻœ, āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻ•ā§‡ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°ā§‡, āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ—āĻ āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡āĨ¤ libmdbx āĻ•ā§‹āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻ¤āĻ°āĻŖ OpenLDAP āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĨ¤

MDBX āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻļā§‹āĻ§āĻŋāĻ¤ āĻ•āĻžāĻāĻŸāĻž āĻāĻ˛āĻāĻŽāĻĄāĻŋāĻŦāĻŋ — āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ “āĻ•ā§€-āĻŽāĻžāĻ¨â€ āĻļā§āĻ°ā§‡āĻŖā§€āĻ° āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨āĻŽā§‚āĻ˛āĻ• āĻāĻŽāĻŦā§‡āĻĄā§‡āĻĄ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻ—āĻžāĻ› B+ āĻ›āĻžāĻĄāĻŧāĻž āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ˛āĻ—āĻŋāĻ‚, āĻ¯āĻž āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻĨā§āĻ°ā§‡āĻĄā§‡āĻĄ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻž (āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¨āĻ¯āĻŧ) āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§‹āĻ—āĻŋāĻ¤āĻžāĻŽā§‚āĻ˛āĻ• āĻāĻŦāĻ‚ āĻĻāĻ•ā§āĻˇāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, MDBX LMDB āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯, āĻāĻŦāĻ‚ āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻ¤āĻžāĻ° āĻĒā§‚āĻ°ā§āĻŦāĻĒā§āĻ°ā§āĻˇā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽā§‚āĻ˛ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ§āĻ°ā§‡ āĻ°āĻžāĻ–ā§‡, āĻ¯ā§‡āĻŽāĻ¨ ACID āĻāĻŦāĻ‚ CPU āĻ•ā§‹āĻ° āĻœā§āĻĄāĻŧā§‡ āĻ˛āĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻ¸āĻš āĻ¨āĻ¨-āĻŦā§āĻ˛āĻ•āĻŋāĻ‚ āĻ°āĻŋāĻĄāĨ¤

MDBX āĻāĻŦāĻ‚ LMDB-āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯:

  • āĻŽā§ŒāĻ˛āĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻ•ā§‹āĻĄ āĻ—ā§āĻŖāĻŽāĻžāĻ¨, āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻšā§‡āĻ•āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ— āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
  • āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻšāĻ˛āĻžāĻ•āĻžāĻ˛ā§€āĻ¨ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ, āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻĨā§‡āĻ•ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤āĨ¤
  • āĻ…āĻŸā§‹-āĻ•āĻŽā§āĻĒā§āĻ¯āĻžāĻ•ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ†āĻ•āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĨ¤
  • 32-āĻŦāĻŋāĻŸ āĻāĻŦāĻ‚ 64-āĻŦāĻŋāĻŸ āĻ¸āĻŽāĻžāĻŦā§‡āĻļāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĨ¤
  • āĻŦā§āĻ¯āĻžāĻĒā§āĻ¤āĻŋ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¨āĻŽā§āĻ¨āĻž āĻ­āĻ˛āĻŋāĻ‰āĻŽā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ (āĻĒāĻ°āĻŋāĻ¸ā§€āĻŽāĻž āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨)āĨ¤
  • āĻĒā§āĻ¯āĻžāĻ¨āĻ•ā§‡āĻ• āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€-āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒā§ƒāĻˇā§āĻ āĻžāĻ° āĻ†āĻ•āĻžāĻ°ā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻŦāĻĄāĻŧ āĻ•ā§€āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤

libmdbx āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§€ āĻšāĻ˛ MDBX āĻāĻŦāĻ‚ MithrilDB āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ—āĻ¸ā§āĻŸ 2019-āĻ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĨ¤ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, libmdbx (āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ•) āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ‹āĻŖ āĻĻā§‚āĻ° āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻ—ā§āĻ°āĻ¨ā§āĻĨāĻžāĻ—āĻžāĻ°āĻ•ā§‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ†āĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ• āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻĻāĻŋāĻ• āĻĨā§‡āĻ•ā§‡ 2-3 āĻ—ā§āĻŖ āĻŦā§‡āĻļāĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

  • macOS āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSDāĨ¤ AIX āĻāĻŦāĻ‚ HP-UX āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤
  • āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ…āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ†āĻšāĻ°āĻŖ āĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœāĻžāĻ° āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĄā§āĻ°ā§‡āĻ¸ āĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸ā§āĻ¯āĻžāĻ¨āĻŋāĻŸāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, “-Wpedantic” āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻ­āĻžāĻ°āĻŋāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ° āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻŦāĻžāĻĻ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤
  • āĻšāĻžāĻ˛āĻ¨āĻžāĻ—āĻžāĻĻ API āĻŦāĻŋāĻŦāĻ°āĻŖ.
  • āĻāĻŽā§āĻŦā§‡āĻĄāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄā§‡āĻ° āĻāĻ•āĻ¤ā§āĻ°ā§€āĻ•āĻ°āĻŖ (āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤āĻ•āĻ°āĻŖ)āĨ¤
  • CMake āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨.
  • āĻ¨ā§‡āĻ¸ā§āĻŸā§‡āĻĄ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤
  • OS āĻ°āĻŋāĻŦā§āĻŸ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻŸāĻŋāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ (āĻ¨ā§‹āĻ‚āĻ°āĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸ā§āĻŸāĻĒ)āĨ¤
  • āĻšāĻžāĻ˛āĻ¨āĻžāĻ—āĻžāĻĻ/āĻĒā§āĻ°āĻ¨ā§‹ āĻĒā§ƒāĻˇā§āĻ āĻž āĻāĻŦāĻ‚ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻļā§‡āĻˇ āĻĨā§‡āĻ•ā§‡ āĻļā§‡āĻˇ āĻ—āĻŖāĻ¨āĻžāĨ¤
  • āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻŽā§‹āĻĄā§‡ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ–ā§‹āĻ˛āĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ MDBX_ACCEDEāĨ¤
  • āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° OFD āĻŦā§āĻ˛āĻ•āĻŋāĻ‚ āĻ¯āĻ–āĻ¨ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§.
  • āĻĒāĻžāĻ‡āĻĒā§‡ āĻ—āĻ°āĻŽ āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒāĨ¤
  • āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ¸āĻžāĻœāĻžāĻ¨ā§‹āĻ° āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ ("qsort()" āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ 2-3 āĻ—ā§āĻŖ āĻĻā§āĻ°ā§āĻ¤ āĻāĻŦāĻ‚ "std::sort()" āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ 30% āĻĻā§āĻ°ā§āĻ¤)āĨ¤
  • āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻ•ā§€ āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ (āĻŽā§‡āĻŽāĻ°āĻŋāĻ¤ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĢāĻžāĻ‡āĻ˛ āĻ•ā§āĻ¯āĻžāĻļāĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛)āĨ¤
  • āĻ†āĻ°ā§‹ āĻ†āĻ•ā§āĻ°āĻŽāĻ¨āĻžāĻ¤ā§āĻŽāĻ• āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻŽāĻĒā§āĻ¯āĻžāĻ•ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨āĨ¤
  • B+ āĻŸā§āĻ°āĻŋ āĻĒā§ƒāĻˇā§āĻ āĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ†āĻ°āĻ“ āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻ•ā§ŒāĻļāĻ˛ā§ˇ
  • āĻ­ā§āĻ˛āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ˛ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ•ā§āĻˇāĻ¤āĻŋ āĻ°ā§‹āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻ…-āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ (NFS, Samba, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤
  • āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻ¸ā§‡āĻŸ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡.

libmdbx āĻāĻ° "āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€" āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻŦāĻŋāĻ•āĻžāĻļ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ…āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻĨāĻžāĻ•āĻŦā§‡ āĻŽāĻŋāĻĨā§āĻ°āĻŋāĻ˛āĻĄāĻŋāĻŦāĻŋ, āĻ¯āĻ–āĻ¨ MDBX-āĻāĻ° "āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨" āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ•ā§āĻŸāĻ°ā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¸ā§‡āĻŸāĻŸāĻŋ āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻ•āĻ°āĻžāĨ¤ āĻāĻ‡ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ•āĻžāĻ°āĻŖā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛:

  • āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻŦā§‡āĻŽāĻžāĻ¨āĻžāĻ¨: MithrilDB āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻŋāĻ¤ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ (āĻŦā§‡āĻŽāĻžāĻ¨āĻžāĻ¨) āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ (āĻŦā§‡āĻŽāĻžāĻ¨āĻžāĻ¨) API āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§ˇ
  • āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ: MithrilDB āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ LMDB āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻāĻ¸ āĻ†āĻ‡ Apache 2.0 āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸, āĻ¨āĻž OpenLDAP āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸).
  • āĻŦāĻŋāĻšā§āĻ›ā§‡āĻĻ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋ āĻāĻĄāĻŧāĻžāĻ¯āĻŧ, āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻĒāĻĨ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤

MithrilDB, MDBX āĻāĻ° āĻŽāĻ¤, āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ—āĻžāĻ› B+ āĻāĻŦāĻ‚ MDBX āĻāĻŦāĻ‚ LMDB-āĻāĻ° āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻŽā§ŒāĻ˛āĻŋāĻ• āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĻā§‚āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ‰āĻšā§āĻš āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ“ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻŦāĻŋāĻļā§‡āĻˇāĻ¤, "āĻ˛āĻ‚ āĻ°āĻŋāĻĄāĻ¸" āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž, āĻ¯āĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° "āĻĢā§‹āĻ˛āĻž" āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻĻā§€āĻ°ā§āĻ˜ āĻĒāĻ āĻ¨ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ…āĻŦāĻ°ā§āĻĻā§āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻŽā§‚āĻ˛ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤ āĻ¨āĻ¤ā§āĻ¨ MithrilDB āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤:

  • āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻžāĻ¤ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨: HDD, SSD āĻāĻŦāĻ‚ āĻ…-āĻ‰āĻĻā§āĻŦāĻžāĻ¯āĻŧā§€ āĻŽā§‡āĻŽāĻ°āĻŋāĨ¤
  • "āĻ—āĻ°āĻŽ", "āĻ‰āĻˇā§āĻŖ" āĻāĻŦāĻ‚ "āĻ āĻžāĻ¨ā§āĻĄāĻž" āĻĄā§‡āĻŸāĻžāĻ° āĻœāĻ¨ā§āĻ¯ "āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨" āĻāĻŦāĻ‚ "āĻ¨āĻŋāĻŽā§āĻ¨-āĻŽā§‚āĻ˛ā§āĻ¯" āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻ•ā§ŒāĻļāĻ˛āĨ¤
  • āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ…āĻ–āĻŖā§āĻĄāĻ¤āĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ Merkle āĻ—āĻžāĻ› āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡.
  • WAL āĻāĻ° āĻāĻšā§āĻ›āĻŋāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻ…āĻ–āĻŖā§āĻĄāĻ¤āĻžāĻ° āĻ—ā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻŸāĻŋ āĻ¸āĻš āĻ˛ā§‡āĻ–āĻž-āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤
  • āĻ…āĻ˛āĻ¸ āĻ•ā§āĻ¯āĻžāĻš āĻ†āĻĒ āĻĄāĻŋāĻ¸ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§.

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨