libmdbx 0.11.3 (MDBX) āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻāĻā§āĻ-āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻŽāĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻŽāĻŦā§āĻĄā§āĻĄ āĻā§-āĻŽāĻžāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ libmdbx āĻā§āĻĄ OpenLDAP āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸āĻā§āĻ¤āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻ˛āĻŦā§āĻ°āĻžāĻ¸ 2000āĨ¤ 2021 āĻāĻ° āĻļā§āĻˇā§, libmdbx āĻĻā§āĻāĻŋ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻŽ Ethereum āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ - āĻāĻ°āĻŋāĻāĻ¨ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ "āĻļāĻžāĻ°ā§āĻ"-āĻ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¤āĻĨā§āĻ¯, āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž Ethereum āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ.
āĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻāĻāĻžāĻŦā§, libmdbx āĻšāĻ˛ LMDB DBMS-āĻāĻ° āĻāĻāĻāĻŋ āĻāĻā§āĻ° āĻĒā§āĻ¨āĻāĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž, āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸ā§āĻ āĻāĻŦāĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ° āĻĒā§āĻ°ā§āĻŦāĻĒā§āĻ°ā§āĻˇāĻā§ āĻāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§āĨ¤ LMDB āĻāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ, libmdbx āĻā§āĻĄā§āĻ° āĻā§āĻŖāĻŽāĻžāĻ¨, API āĻ¸ā§āĻĨāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ, āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻā§āĻ° āĻāĻĒāĻ° āĻ āĻ¨ā§āĻ āĻā§āĻ° āĻĻā§āĻ¯āĻŧāĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ āĻāĻŖā§āĻĄāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻāĻŋāĻā§ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, libmdbx ACID, āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨, āĻāĻŦāĻ CPU āĻā§āĻ° āĻā§āĻĄāĻŧā§ āĻ˛āĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸ā§āĻā§āĻ˛āĻŋāĻ āĻ¸āĻš āĻ¨āĻ¨-āĻŦā§āĻ˛āĻāĻŋāĻ āĻ°āĻŋāĻĄ āĻ āĻĢāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ āĻā§-āĻāĻŽā§āĻĒā§āĻ¯āĻžāĻā§āĻāĻŋāĻĢāĻŋāĻā§āĻļāĻ¨, āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž, āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤āĨ¤ 2016 āĻ¸āĻžāĻ˛ āĻĨā§āĻā§, āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻĒāĻāĻŋāĻāĻŋāĻ āĻā§āĻāĻ¨ā§āĻ˛āĻāĻŋāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ°ā§āĻĨāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ 2017 āĻ¸āĻžāĻ˛ āĻĨā§āĻā§ āĻāĻāĻŋāĻ° āĻĒāĻŖā§āĻ¯āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻā§āĻā§āĨ¤
libmdbx āĻāĻāĻāĻŋ C++ API, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻ°āĻžāĻ¸ā§āĻ, āĻšāĻžāĻ¸āĻā§āĻ˛, āĻĒāĻžāĻāĻĨāĻ¨, āĻ¨ā§āĻĄāĻā§āĻāĻ¸, āĻ°ā§āĻŦāĻŋ, āĻā§ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¸āĻžāĻšā§-āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻāĻžāĻˇāĻž āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ āĻĢāĻžāĻ° āĻāĻ°ā§āĨ¤
11 āĻ āĻā§āĻā§āĻŦāĻ° āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻāĻŦāĻžāĻĻā§āĻ° āĻĒāĻ° āĻĨā§āĻā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĻā§āĻāĻžāĻŦāĻ¨, āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
- C++ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻŦāĻŋāĻļāĻžāĻ˛ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ GC āĻĄā§āĻāĻžāĻ° āĻāĻĒāĻĄā§āĻ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž Ethereum āĻāĻā§āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ libmdbx āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĨ¤
- āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻĒāĻĄā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§āĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻā§āĻāĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĻā§āĻ°ā§āĻ¨ā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŽāĻŋāĻĨā§āĻ¯āĻž-āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻ° āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻĒā§āĻ°āĻžāĻ¨ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
- mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() āĻāĻŦāĻ mdbx_env_get_syncbytes() āĻĢāĻžāĻāĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ MDBX_SET_UPPERBOUND āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
- C++ 11/14/17/20 āĻŽā§āĻĄā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻŦāĻžāĻĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ˛āĻŋāĻā§āĻ¯āĻžāĻ¸āĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§: 3.9 āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻšāĻāĻ¯āĻŧāĻž āĻā§āĻ˛ā§āĻ¯āĻžāĻ, 4.8 āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻšāĻāĻ¯āĻŧāĻž gcc, CentOS/RHEL 9-āĻāĻ° āĻāĻ¨ā§āĻ¯ cdevtoolset-7 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻ¸āĻšāĨ¤
- mdbx_chk āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽā§āĻāĻž āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻŽā§āĻāĻž āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦā§āĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻ¸ā§āĻĨāĻŋāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻ˛āĻŋāĻā§āĻ¯āĻžāĻ¸āĻŋ āĻŽā§āĻāĻž āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ MDBX_PROBLEM āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
- āĻāĻāĻāĻŋ MDBX_GET_BOTH āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻŽāĻŋāĻ˛ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ MDBX_NOTFOUND āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¸ā§āĻĨāĻŋāĻ°ā§ˇ
- āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ¸āĻš āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻāĻ˛āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- MDBX_SHRINK_ALLOWED āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻĒāĻ¤āĻžāĻāĻž āĻāĻŦāĻ MDBX_ACCEDE āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ°ā§āĻ§ā§āĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
- āĻŦā§āĻļ āĻāĻŋāĻā§ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻšāĻŋāĻ° āĻā§āĻ āĻŦāĻžāĻĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- mdbx_env_set_option() āĻĢāĻžāĻāĻļāĻ¨ āĻĨā§āĻā§ MDBX_RESULT_TRUE āĻāĻ° āĻ¸ā§āĻĨāĻŋāĻ° āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨āĨ¤
- āĻŽā§āĻ, 90āĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ 25āĻāĻŋāĻ°āĻ āĻŦā§āĻļāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, ~1300āĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, ~600āĻāĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
āĻāĻ¤ā§āĻ¸: opennet.ru