2019 āĻ¸āĻžāĻ˛ā§āĻ° āĻļāĻ°āĻ¤ā§āĻāĻžāĻ˛ā§, Mail.ru āĻā§āĻ˛āĻžāĻāĻĄ iOS āĻāĻŋāĻŽā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ-āĻĒā§āĻ°āĻ¤ā§āĻā§āĻˇāĻŋāĻ¤ āĻāĻā§āĻ¨ā§āĻ āĻāĻā§āĻā§āĨ¤ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻā§āĻ° āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ¸āĻā§āĻāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŽā§āĻŦāĻžāĻāĻ˛ āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§
āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻ°āĻŖāĻž LMDB āĻĒāĻāĻŋāĻļāĻ¨āĻŋāĻ LMDB āĻāĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸ā§āĻ¤āĻŽā§āĻ
3.1.āĻ¤āĻŋāĻŽāĻŋ #1āĨ¤ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛
3.2.āĻ¤āĻŋāĻŽāĻŋ #2āĨ¤ B+-āĻāĻžāĻ
3.3.āĻ¤āĻŋāĻŽāĻŋ #3āĨ¤ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻ˛āĻŋāĻ āĻā§-āĻŽāĻžāĻ¨ API-āĻāĻ° āĻāĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž
4.1.āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻž
4.2.āĻā§āĻŦāĻŋāĻ˛ āĻŽāĻĄā§āĻ˛āĻŋāĻ
4.3.āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŽāĻĄā§āĻ˛āĻŋāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ
1. āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻ°āĻŖāĻž
2015 āĻ¸āĻžāĻ˛ā§ āĻāĻ āĻŦāĻāĻ°, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻ¤ āĻāĻ¨ āĻāĻ¨ āĻĒāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻāĻā§ āĻ¤āĻž āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻžāĻ°āĻŖā§ āĻāĻāĻŋ āĻāĻ°ā§āĻāĻŋ. āĻāĻŽāĻ°āĻž āĻāĻ°āĻ āĻāĻ¨ āĻāĻ¨ āĻ
āĻāĻŋāĻ¯ā§āĻ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻ¯ā§ āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§āĻāĻ¯āĻŧāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧ: āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž, āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻ˛āĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻ˛ āĻāĻ°ā§ āĻ¨āĻž āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒā§āĻ° āĻŽā§āĻāĻžāĻ¨āĻŋāĻā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§
āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻžāĻ¨ā§āĻĄāĻž āĻāĻ°āĻ¨āĻž āĻšāĻ¯āĻŧā§ āĻāĻ ā§. āĻĻā§āĻāĻž āĻā§āĻ˛ āĻ¯ā§ āĻ
āĻ¨ā§āĻ¯ āĻ¯ā§ āĻā§āĻ¨āĻ āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻ
āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻ āĻ¸āĻ¤ā§āĻ¯āĻāĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§āĻŋ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻā§āĻŖāĻŽāĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ¸ā§āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻŽā§āĻā§āĻ¤ āĻāĻŋāĻ˛, āĻ¤āĻŦā§ āĻĢā§āĻāĻžāĻ¸ā§āĻ° āĻĒāĻ°ā§
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°ā§
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻāĻāĻ āĻ¨ā§āĻ° āĻ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻŽāĻĄā§āĻ˛ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§ āĻ¯ā§ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĨā§āĻ°ā§āĻĄāĻŋāĻ āĻ¤āĻžāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¸āĻžāĻ°āĻžāĻāĻļ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤ āĻāĻ¤ā§ āĻŽāĻĄā§āĻ˛ āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ°ā§āĻ¤ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻž āĻ āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§āĨ¤ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻž āĻāĻāĻŋ āĻŽāĻžāĻā§ āĻŽāĻžāĻā§ āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻ°ā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦāĻ¤ā§āĻ° āĻāĻ°ā§
āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻŽā§āĻ˛ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĨ¤ āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻžāĻ āĻšāĻ˛ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻ¯āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻĒāĻāĻ¨ā§āĻĻāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§āĻāĻŋāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻĒāĻŋāĻāĻāĨ¤ āĻāĻāĻŋ āĻāĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻšā§āĻ¤ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ
āĻ¨ā§āĻĒā§āĻ°āĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ¤āĻžāĻ° āĻŽāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻāĻŋ
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŋāĻ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻ¯āĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻā§ āĻĒā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻā§āĻāĻžāĻŦā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻāĻā§ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸āĻ āĻŋāĻ āĻ§āĻžāĻ°āĻŖāĻž āĻĨāĻžāĻāĻŦā§āĨ¤ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻāĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻ¯ā§ āĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŽā§āĻāĻž-āĻ¤āĻĨā§āĻ¯ āĻ¸āĻš āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻĻā§āĻāĻŋ DOM āĻāĻžāĻ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻ¯ā§ āĻ¯āĻĻāĻŋ āĻā§āĻ¨āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 500 āĻšāĻžāĻāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 1 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ¨ā§āĻĄ āĻ¸āĻš āĻĻā§āĻāĻŋ āĻāĻžāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻ§ā§āĻŦāĻāĻ¸ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻ¯āĻžāĻ¤ā§ āĻ¸āĻžāĻŦāĻā§āĻā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢ āĻĨāĻžāĻā§āĨ¤ āĻāĻ āĻāĻ˛ā§āĻā§, āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛āĻŋāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻāĻŋāĻ˛. āĻĻā§āĻāĻž āĻā§āĻ˛ āĻ¯ā§ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖā§āĻ° āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻž āĻ¨āĻŋāĻ¯āĻŧā§āĻ, āĻŦāĻŋāĻĒā§āĻ˛ āĻ¸āĻāĻā§āĻ¯āĻ āĻā§āĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻ§ā§āĻŦāĻāĻ¸ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻĒāĻ¯āĻŧāĻ¸āĻž āĻāĻ°āĻ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻāĻŋ āĻāĻ°āĻ āĻāĻžāĻ°āĻžāĻĒ āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻŽā§āĻ˛āĻŋāĻ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ¸āĻāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ°āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŽāĻžāĻ¨āĻĻāĻŖā§āĻĄāĻāĻŋ āĻ āĻŋāĻ āĻāĻ°āĻŋ - āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻžāĻĄāĻŧāĻžāĻ CRUD āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĨ¤
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒāĨ¤
- āĻĨā§āĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž.
- āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻāĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĨā§āĻ°ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¨āĻ¯āĻŧ, āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ iOS āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§āĻ āĻ°āĻžāĻā§āĻ¯ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻāĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻā§āĻāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤āĨ¤
- āĻ -āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ¯ā§āĻā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻā§āĻāĻŋāĻ¤ āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž
- CRUD āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ¨ā§ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨ā§āĻāĨ¤
- āĻŽā§āĻ˛āĻŋāĻ āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨
ACID : āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻāĻ¤āĻž, āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž, āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻž āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĨ¤ - āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ¤āĻŋ.
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻ° āĻāĻ āĻ¸ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§, SQLite āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻ°āĻ¯āĻŧā§ āĻā§āĻā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ
āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ā§āĻ° āĻ
āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻŦāĻ āĻā§āĻĄāĻŧā§ āĻāĻ¸ā§āĻāĻŋāĻ˛
2. LMDB āĻĒāĻāĻŋāĻļāĻ¨āĻŋāĻ
LMDB āĻāĻāĻāĻŋ āĻā§āĻŦ āĻā§āĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 10K āĻ¸āĻžāĻ°āĻŋ) āĻ¯āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻŽā§āĻ˛āĻŋāĻ āĻ¸ā§āĻ¤āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§ - āĻ¸ā§āĻā§āĻ°ā§āĻāĨ¤
āĻāĻĒāĻ°ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ SQLite āĻāĻ° āĻ¸āĻžāĻĨā§ LMDB āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž, āĻ¯āĻž āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻā§āĻ° āĻĄā§āĻāĻž āĻ¸āĻš SQLite āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻ¸āĻ āĻŋāĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻā§āĻāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĻā§āĻ§ā§āĻ¤ āĻāĻ°āĻž āĻāĻ°āĻ āĻ¨ā§āĻ¯āĻžāĻ¯ā§āĻ¯ āĻšāĻŦā§ - āĻŦāĻžāĻ°ā§āĻāĻ˛ā§āĻĄāĻŋāĻŦāĻŋ, āĻ˛ā§āĻā§āĻ˛āĻĄāĻŋāĻŦāĻŋ, āĻ¸ā§āĻĢāĻŋāĻ¯āĻŧāĻž, āĻ°āĻāĻ¸āĻĄāĻŋāĻŦāĻŋ, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻŽāĻ¨ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ LMDB SQLite-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻā§āĻāĻŋāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ 2012 āĻ¸āĻžāĻ˛ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
LMDB āĻŽā§āĻ˛āĻ¤ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻāĻŋ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻžāĻā§ āĻ¤āĻžāĻ° āĻā§āĻšāĻžāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŖā§
LMDB āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŽāĻāĻŋāĻ˛āĻž āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻĢāĻā§āĻ¸ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°
āĻŽā§āĻŦāĻžāĻāĻ˛ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻāĻ¤ā§āĻ āĻāĻā§āĻāĻŋāĻ¨ āĻ¤āĻžāĻ° āĻāĻžāĻĒ āĻĢā§āĻ˛ā§āĻā§āĨ¤ āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻŋāĻšā§āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻ°āĻžāĻāĻ˛ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§ āĻāĻ¸āĻžāĻ° āĻĒāĻ° LMDB āĻŦāĻžāĻ°ā§āĻāĻ˛ā§āĻĄāĻŋāĻŦāĻŋ-āĻ° āĻ°ā§āĻā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ˛ā§āĻā§āĻāĻŋāĻ¤ā§ āĻ¸ā§āĻ°ā§āĻ¯ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ˛āĻĄāĻŧāĻžāĻ āĻāĻ°āĻā§āĨ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻāĻŋ āĻ¤āĻžāĻ° āĻāĻ¤āĻŋ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§, āĻāĻŽāĻ¨āĻāĻŋ āĻ¤āĻžāĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ¨ā§āĻ¨ āĻ¯ā§, āĻāĻāĻžāĻ¨ā§ āĻā§āĻ¨ā§ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ˛āĻžāĻā§āĻ āĻ¨ā§āĻ, āĻāĻŦāĻ LMDB āĻāĻŦāĻ SQLite āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯ā§ āĻā§āĻ°ā§āĻĄ-āĻ
āĻĢā§āĻ° āĻŽā§āĻā§āĻŽā§āĻāĻŋ āĻšāĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻāĻŽāĻŋ āĻā§āĻ° āĻĻāĻŋāĻ¤ā§ āĻāĻžāĻāĨ¤ āĻāĻĒāĻ°ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻāĻ¤āĻŋ āĻ
āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻ¸ā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻāĻĒāĻ°ā§ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻžāĻ° āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋ āĻ¨āĻžāĨ¤ āĻāĻāĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻāĻāĻ¨āĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻĄāĻŧāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻž āĻ
āĻ¨āĻŋāĻŦāĻžāĻ°ā§āĻ¯āĻāĻžāĻŦā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§āĻĄā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ
āĻ¨ā§āĻ āĻ¸ā§āĻā§āĻˇā§āĻŽ āĻšāĻŦā§āĨ¤ āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŽāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĨāĻžāĻāĻŦā§ āĻ¨āĻž āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, SQL āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻĄāĻŋāĻ¸ā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽāĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ SQLite
3. LMDB āĻāĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸ā§āĻ¤āĻŽā§āĻ
āĻĒāĻžāĻāĻŋāĻ° āĻā§āĻā§āĻ° āĻāĻŋāĻ āĻĨā§āĻā§ āĻāĻ˛āĻāĻŽāĻĄāĻŋāĻŦāĻŋ āĻĻā§āĻāĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻŋ āĻāĻ°āĻ āĻāĻā§āĻ°ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŋāĻ˛āĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŦāĻŋāĻāĻžāĻ āĻŽā§āĻ˛ āĻ¸ā§āĻ¤āĻŽā§āĻāĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§ āĻ¨āĻŋāĻŦā§āĻĻāĻŋāĻ¤ āĻšāĻŦā§ āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĻāĻŋ āĻŦāĻŋāĻļā§āĻ°āĻžāĻŽ āĻ¨ā§āĻ¯āĻŧ:
- āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§āĨ¤
- āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĄā§āĻāĻžāĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻāĻ āĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋ+-āĻā§āĻ°āĻŋāĨ¤
- ACID āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻ¸āĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻŋ-āĻ āĻ¨-āĻ°āĻžāĻāĻāĨ¤
3.1āĨ¤ āĻ¤āĻŋāĻŽāĻŋ #1āĨ¤ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛
āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯āĻž āĻāĻŽāĻ¨āĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§āĻ° āĻ¨āĻžāĻŽā§āĻ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻā§āĻāĻŋāĻ¤ āĻ¤āĻĨā§āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻāĻŦāĻ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻā§āĻĄāĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ LMDB āĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ¨ā§ āĻā§āĻ¯āĻžāĻļā§ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŋ āĻ˛ā§āĻāĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻā§āĻ¤āĻ¨ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤, āĻ¯ā§āĻšā§āĻ¤ā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻžāĻ° āĻĢāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻāĻŋāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻā§āĻŖ āĻāĻžāĻāĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨āĨ¤ āĻ¨ā§āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻŋāĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ āĻĻā§āĻ°ā§ āĻāĻā§.
- āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĨā§āĻā§ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ°ā§āĻā§ āĻĄā§āĻāĻžāĻ° āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§, āĻāĻ āĻŽā§āĻāĻžāĻ¨āĻŋāĻā§āĻ¸āĻāĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻŦāĻ āĻāĻŦāĻŋ āĻ¸āĻš āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻā§āĻ¯āĻžāĻļā§āĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻ°āĻžāĻĻā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻāĻžāĻ°āĻšā§āĻĄ āĻĨā§āĻā§ LMDB āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦāĻžāĻĻ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻžāĻ° āĻ āĻ°ā§āĻĨ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻ āĻŋāĻ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻ° āĻŦā§āĻļāĻŋ āĻāĻŋāĻā§ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻ¸āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ¸ āĻĢāĻŋāĻāĻļāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻļā§āĻ¨āĻžāĻā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§ āĻāĻ˛āĻ-āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ˛ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻā§āĻ¨ā§āĻĻā§āĻ°ā§āĻā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
- āĻā§āĻ¯āĻžāĻļā§āĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ āĻ°ā§āĻĨ āĻ¤āĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ˛āĻāĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĨ¤ āĻĒāĻžāĻ āĻ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻĒāĻžāĻ āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻ°āĻž āĻĄā§āĻāĻžāĻ¤ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻĨā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŽāĻŋāĻāĻā§āĻā§āĻ¸ā§āĻ° āĻŽā§āĻā§āĻŽā§āĻāĻŋ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻ āĻāĻžāĻ°āĻŖā§, āĻ¸āĻŋāĻĒāĻŋāĻāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¤āĻŋāĻ° āĻāĻĻāĻ°ā§āĻļ āĻ°ā§āĻāĻŋāĻ āĻŽāĻžāĻĒāĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ LMDB-āĻ¤ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻā§āĻŦāĻ˛ āĻāĻāĻāĻ¨ āĻ˛ā§āĻāĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻāĻŦāĻ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻ˛āĻāĻŋāĻ āĻāĻāĻāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĨā§āĻ°ā§āĻĄā§āĻĄ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ
āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻāĻŋāĻ˛ āĻ§āĻ°āĻŖā§āĻ° āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĻā§āĻ° āĻāĻ°ā§āĨ¤ Usenix OSDI 2014 āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨ā§ āĻĻā§āĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ
āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻāĻŋāĻ˛:
"āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž: āĻā§āĻ°ā§āĻ¯āĻžāĻļ-āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻāĻŋāĻ˛āĻ¤āĻžāĻ° āĻāĻĒāĻ°" и"āĻŽāĻāĻž āĻāĻŦāĻ āĻ˛āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻ¯āĻžāĻ¤āĻ¨" . āĻ¤āĻžāĻĻā§āĻ° āĻĨā§āĻā§ āĻāĻĒāĻ¨āĻŋ LMDB-āĻāĻ° āĻ āĻā§āĻ¤āĻĒā§āĻ°ā§āĻŦ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻāĻŦāĻ ACID āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻļā§āĻāĻŋāĻĻā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯āĻž SQLite-āĻāĻ° āĻĨā§āĻā§ āĻāĻā§āĻāĻ¤āĻ°āĨ¤ - LMDB-āĻāĻ° āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĻ¤āĻž āĻ¤āĻžāĻ° āĻā§āĻĄā§āĻ° āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°ā§āĻ° L1 āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻ¤āĻŋāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻš āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻāĻāĻāĻ¸-āĻ, āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻāĻ¨ā§āĻĻ āĻŽāĻ¤ā§ āĻŽā§āĻāĻšā§āĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻ¸āĻā§āĻ¤āĻ¨āĻāĻžāĻŦā§ āĻāĻĨāĻž āĻŦāĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¤āĻĨā§āĻ¯
āĻāĻ˛āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§, āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻ˛āĻā§āĻ¨ āĻĒāĻ°āĻŋāĻ¸āĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻŋāĻā§ āĻ°āĻžāĻā§āĨ¤ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻĄ āĻāĻŦāĻ āĻšāĻžāĻ°ā§āĻĄ-āĻā§āĻĄā§āĻĄ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻš āĻŦāĻŋāĻāĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ°āĻĒāĻ°ā§ āĻāĻ¸ā§ āĻĄāĻžāĻ¯āĻŧāĻ¨āĻžāĻŽāĻŋāĻ āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻ¸ā§āĻĒā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻŦā§āĻ˛āĻ, āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻšāĻŋāĻĒ āĻ¨āĻžāĻŽā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĨ¤ āĻāĻāĻŋāĻ¤ā§ āĻ¸āĻ¤ā§āĻ¤āĻžāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋāĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ˛āĻžāĻāĻž āĻāĻā§. āĻāĻāĻŋ āĻšāĻ¯āĻŧ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧ āĻŦāĻž āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻšāĻ¯āĻŧ; āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻāĻ° āĻāĻāĻžāĻ°ā§āĻ°āĻ āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻĒā§āĻ°āĻā§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻŦāĻ āĻšāĻŋāĻĒ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ ā§āĻ˛āĻžāĻ ā§āĻ˛āĻŋ āĻāĻŦāĻ āĻšāĻ¸ā§āĻ¤āĻā§āĻˇā§āĻĒ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§, āĻ¤āĻžāĻ°āĻž āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻĒāĻ°ā§ āĻāĻŦāĻ āĻ¨ā§āĻā§ āĻĻā§āĻāĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻŋāĻāĻžāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻ°ā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻāĻāĻŋ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ āĻ¸ā§āĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĢāĻžāĻāĻ˛āĻā§ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒāĻĄ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨āĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛āĨ¤ āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻāĻāĻžāĻŦā§, āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§, āĻ¯āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦāĻŋāĻ āĻā§āĻˇāĻŽāĻ¤āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻĢāĻŋāĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻā§ 1-āĻĨā§āĻā§-1-āĻ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻĒā§āĻ°ā§ āĻ°âā§āĻ¯āĻžāĻŽ āĻā§āĻĄāĻŧā§ āĻĻā§āĻŦā§ āĻāĻŦāĻ āĻā§āĻ¨ā§ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻĨāĻž āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻĨā§āĻā§ āĻāĻŽāĻ°āĻž āĻāĻžāĻ¨āĻŋ āĻ¯ā§ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻ¯āĻ¤āĻā§āĻ˛ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻā§āĻāĻžāĻŽāĻ¤ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻ āĻāĻžāĻ°āĻŖā§ āĻ¸āĻŽā§āĻāĻŦ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻā§āĻŦāĻ˛ āĻāĻžāĻāĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§ āĻ¤āĻžāĻ°āĻž āĻŽā§āĻ˛ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻ āĻāĻļāĻāĻŋ āĻ˛ā§āĻĄ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻžāĻ¨ā§ āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻžāĻšāĻŋāĻĻāĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ¸ā§āĻŽā§āĻ¤āĻŋāĻā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻāĻŦāĻ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻāĻžāĻ°ā§āĻ° āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻāĻžāĻšāĻŋāĻĻāĻž āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻŋāĻā§ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ˛ā§āĻĄ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻā§āĻŦāĻŋāĻ˛ā§ āĻŽā§āĻ˛ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨āĻ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ¸ā§āĻ˛āĻ āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻŦā§ āĻĒā§āĻ°ā§āĻŦā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻžāĻšāĻŋāĻĻāĻžāĻ¯ā§āĻā§āĻ¤ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ° āĻāĻžāĻ¯āĻŧāĻāĻž āĻ¨ā§āĻ¯āĻŧāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻļā§āĻā§āĻ°āĻ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦ, āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨ā§āĻā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋāĻ¤ā§, āĻ āĻŋāĻāĻžāĻ¨āĻž 0 āĻ¸āĻš āĻĒā§āĻˇā§āĻ āĻž A āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻ āĻŋāĻāĻžāĻ¨āĻž 4 āĻ¸āĻš āĻŽā§āĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻ āĻ¸āĻ¤ā§āĻ¯āĻāĻŋ āĻ¸ā§āĻ˛ āĻ¨āĻŽā§āĻŦāĻ° 0-āĻāĻ° āĻāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ°ā§āĻ° āĻā§āĻŦāĻŋāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ˛ā§āĻĒāĻāĻŋ āĻ āĻŋāĻ āĻāĻāĻ āĻ°āĻāĻŽāĨ¤ āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻāĻžāĻŦā§, āĻ¤āĻžāĻ°āĻž āĻ
āĻ¨ā§āĻŽāĻŋāĻ¤āĻāĻžāĻŦā§ āĻ
āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¤āĻžāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§āĨ¤ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻŦāĻžāĻāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°ā§ āĻĢāĻžāĻāĻ˛ I/O āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ - āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻŦā§āĨ¤
â
āĻ¨ā§āĻā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ LMDB āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĨā§āĻā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°ā§āĨ¤ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻā§ āĻ
āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻāĻ°āĻŋ, āĻ¯ā§āĻāĻžāĻ¨ā§ LMDB āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤
â
āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ LMDB, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻāĻžāĻŦā§, āĻ°āĻžāĻāĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛āĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°-āĻĒāĻ āĻ¨ āĻŽā§āĻĄā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĻā§āĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°āĻŋāĻŖāĻ¤āĻŋ āĻ¸āĻŦ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤ āĻāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻā§āĻ˛ āĻā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ
āĻ¨āĻŋāĻā§āĻāĻžāĻā§āĻ¤ āĻā§āĻˇāĻ¤āĻŋāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻ¸ā§āĻ°āĻā§āĻˇāĻž āĻ¯ā§āĻ āĻāĻ°āĻžāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ¨ā§āĻ¨ āĻ¯ā§, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¯ā§āĻā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ¤āĻžāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻāĻŽāĻ°āĻž āĻŽāĻ¨ā§ āĻ°ā§āĻā§āĻāĻŋ, āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ°āĻŋāĻĄ-āĻ°āĻžāĻāĻ āĻŽā§āĻĄā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻ
āĻ°ā§āĻĨ āĻšāĻ˛ āĻ¯ā§ āĻā§āĻ¨āĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ¸ā§ āĻā§āĻ˛ āĻāĻ°ā§ āĻāĻāĻŋ āĻāĻ°ā§ āĻĨāĻžāĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ
āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦāĻšā§āĻ¨ āĻ¸ā§āĻā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻ°ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§ āĻāĻāĻ¨āĻžāĻā§āĻ°āĻŽā§ āĻāĻ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻĻā§āĻ°ā§āĻ¨ā§āĻ¤āĻŋāĻ° āĻĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°āĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°-āĻĒāĻ āĻ¨ āĻŽā§āĻĄā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¤ āĻ¸āĻš āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋāĻ° āĻāĻ°ā§āĻ°āĻŋ āĻ
āĻŦāĻ¸āĻžāĻ¨ āĻāĻāĻžāĻŦā§āĨ¤ SIGSEGV
, āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ
āĻā§āĻˇāĻ¤ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŖāĻ¤āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ iOS āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĨ¤ āĻ˛ā§āĻāĻ āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻ¸ā§āĻ¤ā§āĻ° āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻ¨āĻŋ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻž LMDB āĻāĻ āĻŽā§āĻŦāĻžāĻāĻ˛ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻŦā§āĻĻāĻŋāĻ¤ āĻšāĻ¯āĻŧ.
āĻāĻāĻāĻāĻ¸-āĻ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻāĻ°āĻŖ
2018 āĻ¸āĻžāĻ˛ā§ WWDC-āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻĻāĻ¨ āĻāĻŋāĻ˛
āĻā§āĻ˛āĻŋāĻ¨ āĻŽā§āĻŽāĻ°āĻŋ āĻšāĻ˛ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻ¯āĻž āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻ¸ā§āĻŽā§āĻ¤āĻŋ āĻĨā§āĻā§ āĻŦā§āĻ¯āĻĨāĻžāĻšā§āĻ¨āĻāĻžāĻŦā§ āĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨāĻžāĻāĻž āĻĄā§āĻāĻž āĻ¤āĻžāĻ° āĻŽā§āĻ˛ āĻāĻ¤ā§āĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻĒāĻĄāĻŧā§āĨ¤ āĻāĻāĻāĻāĻ¸ āĻ¯ā§ āĻā§āĻ¨āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻŽā§āĻŽāĻ°āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻāĻ¯āĻŧ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĄāĻŋāĻ¸ā§āĻā§ āĻĨāĻžāĻāĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋāĻ¯ā§āĻā§āĻ¤āĨ¤
â
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¨ā§āĻāĻ°āĻž āĻ¸ā§āĻŽā§āĻ¤āĻŋāĻ¤ā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧ, āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŽā§āĻ˛āĻ¤ āĻ¯ā§āĻāĻžāĻ¨ā§āĻ āĻāĻŋāĻ˛ āĻ¨āĻž āĻā§āĻ¨āĨ¤ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ˛āĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻāĻ°ā§ āĻāĻāĻāĻžāĻŦā§ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻĒāĻ¤āĻžāĻāĻž āĻĻāĻŋāĻ¯āĻŧā§ LMDB āĻā§āĻ˛āĻž MDB_WRITEMAP
, āĻāĻāĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¯āĻ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻ¤āĻžāĻĄāĻŧāĻŋ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻ¨āĻŋāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, iOS āĻāĻāĻŋ āĻ¨ā§āĻāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻž āĻ¸āĻāĻā§āĻāĻ¨ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĨ¤ āĻ¨ā§āĻāĻ°āĻž āĻāĻŦāĻ āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻāĻāĻ˛āĻā§āĻ¤ āĻŽā§āĻ āĻŽā§āĻŽāĻ°āĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻĻāĻāĻŋāĻšā§āĻ¨ āĻāĻ āĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻŦāĻžāĻ° āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĨā§āĻ°ā§āĻļāĻšā§āĻ˛ā§āĻĄ āĻŽāĻžāĻ¨ āĻĒā§āĻāĻāĻžāĻ˛ā§, OOM āĻāĻŋāĻ˛āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄā§āĻŽāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻĒāĻ°ā§ āĻāĻ¸ā§ āĻāĻŦāĻ āĻā§āĻ°āĻĒā§āĻ°ā§āĻŦāĻ āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻĄā§āĻ¸ā§āĻāĻāĻĒ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻŋ iOS āĻāĻ° āĻŦāĻŋāĻļā§āĻˇāĻ¤ā§āĻŦāĨ¤ āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻā§āĻ¤ āĻŽā§āĻŽāĻ°āĻŋ āĻĨā§āĻā§ āĻĄāĻŋāĻ¸ā§āĻā§ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻāĻ°ā§ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻĒāĻĻāĻāĻŋāĻšā§āĻ¨ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž iOS-āĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¨āĻžā§ˇ āĻāĻžāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻā§āĻŦāĻ˛ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ā§ˇ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧāĻāĻžāĻŦā§ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻā§ āĻĄāĻŋāĻ¸ā§āĻā§ āĻāĻŦāĻ āĻĒāĻŋāĻāĻ¨ā§ āĻ¸āĻ°āĻžāĻ¨ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻŦāĻžāĻāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦ āĻļāĻā§āĻ¤āĻŋ-āĻ¸āĻžāĻļā§āĻ°āĻ¯āĻŧā§, āĻŦāĻž iOS SSD āĻĄā§āĻ°āĻžāĻāĻā§ āĻā§āĻˇ āĻĒā§āĻ¨āĻ°ā§āĻ˛āĻŋāĻāĻ¨ā§āĻ° āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§, āĻŦāĻž āĻĄāĻŋāĻāĻžāĻāĻ¨āĻžāĻ°āĻ°āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻ āĻāĻŋāĻ˛ā§āĻ¨ āĻ¨āĻž, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻ¸ā§āĻāĻž āĻ¯ā§āĻŽāĻ¨āĻ āĻšā§āĻ āĻ¨āĻž āĻā§āĻ¨, āĻāĻāĻ¨āĻž āĻāĻāĻāĻž āĻ¸āĻ¤ā§āĻ¯āĻ āĻĨā§āĻā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻžāĻ˛ āĻāĻŦāĻ°, āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤, āĻšāĻ˛ āĻ¯ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ LMDB āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ mmap āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻĄā§āĻāĻž iOS āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻĻāĻāĻŋāĻšā§āĻ¨ā§ āĻ āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻā§ āĻ¨āĻžāĨ¤ āĻāĻĒāĻ¨āĻŋ VM Tracker āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ Xcode āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¨ā§āĻā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻāĻāĻŋ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻā§āĻ˛āĻžāĻāĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° iOS āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤ āĻļā§āĻ°ā§āĻ¤ā§, 2āĻāĻŋ LMDB āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻā§ āĻ¤āĻžāĻ° āĻĢāĻžāĻāĻ˛āĻāĻŋ 1GiB āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ - 512MiBāĨ¤ āĻāĻāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻŦāĻžāĻ¸āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻĻāĻāĻ˛ āĻāĻ°ā§ āĻĨāĻžāĻāĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ¨āĻāĻŋāĻ āĻ¨ā§āĻāĻ°āĻž āĻāĻāĻžāĻ°ā§ āĻ āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻā§ āĻ¨āĻžāĨ¤
āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻžāĻ°āĻžāĻĒ āĻāĻŦāĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ 64-āĻŦāĻŋāĻ āĻĄā§āĻ¸ā§āĻāĻāĻĒ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ
āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¤āĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ
āĻĻāĻ˛āĻŦāĻĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻšāĻžāĻ°ā§āĻĄ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¯āĻ¤āĻāĻž āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨ āĻĻāĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻāĻāĻ¸-āĻ āĻāĻŽā§āĻĒā§āĻ°ā§āĻļāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻ
āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤ āĻāĻāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻŦāĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨ (āĻ°ā§āĻ¯āĻžāĻŽ āĻĒāĻĄāĻŧā§āĻ¨) āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻĢāĻŋāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻŽāĻžāĻĒāĻ¸āĻ āĻāĻ°ā§ āĻ¨āĻž āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻšāĻŦā§ā§ˇ āĻāĻāĻŋ āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻā§āĻ˛āĻžāĻāĻĄā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻ˛āĻāĻŽāĻĄāĻŋāĻŦāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŽāĻā§āĻ¤āĻžāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ¸ā§āĻāĻŋ: 384-āĻŦāĻŋāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ 32 āĻŽā§āĻāĻžāĻŦāĻžāĻāĻ āĻāĻŦāĻ 768-āĻŦāĻŋāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ 64āĨ¤ āĻāĻ āĻāĻ˛āĻŋāĻāĻŽāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻ¯ā§āĻā§āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻˇ āĻšāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ MDB_MAP_FULL
. āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖā§ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŋ, āĻ¤āĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¯āĻĨā§āĻˇā§āĻ āĻā§āĻ āĻ¯ā§ āĻāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻĒā§āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸ā§āĻā§āĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°āĻā§āĻ° āĻāĻāĻāĻŋ āĻ -āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻžāĻ°āĻŖ āĻĻā§āĻ°ā§āĻāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻĻā§āĻāĻŋ āĻāĻāĻ¨āĻž āĻā§āĻāĻžāĻŦā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ¤āĻž āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, LMDB-āĻāĻ° āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻĻā§āĻāĻŋ āĻ¸ā§āĻ¤āĻŽā§āĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
3.2āĨ¤ āĻ¤āĻŋāĻŽāĻŋ #2āĨ¤ B+-āĻāĻžāĻ
āĻāĻāĻāĻŋ āĻŽā§āĻ˛-āĻŽāĻžāĻ¨ āĻ¸āĻā§āĻāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻāĻĒāĻ°ā§ āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§āĻ˛āĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ° API-āĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§:
- āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤
- āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻā§ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§āĻ¨.
- āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ.
- āĻā§āĻā§āĻ˛āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻ¸ā§āĻ āĻā§āĻ°āĻŽā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻ¸āĻšāĻāĻ¤āĻŽ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¯āĻž āĻ¸āĻšāĻā§āĻ āĻāĻžāĻ°āĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻžāĻāĨ¤ āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄ āĻāĻāĻāĻŋ āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻ¯āĻž āĻāĻžāĻāĻ˛ā§āĻĄ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽāĻā§āĻ° āĻāĻĒāĻ¸ā§āĻāĻāĻŋāĻā§ āĻĻā§āĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ°āĻŋāĻ¤ā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°ā§āĨ¤ āĻŦāĻžāĻŽ āĻāĻāĻāĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒāĻŋāĻ¤āĻžāĻŽāĻžāĻ¤āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻā§āĻ āĻāĻŦāĻ āĻĄāĻžāĻ¨āĻāĻŋāĻ¤ā§ āĻŦāĻĄāĻŧāĻā§āĻ˛āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ āĻāĻžāĻŦāĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻ¸ā§āĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ˛āĻžāĻ¸āĻŋāĻ āĻā§āĻ°āĻŋ āĻā§āĻ°āĻžāĻāĻžāĻ°ā§āĻ¸āĻžāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻāĻžāĻā§āĻ° āĻĻā§āĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻ¤āĻžāĻĻā§āĻ° āĻĄāĻŋāĻ¸ā§āĻ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĄā§āĻāĻž āĻāĻžāĻ āĻžāĻŽā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¤ā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯ā§āĻ° āĻŽāĻžāĻ¤ā§āĻ°āĻž āĻ
āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļā§āĻ¯āĨ¤ āĻāĻžāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¯āĻĨā§āĻˇā§āĻ āĻā§āĻāĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻļāĻžāĻāĻžāĻ° āĻāĻā§āĻāĻ¤āĻž āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻāĻŋāĻ¨ā§āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻžāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ
āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§āĻ° āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻŋāĻ āĻāĻāĻŋāĻ˛āĻ¤āĻžāĻā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻžāĻ°āĻžāĻĒ āĻāĻ°ā§āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°āĻ¸-āĻ˛āĻŋāĻā§āĻā§āĻ° āĻĒā§āĻ°āĻžāĻā§āĻ°ā§āĻ¯āĻ¤āĻž āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻā§āĻ°āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĨā§āĻā§ āĻŦāĻā§āĻāĻŋāĻ¤ āĻāĻ°ā§ā§ˇ āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ (āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§) āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ā§ˇ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻā§āĻ° āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻļā§ āĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻ°āĻžāĻāĻžāĻ°ā§āĻ¸āĻžāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻ¨-āĻŽā§āĻŽāĻ°āĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻāĻžāĻā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŋ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻā§āĻ¯āĻžāĻļā§ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¸āĻ¸ā§āĻ¤āĻž āĻāĻ¨āĻ¨ā§āĻĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯āĻāĻ¨ āĻĄāĻŋāĻ¸ā§āĻ āĻĨā§āĻā§ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻāĻ¨ āĻāĻ¨ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻĨāĻž āĻāĻ¸ā§, āĻ¤āĻāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ
āĻŦāĻŋ-āĻŦā§āĻā§āĻˇ, āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻāĻžāĻā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦāĻ°ā§āĻ¤āĻ¨, āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ āĻ¨ā§āĻā§āĻā§āĻĻā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¤āĻžāĻ°āĻž āĻ¸ā§āĻŦ-āĻāĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯āĻĒā§āĻ°ā§āĻŖāĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄ āĻāĻžāĻāĻ˛ā§āĻĄ āĻā§-āĻāĻ° āĻ¸ā§āĻāĻā§ 2-āĻ āĻ¨āĻ¯āĻŧ, M āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻžāĻŦāĻ¸ā§āĻā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ M āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻŋ āĻŦā§āĻļ āĻŦāĻĄāĻŧ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻ¯āĻŧā§āĻāĻļ āĻŦāĻž āĻāĻŽāĻ¨āĻāĻŋ āĻšāĻžāĻāĻžāĻ°ā§āĻ°āĻ āĻŦā§āĻļāĻŋāĨ¤
āĻ¯āĻžāĻ° āĻĢāĻ˛ā§:
- āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§ āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻā§āĻŦ āĻā§āĻāĨ¤
- āĻāĻžāĻāĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°ā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻā§āĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ āĻāĻāĻ āĻŦāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻļā§ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻĒāĻžāĻļā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤
- āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ āĻāĻŋāĻ¯āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻžāĻ āĻĨā§āĻā§ āĻ¨āĻžāĻŽāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ°āĻžāĻ¨āĻāĻŋāĻ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŽā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
- āĻ°ā§āĻā§āĻ āĻā§āĻ¯āĻŧā§āĻ°āĻŋāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ āĻŋāĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŽā§ āĻā§āĻā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ¤ā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
LMDB āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ B+ āĻā§āĻ°āĻŋ āĻ¨āĻžāĻŽāĻ āĻŦāĻŋ-āĻā§āĻ°āĻŋāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻāĻŋāĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ°ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻāĻ¤ā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¤āĻŋāĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¨ā§āĻĄ āĻĻā§āĻāĻžāĻ¯āĻŧ:
- āĻļā§āĻ°ā§āĻˇā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻŽā§āĻ˛āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻĻāĻžāĻŽā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻāĻžāĻĄāĻŧāĻž āĻāĻ° āĻāĻŋāĻā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻāĻāĻŋ LMDB āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻŽā§āĻ˛ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤
- āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§ āĻĒāĻžāĻ¤āĻž āĻāĻā§āĨ¤ āĻ¤āĻžāĻ°āĻž āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻžāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻā§-āĻŽāĻžāĻ¨ā§āĻ° āĻā§āĻĄāĻŧāĻž āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻŋ B+-āĻŦā§āĻā§āĻˇā§āĻ° āĻŦāĻŋāĻļā§āĻˇāĻ¤ā§āĻŦāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ āĻāĻļāĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§, āĻ¤āĻŦā§ B+ āĻŦā§āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻā§āĻŦāĻ˛ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨āĻāĻŋāĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻ āĻ¸āĻ¤ā§āĻ¯āĻāĻŋ āĻ āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž LMDB-āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻžāĻā§āĻ° āĻāĻĒ-āĻĒā§āĻ°āĻāĻžāĻ°āĻāĻŋāĻā§ āĻā§āĻŦāĻ˛ āĻāĻāĻāĻŋ āĻŦāĻŋ-āĻŦā§āĻā§āĻˇ āĻŦāĻ˛āĻŦāĨ¤
- āĻŽā§āĻ˛ āĻāĻŦāĻ āĻĒāĻžāĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨ā§āĻāĻŋāĻā§āĻļāĻ¨āĻžāĻ˛ (āĻļāĻžāĻāĻž) āĻ¨ā§āĻĄ āĻ¸āĻš 0 āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ¸ā§āĻ¤āĻ° āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ āĻšāĻ˛ āĻĒāĻžāĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻ¸ā§āĻāĻā§ āĻāĻžāĻ āĻāĻ°āĻžāĨ¤
āĻļāĻžāĻ°ā§āĻ°āĻŋāĻāĻāĻžāĻŦā§, āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻĒā§āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻĻā§āĻ°ā§āĻā§āĻ¯ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻŦā§āĻ˛āĻāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻžāĻ° āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻžāĻ°ā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ¨ā§āĻĄ āĻāĻ āĻ¨ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ. āĻšā§āĻĄāĻžāĻ°ā§ āĻŽā§āĻāĻž āĻ¤āĻĨā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻā§āĻāĻ¸āĻžāĻŽāĨ¤ āĻāĻ° āĻĒāĻ°ā§ āĻ
āĻĢāĻ¸ā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻāĻ¸ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĄā§āĻāĻž āĻ¸āĻš āĻā§āĻˇāĻā§āĻ˛āĻŋ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻ¨ā§āĻāĻŋāĻā§āĻļāĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻāĻĨāĻž āĻŦāĻ˛āĻŋ āĻŦāĻž āĻĒāĻžāĻ¤āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°ā§ āĻā§-āĻŽāĻžāĻ¨ā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ° āĻāĻĨāĻž āĻŦāĻ˛āĻŋ āĻ¤āĻžāĻšāĻ˛ā§ āĻĄā§āĻāĻž āĻšāĻ¯āĻŧ āĻā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĒā§āĻˇā§āĻ āĻž āĻ¨ā§āĻĄā§āĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸āĻ°āĻ˛ā§āĻā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ LMDB B-āĻā§āĻ°āĻŋāĻā§ āĻāĻ°āĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŦāĨ¤
āĻ¨ā§āĻĄ āĻ¸āĻš āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻā§āĻāĻ¤āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻˇā§āĻ° āĻĻāĻŋāĻā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻŽā§āĻāĻž āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻ āĻĢāĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻā§āĻ° āĻļāĻŋāĻāĻĄāĻŧ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, LMDB āĻāĻāĻāĻŋ āĻŦā§āĻ§ āĻŽā§āĻāĻž āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§ āĻĒā§āĻˇā§āĻ āĻž āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒā§āĻˇā§āĻ āĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻĒāĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻ¨, āĻĄā§āĻāĻž āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻāĻŦāĻ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻāĻ āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨āĻŋāĻ¯āĻŧā§, āĻāĻŽāĻ°āĻž LMDB-āĻāĻ° āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻ¸ā§āĻ¤āĻŽā§āĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨āĻāĻ¤āĻāĻžāĻŦā§ āĻāĻŦāĻ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻĨā§āĻā§ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻāĻā§, āĻ¯āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻļāĻ¨ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
3.3āĨ¤ āĻ¤āĻŋāĻŽāĻŋ #3āĨ¤ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻ˛āĻŋāĻ
āĻāĻŋāĻā§ āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻāĻ° āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻāĻĄāĻŧāĻŋāĻ¤āĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§ āĻ¯ā§āĻ āĻāĻ°āĻā§ āĻ¯āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¤āĻžāĻ° āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻā§āĻˇāĻŽāĻ¤āĻžāĻ¯āĻŧ āĻĒā§āĻāĻā§āĻā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ, āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¨ā§āĻĄāĻāĻŋāĻā§ āĻĻā§āĻāĻŋ āĻāĻžāĻā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž, āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻ¤āĻžāĻ° āĻĒāĻŋāĻ¤āĻžāĻŽāĻžāĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĻā§āĻ¯āĻŧāĻŽāĻžāĻ¨ āĻļāĻŋāĻļā§ āĻ¨ā§āĻĄā§ āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻā§āĻŦ āĻŦāĻŋāĻĒāĻā§āĻāĻ¨āĻāĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ā§ āĻāĻžāĻ°āĻŖā§ (āĻā§āĻ°ā§āĻ¯āĻžāĻļ, āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻŦāĻŋāĻā§āĻ°āĻžāĻ, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻŋāĻā§ āĻ āĻāĻļ āĻāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻžāĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ āĻ¸āĻā§āĻāĻ¤āĻŋāĻĒā§āĻ°ā§āĻŖ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ-āĻ¸āĻšāĻ¨āĻļā§āĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻ˛ āĻŦāĻŋ-āĻā§āĻ°āĻŋāĻ° āĻĒāĻžāĻļā§ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ āĻ¨-āĻĄāĻŋāĻ¸ā§āĻ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻž - āĻāĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ˛āĻ, āĻ¯āĻž āĻāĻāĻāĻŋ āĻ˛ā§āĻāĻž-āĻāĻāĻžāĻŽā§ āĻ˛āĻ (WAL) āĻ¨āĻžāĻŽā§āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¯āĻžāĻ° āĻļā§āĻˇā§ āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻ¨āĻŋāĻā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯āĻŽā§āĻ˛āĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻāĻŋ āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻ¯āĻĻāĻŋ āĻ¸ā§āĻŦ-āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄā§āĻāĻž āĻĻā§āĻ°ā§āĻ¨ā§āĻ¤āĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¨āĻŋāĻā§āĻā§ āĻ¸āĻžāĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻ°ā§āĨ¤
LMDB āĻ¤āĻžāĻ° āĻĢāĻ˛ā§āĻ āĻāĻ˛āĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻāĻĒāĻŋ-āĻ āĻ¨-āĻ°āĻžāĻāĻāĨ¤ āĻāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻ¯ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻĄā§āĻāĻž āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¨ā§āĻĄā§āĻ° āĻ˛āĻŋāĻā§āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻ¤āĻžāĻ° āĻŽā§āĻ˛ āĻ¨ā§āĻĄā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧā§ āĻā§āĻā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋāĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻāĻŋāĻ āĻāĻā§ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻŽā§āĻ˛ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻāĻžāĻŦā§ āĻāĻ˛āĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻļā§āĻˇ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ āĻŽā§āĻāĻž āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻĄā§āĻāĻž
āĻ¯āĻĻāĻŋ āĻšāĻ āĻžā§ āĻāĻ°ā§ āĻāĻĒāĻĄā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻšāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽā§āĻāĻž āĻĒā§āĻˇā§āĻ āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻž, āĻ āĻĨāĻŦāĻž āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ˛ā§āĻāĻž āĻšāĻŦā§ āĻ¨āĻž āĻāĻŦāĻ āĻāĻ° āĻā§āĻāĻ¸āĻžāĻŽāĻāĻŋ āĻā§āĻ˛ āĻšāĻŦā§āĨ¤ āĻāĻ āĻĻā§āĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻāĻāĻžāĻ¨ā§ āĻ¯āĻžāĻŦā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻĒā§āĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻšāĻŦā§ āĻ¨āĻžā§ˇ āĻāĻāĻŋ āĻĄā§āĻāĻž āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻ¤ā§ āĻāĻ˛āĻāĻŽāĻĄāĻŋāĻŦāĻŋ-āĻ° āĻ āĻā§āĻ°āĻŋāĻŽ āĻ˛āĻ āĻ˛ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĻā§āĻ° āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻĄāĻŋāĻ¸ā§āĻā§ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻ¤āĻžāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ˛āĻā§āĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ LMDB āĻāĻ° āĻ āĻ¨ā§āĻ¯āĻ¤āĻŽ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯āĻž āĻāĻā§āĻ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻ¨āĻāĻļāĻž, āĻ¯āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°-āĻ
ā§āĻ¯āĻžāĻĒā§āĻ¨ā§āĻĄ-āĻŦāĻŋ-āĻā§āĻ°āĻŋ, āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻž āĻāĻŦāĻ āĻŦāĻšā§-āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ LMDB-āĻ¤ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻāĻžāĻā§āĻ° āĻŽā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤āĨ¤ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻžāĻā§āĻ° āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻāĻāĻ¨āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻž āĻŦāĻž āĻĄā§āĻāĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻžā§ˇ āĻāĻāĻāĻžāĻŦā§, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻāĻžāĻ¨ āĻ¤āĻ¤āĻā§āĻˇāĻŖ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ āĻŋāĻ āĻ¸ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻĄā§āĻāĻžāĻ° āĻ¸ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻā§āĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻĻāĻŋ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¸āĻā§āĻāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻĒāĻĄā§āĻ āĻšāĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ, LMDB āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻĻāĻ°ā§āĻļ āĻĄā§āĻāĻž āĻā§āĻ¸ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§ UICollectionView
. āĻāĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻā§āĻ˛āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŋāĻā§ āĻ
āĻŦāĻļāĻŋāĻˇā§āĻ āĻ¨āĻž āĻĨāĻžāĻāĻžāĻ° āĻāĻ¯āĻŧā§, āĻāĻŋāĻā§ āĻāĻ¨-āĻŽā§āĻŽāĻ°āĻŋ āĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄā§āĻāĻž āĻĻā§āĻ°ā§āĻ¤ āĻĒāĻžāĻŽā§āĻĒ āĻāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻĢā§āĻāĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻāĨ¤ āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻāĻāĻ SQLite āĻĨā§āĻā§ LMDB āĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°ā§, āĻ¯āĻž āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻžāĻ° āĻāĻ°ā§āĻŦ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻžāĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻĻā§āĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻā§āĻ˛āĻžāĻ° āĻĒāĻ°ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ°ā§āĻāĻ°ā§āĻĄ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻĒāĻ°ā§, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ
āĻŦāĻļāĻŋāĻˇā§āĻāĻāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻ āĻ°ā§āĻāĻ°ā§āĻĄ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻāĻ° āĻ¸āĻŽā§āĻāĻŦ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻŽā§āĻĻā§āĻ°āĻžāĻ° āĻāĻ˛ā§āĻāĻžāĻ¨ā§ āĻĻāĻŋāĻ āĻšāĻ˛ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻā§āĻ āĻāĻ°āĻāĨ¤ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻŋāĻ¯āĻŧā§ 3āĻāĻŋ āĻā§āĻ˛āĻž āĻĒāĻ āĻŋāĻ¤ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻžāĻ āĻžāĻŽā§āĻāĻŋ āĻā§āĻŽāĻ¨ āĻšāĻŦā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ LMDB āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ°ā§āĻ āĻĨā§āĻā§ āĻĒā§āĻāĻāĻžāĻ¨ā§ āĻ¯ā§āĻā§āĻ¯ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž, āĻ¤āĻžāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻ°ā§āĻāĻāĻŋ āĻāĻ¤ā§āĻ°ā§āĻĨ āĻ°ā§āĻ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ¸āĻāĻļā§āĻ§āĻŋāĻ¤ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻā§ āĻāĻŦāĻžāĻ° āĻā§āĻ˛ā§āĻ¨ āĻāĻ°āĻž āĻāĻžāĻĄāĻŧāĻž āĻāĻ° āĻā§āĻ¨āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨ā§āĻā§ˇ
āĻāĻāĻžāĻ¨ā§ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻ¸ā§āĻŽāĻ°āĻŖ āĻāĻ°āĻž āĻāĻĒāĻ¯ā§āĻā§ āĻšāĻŦā§āĨ¤ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻ°āĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŦā§ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻĻāĻāĻŋāĻšā§āĻ¨ā§ āĻ āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻā§ āĻ¨āĻžāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯ā§ iOS āĻāĻāĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻā§āĻŦ āĻā§āĻĒāĻŖ, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦāĻž āĻĄā§āĻ¸ā§āĻāĻāĻĒā§āĻ° āĻŽāĻ¤ā§ 1 āĻā§āĻ°āĻžāĻŦāĻžāĻāĻā§āĻ° āĻāĻāĻāĻŋ LMDB āĻ āĻā§āĻāĻ˛ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻž āĻāĻŦāĻ āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻŽā§āĻā§āĻ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŋ āĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻ° āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻā§āĻŦāĻ¨āĻāĻžāĻ˛ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
4. āĻā§-āĻŽāĻžāĻ¨ API-āĻāĻ° āĻāĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž
āĻāĻ˛āĻāĻŽāĻĄāĻŋāĻŦāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° API āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ: āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻāĻŦāĻ āĻĄā§āĻāĻžāĻŦā§āĻ¸, āĻā§ āĻāĻŦāĻ āĻŽāĻžāĻ¨, āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻ¸āĻžāĻ°ā§ˇ
āĻā§āĻĄ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻ
āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻāĻ˛āĻāĻŽāĻĄāĻŋāĻŦāĻŋ āĻāĻĒāĻŋāĻāĻ-āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻā§āĻĄ āĻāĻāĻžāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻ° āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻ
āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ āĻāĻ°āĻŋāĨ¤
iOS āĻŦāĻž macOS-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§ LMDB āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻŽ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° CocoaPod āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻāĻŋ
4.1. āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻž
āĻĒāĻ°āĻŋāĻŦā§āĻļ
āĻāĻ āĻ¨ MDB_env
LMDB-āĻāĻ° āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻžāĻ¨ā§āĻĄāĻžāĻ°āĨ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻžāĻ° mdb_env
āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ° āĻāĻŋāĻā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¸āĻšāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻā§āĻāĻŋāĻ¨ āĻāĻ°āĻŽā§āĻ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ.
mdb_env_create(env);â
mdb_env_set_map_size(*env, 1024 * 1024 * 512)â
mdb_env_open(*env, path.UTF8String, MDB_NOTLS, 0664);
Mail.ru āĻā§āĻ˛āĻžāĻāĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§āĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻšāĻ˛ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ
ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻ¸ā§āĻĒā§āĻ¸ā§āĻ° āĻāĻāĻžāĻ° āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽāĻžāĻ¨ āĻ°āĻžāĻ¨ āĻĨā§āĻā§ āĻ°āĻžāĻ¨ā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻāĻāĻ¸ā§āĻ° āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¤ā§, āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻ˛āĻŋāĻāĻŽ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽāĻžāĻ¨ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻā§āĻ°āĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻ
āĻ°ā§āĻ§ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ mdb_env_open
āĻĨā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻāĻŋ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦā§ āĻ¨āĻž ENOMEM
. āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻāĻāĻžāĻŦā§, āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻāĻĒāĻžāĻ¯āĻŧāĻ āĻ°āĻ¯āĻŧā§āĻā§ - āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻā§āĻāĻŋāĻ¨ā§ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻŽā§āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ˛ā§, MDB_MAP_FULL
, āĻāĻāĻž āĻŦā§āĻĻā§āĻ§āĻŋ. āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ
āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻāĻžāĻāĻāĻžāĻ¯ā§āĻā§āĻ¤āĨ¤ āĻāĻžāĻ°āĻŖ āĻšāĻ˛ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŽā§āĻŽāĻ°āĻŋ (āĻ°āĻŋāĻŽā§āĻ¯āĻžāĻĒ) āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ mdb_env_set_map_size
āĻāĻā§āĻāĻŋāĻ¨ āĻĨā§āĻā§ āĻĒā§āĻ°ā§āĻŦā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ¤ā§āĻ¤āĻž (āĻāĻžāĻ°āĻ¸āĻžāĻ°, āĻ˛ā§āĻ¨āĻĻā§āĻ¨, āĻā§ āĻāĻŦāĻ āĻŽāĻžāĻ¨) āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻ°ā§āĨ¤ āĻā§āĻĄā§ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻāĻ āĻŽā§āĻĄāĻŧ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻĢāĻ˛ā§ āĻāĻ° āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻāĻāĻŋāĻ˛āĻ¤āĻž āĻĻā§āĻāĻž āĻĻā§āĻŦā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¯āĻĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻā§āĻŦ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ
āĻ¨ā§āĻāĻĻā§āĻ° āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻāĻžāĻāĻāĻžāĻāĻŋ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĻā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ°āĻŖ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°, āĻ¯āĻžāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ, āĻĨā§āĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻŽā§āĻāĻžāĻ¨āĻŋāĻā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻ
āĻ¨ā§āĻ¤āĻ¤ iOS 10-āĻāĻ° āĻĨā§āĻ°ā§āĻĄ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻāĻžāĻ°āĻŖā§, āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻžāĻ¨ā§āĻĄāĻžāĻ°āĻāĻŋ āĻĒāĻ¤āĻžāĻāĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻā§āĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§ MDB_NOTLS
. āĻāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻāĻāĻžāĻ āĻĻāĻ°āĻāĻžāĻ° āĻāĻŋāĻ˛
āĻĄā§āĻāĻžāĻŦā§āĻ¸
āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻāĻŋāĻ° āĻā§āĻ˛āĻž āĻāĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻā§, āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻā§ āĻ āĻĻā§āĻā§āĻ¤ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
MDB_txn *txn;â
MDB_dbi dbi;â
mdb_txn_begin(env, NULL, MDB_RDONLY, &txn);â
mdb_dbi_open(txn, NULL, MDB_CREATE, &dbi);â
mdb_txn_abort(txn);
āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, LMDB-āĻ¤ā§ āĻāĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ¸āĻ¤ā§āĻ¤āĻž, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻāĻāĻžāĻŦā§, āĻāĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻāĻžāĻ°ā§ āĻŽāĻĄā§āĻ˛āĻŋāĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻāĻ¨ā§āĻŽā§āĻā§āĻ¤ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻĨ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ, āĻ¨ā§āĻā§ āĻŦāĻŋāĻļāĻĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻā§ āĻāĻŦāĻ āĻŽāĻžāĻ¨
āĻāĻ āĻ¨ MDB_val
āĻā§ āĻāĻŦāĻ āĻŽāĻžāĻ¨ āĻāĻāĻ¯āĻŧā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻā§ āĻŽāĻĄā§āĻ˛ āĻāĻ°ā§āĨ¤ āĻāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻ° āĻ¤āĻžāĻĻā§āĻ° āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻā§āĻ¨ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨ā§āĻāĨ¤ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ
āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻāĻāĻžāĻ°ā§āĻ° āĻŦāĻžāĻāĻā§āĻ° āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻ°ā§āĨ¤ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻā§ āĻāĻāĻžāĻ° 512 āĻŦāĻžāĻāĻāĨ¤
typedef struct MDB_val {â
size_t mv_size;â
void *mv_data;â
} MDB_val;ââ
āĻāĻāĻāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¸ā§āĻā§āĻ°āĻāĻŋ āĻā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻ°ā§āĻšā§ āĻā§āĻ°āĻŽā§ āĻ¸āĻžāĻāĻžāĻ¯āĻŧā§ˇ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻŋāĻā§ āĻ¨āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯āĻž āĻ˛ā§āĻā§āĻ¸āĻŋāĻā§āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻā§āĻ°āĻŽā§ āĻŦāĻžāĻāĻ-āĻŦāĻžāĻ-āĻŦāĻžāĻāĻ āĻŦāĻžāĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻ˛ā§āĻ¨āĻĻā§āĻ¨
āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
- āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§
ACID : āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻāĻ¤āĻž, āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž, āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻž āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĨ¤ āĻāĻŽāĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻž āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻŽā§āĻ¯āĻžāĻāĻāĻāĻ¸ āĻāĻŦāĻ āĻāĻāĻāĻāĻ¸-āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž MDBX-āĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ°ā§ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨README . - āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĨā§āĻ°ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ "āĻāĻāĻ āĻ˛ā§āĻāĻ / āĻāĻāĻžāĻ§āĻŋāĻ āĻĒāĻžāĻ āĻ" āĻ¸ā§āĻāĻŋāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ˛ā§āĻāĻāĻ°āĻž āĻāĻā§ āĻ āĻĒāĻ°āĻā§ āĻŦā§āĻ˛āĻ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻžāĻ āĻāĻĻā§āĻ° āĻ āĻŦāĻ°ā§āĻĻā§āĻ§ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻĒāĻžāĻ āĻāĻ°āĻž āĻ˛ā§āĻāĻ āĻŦāĻž āĻāĻā§ āĻ āĻĒāĻ°āĻā§ āĻ āĻŦāĻ°ā§āĻĻā§āĻ§ āĻāĻ°ā§ āĻ¨āĻžāĨ¤
- āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤
- āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻ¸āĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤
āĻāĻ˛āĻāĻŽāĻĄāĻŋāĻŦāĻŋ-āĻ¤ā§ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻ¸āĻ¨ āĻāĻ¤ āĻāĻžāĻ˛ā§ āĻ¯ā§ āĻāĻŽāĻŋ āĻāĻāĻŋāĻā§ āĻāĻ°ā§āĻŽā§ āĻĻā§āĻāĻžāĻ¤ā§ āĻāĻžāĻāĨ¤ āĻ¨ā§āĻā§āĻ° āĻā§āĻĄ āĻĨā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨ āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻ āĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻŋāĻ˛, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĨ¤ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ°ā§āĻāĻ°ā§āĻĄ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻŋāĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻ āĻāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ°ā§āĻā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
MDB_env *env;
MDB_dbi dbi;
MDB_txn *txn;
mdb_env_create(&env);
mdb_env_open(env, "./testdb", MDB_NOTLS, 0664);
mdb_txn_begin(env, NULL, 0, &txn);
mdb_dbi_open(txn, NULL, 0, &dbi);
mdb_txn_abort(txn);
char k = 'k';
MDB_val key;
key.mv_size = sizeof(k);
key.mv_data = (void *)&k;
int v = 997;
MDB_val value;
value.mv_size = sizeof(v);
value.mv_data = (void *)&v;
mdb_txn_begin(env, NULL, 0, &txn);
mdb_put(txn, dbi, &key, &value, MDB_NOOVERWRITE);
mdb_txn_commit(txn);
MDB_txn *txn1, *txn2, *txn3;
MDB_val val;
// ĐŅĐēŅŅваĐĩĐŧ 2 ŅŅĐ°ĐŊСаĐēŅии, ĐēĐ°ĐļĐ´Đ°Ņ иС ĐēĐžŅĐžŅŅŅ
ŅĐŧĐžŅŅиŅ
// ĐŊĐ° вĐĩŅŅиŅ йаСŅ Đ´Đ°ĐŊĐŊŅŅ
Ņ ОдĐŊОК СаĐŋиŅŅŅ.
mdb_txn_begin(env, NULL, 0, &txn1); // read-write
mdb_txn_begin(env, NULL, MDB_RDONLY, &txn2); // read-only
// Đ ŅĐ°ĐŧĐēĐ°Ņ
ĐŋĐĩŅвОК ŅŅĐ°ĐŊСаĐēŅии ŅĐ´Đ°ĐģŅĐĩĐŧ иС йаСŅ Đ´Đ°ĐŊĐŊŅŅ
ŅŅŅĐĩŅŅвŅŅŅŅŅ в ĐŊĐĩĐš СаĐŋиŅŅ.
mdb_del(txn1, dbi, &key, NULL);
// ФиĐēŅиŅŅĐĩĐŧ ŅĐ´Đ°ĐģĐĩĐŊиĐĩ.
mdb_txn_commit(txn1);
// ĐŅĐēŅŅваĐĩĐŧ ŅŅĐĩŅŅŅ ŅŅĐ°ĐŊСаĐēŅиŅ, ĐēĐžŅĐžŅĐ°Ņ ŅĐŧĐžŅŅиŅ ĐŊĐ°
// Đ°ĐēŅŅĐ°ĐģŅĐŊŅŅ вĐĩŅŅиŅ йаСŅ Đ´Đ°ĐŊĐŊŅŅ
, ĐŗĐ´Đĩ СаĐŋиŅи ŅĐļĐĩ ĐŊĐĩŅ.
mdb_txn_begin(env, NULL, MDB_RDONLY, &txn3);
// ĐŖĐąĐĩĐļĐ´Đ°ĐĩĐŧŅŅ, ŅŅĐž СаĐŋиŅŅ ĐŋĐž иŅĐēĐžĐŧĐžĐŧŅ ĐēĐģŅŅŅ ŅĐļĐĩ ĐŊĐĩ ŅŅŅĐĩŅŅвŅĐĩŅ.
assert(mdb_get(txn3, dbi, &key, &val) == MDB_NOTFOUND);
// ĐавĐĩŅŅĐ°ĐĩĐŧ ŅŅĐ°ĐŊСаĐēŅиŅ.
mdb_txn_abort(txn3);
// ĐŖĐąĐĩĐļĐ´Đ°ĐĩĐŧŅŅ, ŅŅĐž в ŅĐ°ĐŧĐēĐ°Ņ
вŅĐžŅОК ŅŅĐ°ĐŊСаĐēŅии, ĐžŅĐēŅŅŅОК ĐŊĐ° ĐŧĐžĐŧĐĩĐŊŅ
// ŅŅŅĐĩŅŅвОваĐŊиŅ СаĐŋиŅи в йаСĐĩ Đ´Đ°ĐŊĐŊŅŅ
, ĐĩŅ вŅŅ ĐĩŅŅ ĐŧĐžĐļĐŊĐž ĐŊĐ°ĐšŅи ĐŋĐž ĐēĐģŅŅŅ.
assert(mdb_get(txn2, dbi, &key, &val) == MDB_SUCCESS);
// ĐŅОвĐĩŅŅĐĩĐŧ, ŅŅĐž ĐŋĐž ĐēĐģŅŅŅ ĐŋĐžĐģŅŅĐĩĐŊ ĐŊĐĩ Đ°ĐąŅ ĐēĐ°ĐēОК ĐŧŅŅĐžŅ, Đ° ваĐģидĐŊŅĐĩ Đ´Đ°ĐŊĐŊŅĐĩ.
assert(*(int *)val.mv_data == 997);
// ĐавĐĩŅŅĐ°ĐĩĐŧ ŅŅĐ°ĐŊСаĐēŅиŅ, ŅайОŅĐ°ŅŅĐĩĐš Ņ
ĐžŅŅ и Ņ ŅŅŅĐ°ŅĐĩвŅĐĩĐš, ĐŊĐž ĐēĐžĐŊŅиŅŅĐĩĐŊŅĐŊОК йаСОК Đ´Đ°ĐŊĐŊŅŅ
.
mdb_txn_abort(txn2);
āĻāĻŽāĻŋ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻāĻŋ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ SQLite āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ āĻā§āĻļāĻ˛āĻāĻŋ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĻā§āĻā§āĻ¨ āĻāĻŋ āĻšāĻ¯āĻŧāĨ¤
āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻ¸āĻ¨ āĻāĻāĻāĻ¨ iOS āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°ā§āĻ° āĻā§āĻŦāĻ¨ā§ āĻā§āĻŦ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§āĨ¤ āĻāĻ āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ
āĻāĻŋāĻā§āĻāĻ¤āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ¸ā§āĻā§āĻ°ā§āĻ¨ āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻāĻ¤ā§āĻ¸ā§āĻ° āĻāĻĒāĻĄā§āĻā§āĻ° āĻšāĻžāĻ° āĻ¸āĻšāĻā§ āĻāĻŦāĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ¸ā§āĻ¨ Mail.ru āĻā§āĻ˛āĻžāĻāĻĄ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŋ āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻā§āĻ¯āĻžāĻ˛āĻžāĻ°āĻŋ āĻĨā§āĻā§ āĻ¸āĻžāĻŽāĻā§āĻ°ā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ˛ā§āĻĄ āĻāĻ°āĻžāĨ¤ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§, āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĢāĻā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄā§āĻ° āĻĒāĻ°ā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨ UICollectionView
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻā§āĻ˛āĻžāĻāĻĄā§ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻš, āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 60 fps āĻāĻŦāĻ āĻŽāĻ¸ā§āĻŖ āĻ¸ā§āĻā§āĻ°ā§āĻ˛āĻŋāĻ āĻā§āĻ˛ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ¨ āĻāĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻ¨ āĻāĻĒāĻĄā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ¨āĻāĻāĻžāĻŦā§ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĄā§āĻāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻšāĻžāĻ° āĻ¸ā§āĻŽāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ UICollectionViewDataSource
.
āĻ¯āĻĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻ¸āĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨āĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĄā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧ-āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋāĻā§ āĻāĻŋāĻā§ āĻāĻ¨-āĻŽā§āĻŽāĻ°āĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻŦāĻž āĻāĻāĻāĻŋ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¯ā§ āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛. āĻāĻ¨-āĻŽā§āĻŽāĻ°āĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻ°āĻ āĻĒāĻžāĻ, āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻāĻŦāĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ ORM āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤āĨ¤ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻāĻ¨āĻ¨ā§āĻĻ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ -āĻ¤ā§āĻā§āĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ āĻŦā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
LMDB āĻāĻ° āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ°āĻ¸āĻ¨ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻĄā§āĻāĻž āĻāĻ¤ā§āĻ¸ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻā§āĻŦ āĻŽāĻžāĻ°ā§āĻāĻŋāĻ¤ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻŦāĻ āĻāĻ¯āĻŧāĻ˛āĻž āĻā§āĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ - āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°āĻŋ, āĻĄā§āĻāĻž āĻ¸ā§āĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ° āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻāĻĒāĻĄā§āĻā§āĻ° āĻāĻ¤āĻŋāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻāĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻšāĻžāĻ¤ā§, āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ¨āĻ āĻāĻāĻžāĻ°āĻšā§āĻĄ āĻ¨ā§āĻā§ˇ
āĻāĻžāĻ°ā§āĻ¸āĻžāĻ°
āĻāĻžāĻ°ā§āĻ¸āĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻā§āĻ°āĻžāĻāĻžāĻ°ā§āĻ¸āĻžāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻā§-āĻŽāĻžāĻ¨ā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ° āĻāĻĒāĻ° āĻ¸ā§āĻļā§āĻā§āĻāĻ˛āĻāĻžāĻŦā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻĄāĻŧāĻž, āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĻāĻžāĻŦā§ āĻŽāĻĄā§āĻ˛ āĻāĻ°āĻž āĻ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻŦā§, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻāĻžāĻ˛ā§ āĻāĻ°āĻāĻŋāĨ¤
4.2āĨ¤ āĻā§āĻŦāĻŋāĻ˛ āĻŽāĻĄā§āĻ˛āĻŋāĻ
āĻā§ āĻ āĻ°ā§āĻĄāĻžāĻ°ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻā§āĻ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§āĻŽāĻ¨ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻāĻ°āĻŖā§āĻ° āĻāĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛āĨ¤ āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŋ, āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°ā§āĨ¤
āĻā§āĻŦāĻŋāĻ˛ āĻ¸ā§āĻāĻŋāĻŽāĻž
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻā§āĻ°āĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ā§ˇ āĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻĻāĻā§āĻˇ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻĄā§āĻāĻž āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ° āĻŽāĻĄā§āĻ˛ āĻšāĻ˛
āĻ¨ā§āĻā§āĻ° āĻāĻŦāĻŋāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§, āĻšāĻžāĻ¤ā§ āĻĨāĻžāĻāĻž āĻāĻžāĻ¸ā§āĻā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻŦāĻžāĻāĻ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻāĻžāĻ°ā§ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻā§āĻŽāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒā§āĻ¯āĻžāĻ°ā§āĻ¨ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (āĻ˛āĻžāĻ˛) āĻāĻ° āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻžāĻāĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĨāĻŽā§, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻžāĻāĻĒ (āĻ¸āĻŦā§āĻ) āĻ¸āĻš āĻāĻŦāĻ āĻ¨āĻžāĻŽ (āĻ¨ā§āĻ˛) āĻ¸āĻš āĻ˛ā§āĻā§ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻ āĻāĻŋāĻ§āĻžāĻ¨āĻŋāĻ āĻā§āĻ°āĻŽā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ LMDB āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻāĻāĻ āĻ˛āĻžāĻ˛ āĻāĻĒāĻ¸āĻ°ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻā§āĻ°ā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¸āĻŋāĻ āĻā§āĻā§āĻ˛āĻŋ āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻā§āĻ°āĻŽā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ (āĻĄāĻžāĻ¨āĻĻāĻŋāĻā§) āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻā§āĻ¨ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒā§āĻ¸ā§āĻ-āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻāĻ¯āĻŧā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤
āĻā§āĻ°āĻŽāĻŋāĻ āĻā§ āĻāĻŦāĻ āĻŽāĻžāĻ¨
āĻĒā§āĻĨāĻŋāĻŦā§āĻ¤ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĻā§āĻāĻžāĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¤āĻŋ āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ
āĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŋāĻ˛ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻŽ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯āĻāĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ - āĻ¸āĻŋ āĻāĻžāĻˇāĻžāĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻāĻāĻ˛āĻā§āĻ¤ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻāĻāĻāĻŋ āĻĄāĻžāĻŽā§āĻĒāĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻĄā§āĻ˛ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ NodeKey
.
typedef struct NodeKey {â
EntityId parentId;â
uint8_t type;â
uint8_t nameBuffer[256];â
} NodeKey;
āĻŦāĻžāĻāĻāĻžāĻ¤ā§ NodeKey
āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ MDB_val
āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻļā§āĻ°ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻĄā§āĻāĻž āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻžāĻ° āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨ sizeof
.
MDB_val serialize(NodeKey * const key) {
return MDB_val {
.mv_size = sizeof(NodeKey),
.mv_data = (void *)key
};
}
āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ā§āĻ° āĻŽāĻžāĻ¨āĻĻāĻŖā§āĻĄā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ
āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ CRUD āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻŽāĻžāĻ¨ā§āĻ° āĻāĻĨāĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻĄ serialize
āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ LMDB āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¨āĻ¤ā§āĻ¨ āĻ°ā§āĻāĻ°ā§āĻĄ āĻĸā§āĻāĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻĄāĻŧāĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻŦāĻžāĻāĻ āĻ
ā§āĻ¯āĻžāĻ°ā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¤ā§āĻā§āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĢā§āĻ˛ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ LMDB-āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻā§āĻ¨āĻ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨ā§āĻ āĻ¤āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ iOS āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ - āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĨā§āĻā§ āĻĄāĻŋāĻ¸ā§āĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ°ā§ āĻĒāĻĨ āĻ§āĻ°ā§ āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨!
āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž
āĻŽā§āĻ˛ āĻā§āĻ°āĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻāĻāĻāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻĢāĻžāĻāĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻā§āĻāĻŋāĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻŦāĻžāĻāĻā§āĻ° āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻā§āĻ āĻāĻžāĻ¨ā§ āĻ¨āĻž, āĻ¤āĻžāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻŽā§āĻĒā§āĻ¯āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻāĻžāĻā§ āĻŦāĻžāĻāĻ-āĻŦāĻžāĻ-āĻŦāĻžāĻāĻ āĻ¤ā§āĻ˛āĻ¨āĻžāĻ° āĻ āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻāĻ°ā§ āĻ˛ā§āĻā§āĻ¸āĻŋāĻā§āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻā§āĻ°āĻŽā§ āĻā§āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻāĻžāĻĄāĻŧāĻž āĻāĻ° āĻā§āĻ¨ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨ā§āĻāĨ¤ āĻāĻžāĻ āĻžāĻŽā§ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻžāĻāĻž āĻā§āĻĄāĻŧāĻžāĻ˛ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻŽāĻŋ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻāĻ°āĻŋāĨ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻāĻ āĻĒāĻĨā§ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻĨāĻžāĻāĻž āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ°ā§āĻ āĻ¨ā§āĻ āĻāĻ°āĻŦāĨ¤
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻšāĻ˛ āĻāĻĻāĻŋāĻŽ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ
ā§āĻ¯āĻžāĻĒāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§, āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
// value (hex dump)
000 (0000)
256 (0001)
001 (0100)
257 (0101)
...
254 (fe00)
510 (fe01)
255 (ff00)
511 (ff01)
āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĻā§āĻ˛āĻŋāĻā§ āĻŦāĻžāĻāĻ-āĻŦāĻžāĻāĻ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻā§āĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĒāĻ°āĻŋāĻŦāĻžāĻ°ā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§āĻ˛āĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°āĻŦā§ hton*
(āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻāĻžāĻŦā§ htons
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨā§āĻā§ āĻĄāĻžāĻŦāĻ˛-āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯)āĨ¤
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸, āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ¨ā§āĻ¨, āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§ packed
.
āĻāĻāĻāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻŽā§āĻ˛ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦ āĻāĻāĻŋāĻ˛ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻžāĻ°āĻŖā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĨ¤ āĻāĻŽāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§-āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻ¨āĻžāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻŦāĨ¤
typedef struct NodeKey {â
EntityId parentId;â
uint8_t type;â
uint8_t nameBuffer[256];â
} NodeKey;
āĻāĻ° āĻ¸āĻ°āĻ˛āĻ¤āĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĨ¤ āĻ¨āĻžāĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻĢāĻžāĻ° 256 āĻŦāĻžāĻāĻ āĻ¨ā§āĻ¯āĻŧ, āĻ¯āĻĻāĻŋāĻ āĻāĻĄāĻŧ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻā§āĻŦ āĻāĻŽāĻ 20-30 āĻ āĻā§āĻˇāĻ°ā§āĻ° āĻŦā§āĻļāĻŋ āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻāĻāĻžāĻ° āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻāĻ°ā§āĻļ āĻā§āĻļāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛ āĻāĻāĻŋāĻā§ āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻāĻžāĻ°ā§ "āĻāĻžāĻāĻāĻž" āĻāĻ°āĻžāĨ¤ āĻāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛-āĻĻā§āĻ°ā§āĻā§āĻ¯ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻļā§āĻˇā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻĒā§āĻĨāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻā§ NodeKey
āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
typedef struct NodeKey {â
EntityId parentId;â
uint8_t type;â
uint8_t nameLength;â
uint8_t nameBuffer[256];â
} NodeKey;
āĻāĻ°āĻ, āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĄā§āĻāĻžāĻ° āĻāĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž sizeof
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ āĻžāĻŽā§, āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻāĻžāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻŦāĻžāĻĢāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻā§āĻ¤āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ
āĻāĻļā§āĻ° āĻāĻāĻžāĻ°āĨ¤
MDB_val serialize(NodeKey * const key) {
return MDB_val {
.mv_size = offsetof(NodeKey, nameBuffer) + key->nameLength,
.mv_data = (void *)key
};
}
āĻ°āĻŋāĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋāĻāĻ¯āĻŧā§āĻ° āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻāĻāĻ˛āĻā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻ¨āĻāĻŋāĻ¤ā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻĒā§āĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻ¤āĻŦā§ āĻāĻžāĻ°āĻŋāĻāĻ°āĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻžāĻ°āĻŖā§ nameLength
, āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§ āĻā§ āĻ¤ā§āĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ° āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¨āĻž āĻāĻ°āĻŋ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¨āĻžāĻŽā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯āĻāĻŋ āĻ¨āĻžāĻŽā§āĻ° āĻā§āĻ¯āĻŧā§ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻāĻā§āĻ āĻ
āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ°āĻŖ āĻšāĻŦā§āĨ¤
LMDB āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻĢāĻžāĻāĻļāĻ¨ āĻĨāĻžāĻāĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ mdb_set_compare
āĻā§āĻ˛āĻžāĻ° āĻāĻā§ āĻāĻ ā§āĻ°āĻāĻžāĻŦā§āĨ¤ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻžāĻ°āĻŖā§, āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻ°āĻž āĻā§āĻŦāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻžāĨ¤ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻĻā§āĻāĻŋ āĻā§ āĻĒāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻā§ āĻāĻāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻž āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§: (-1) āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻŽ, (1) āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻŦāĻž (0) āĻāĻ° āĻ¸āĻŽāĻžāĻ¨āĨ¤ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻāĻĄā§āĻā§āĻĄ NodeKey
āĻ¯ā§ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ
int compare(MDB_val * const a, MDB_val * const b) {â
NodeKey * const aKey = (NodeKey * const)a->mv_data;â
NodeKey * const bKey = (NodeKey * const)b->mv_data;â
return // ...
}â
āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§ āĻāĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻšāĻ¯āĻŧ, āĻ¨āĻŋāĻāĻļāĻ°ā§āĻ¤āĻāĻžāĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻžāĻāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ§āĻ°āĻŖā§ āĻāĻžāĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻāĻ¨āĻ¤āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻˇā§āĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¨ā§āĻā§ "āĻ°āĻŋāĻĄāĻŋāĻ āĻ°ā§āĻāĻ°ā§āĻĄāĻ¸" āĻāĻĒāĻ§āĻžāĻ°āĻžāĻ¯āĻŧ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻā§āĻ°āĻŽāĻŋāĻ āĻŽāĻžāĻ¨
LMDB āĻ¸āĻā§āĻāĻŋāĻ¤ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻ¯ā§āĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻā§āĻ¤ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻāĻ¤āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻ°ā§āĻļ āĻŦāĻŋāĻļā§āĻŦā§, āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§ āĻ¯āĻĨā§āĻˇā§āĻ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯āĻĻāĻŋ āĻ¨āĻŋāĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻ¤ā§ āĻā§āĻā§āĻ˛āĻŋāĻā§ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻ
āĻāĻļā§ (āĻŽāĻžāĻ¨) āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻāĻā§āĻ°āĻšā§ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻāĻāĻŋāĻ° āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¤āĻāĻ¨āĻ āĻāĻā§ āĻ¯āĻāĻ¨ āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻā§āĻŦ āĻāĻŽāĻ āĻāĻā§, āĻ¤āĻžāĻ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻā§āĻ˛āĻŋ āĻāĻ¤āĻāĻž āĻ¸āĻŽāĻžāĻ˛ā§āĻāĻ¨āĻžāĻŽā§āĻ˛āĻ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻŽā§āĻā§āĻ¤āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻ¨āĻ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŽāĻ¨ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ NSKeyedArchiver
.
NSData *data = serialize(object);â
MDB_val value = {â
.mv_size = data.length,â
.mv_data = (void *)data.bytesâ
};
āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻā§ āĻ¯āĻāĻ¨ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻāĻ¨āĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻā§āĻ˛āĻžāĻāĻĄā§āĻ° āĻĢāĻžāĻāĻ˛ āĻāĻžāĻ āĻžāĻŽā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŽā§āĻā§āĻāĻ¨āĻĢāĻ°ā§āĻŽā§āĻļāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻĄāĻžāĻŽā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽāĻŋāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻžāĻāĻāĻŋāĻ° āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻšāĻ˛ āĻ¯ā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻā§āĻ°āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŽāĻĄā§āĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻŋ āĻ¸āĻŋ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻĒā§āĻĨāĻ āĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻŦā§āĻ¸ āĻāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻāĻ¯ā§āĻ āĻāĻžāĻāĻĒ āĻāĻāĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻ°āĻā§āĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
typedef struct NodeValue {â
EntityId localId;â
EntityType type;â
union {â
FileInfo file;â
DirectoryInfo directory;â
} info;â
uint8_t nameLength;â
uint8_t nameBuffer[256];â
} NodeValue;â
āĻ°ā§āĻāĻ°ā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž
āĻā§āĻ°āĻŽāĻŋāĻ āĻā§ āĻāĻŦāĻ āĻŽāĻžāĻ¨ āĻ¸ā§āĻā§āĻ°ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§, āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ mdb_put
.
// key и value иĐŧĐĩŅŅ ŅиĐŋ MDB_valâ
mdb_put(..., &key, &value, MDB_NOOVERWRITE);
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻāĻ āĻā§ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻ°ā§āĻāĻ°ā§āĻĄ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻā§āĻāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŦāĻž āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻĄā§āĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻ
āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻāĻŋ āĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻĄā§āĻ° āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻĢāĻ˛ā§āĻ āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻĒāĻ¤āĻžāĻāĻžāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§ āĻāĻāĻŋ āĻĨā§āĻā§ āĻ¨āĻŋāĻā§āĻā§ āĻ°āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ NOOVERWRITE
āĨ¤
āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĒāĻĄāĻŧāĻž
LMDB-āĻ¤ā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻĒāĻĄāĻŧāĻ¤ā§, āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ mdb_get
. āĻ¯āĻĻāĻŋ āĻā§-āĻŽāĻžāĻ¨ āĻā§āĻĄāĻŧāĻž āĻĒā§āĻ°ā§āĻŦā§ āĻĄāĻžāĻŽā§āĻĒ āĻāĻ°āĻž āĻāĻžāĻ āĻžāĻŽā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤
NodeValue * const readNode(..., NodeKey * const key) {â
MDB_val rawKey = serialize(key);â
MDB_val rawValue;â
mdb_get(..., &rawKey, &rawValue);â
return (NodeValue * const)rawValue.mv_data;â
}
āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻĄāĻžāĻŽā§āĻĒā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻŦāĻ˛ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ, āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻĨā§āĻā§ āĻŽā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ mdb_get
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻāĻŋ āĻ āĻŋāĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŦāĻžāĻāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° ORM āĻĒāĻžāĻ āĻ¯āĻž āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¤āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻ¨ā§āĻĻāĻ°ā§āĻ¯ āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
- āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ āĻ¨āĻ¯ā§āĻā§āĻ¯ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻŽāĻžāĻ¨ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻŦāĻ¨ā§āĻ§ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻ§ āĻĨāĻžāĻāĻžāĻ° āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻāĻā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤, āĻāĻĒāĻŋ-āĻ āĻ¨-āĻ°āĻžāĻāĻ āĻ¨ā§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻ¤āĻā§āĻˇāĻŖ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻļā§āĻˇ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§, āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĨā§āĻā§ āĻŦā§āĻāĻā§ āĻĨāĻžāĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§, āĻ¤āĻžāĻ°āĻĒāĻ°āĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻāĻāĻāĻŋ āĻ°āĻŋāĻĄāĻ°āĻžāĻāĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ (āĻĄā§āĻāĻž āĻ˛ā§āĻāĻž āĻŦāĻž āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž) āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻ§ āĻšāĻŦā§āĨ¤
- āĻ¯āĻĻāĻŋāĻ āĻāĻ āĻ¨
NodeValue
āĻĒā§āĻ°ā§āĻŖāĻžāĻā§āĻ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻžāĻāĻāĻž (āĻāĻĒāĻŦāĻŋāĻāĻžāĻ "āĻāĻāĻāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž" āĻĻā§āĻā§āĻ¨), āĻāĻĒāĻ¨āĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻā§ āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻāĻŋ dereference āĻ¨āĻž āĻšāĻ¯āĻŧ! - āĻā§āĻ¨ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¤ā§āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻžāĻ āĻžāĻŽā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ
mdb_put
. āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ¯āĻ¤āĻ āĻāĻ āĻŋāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¨āĻž āĻā§āĻ¨, āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻŦā§ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻāĻžāĻ āĻžāĻŽā§āĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŽā§āĻŽāĻ°āĻŋ āĻ āĻā§āĻāĻ˛āĻāĻŋ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¸ā§āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ āĻ¨ āĻŽā§āĻĄā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ - āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻ
ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻ¸ā§āĻĒā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ°āĻŋāĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§
mdb_env_set_map_size
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻ°ā§ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤
āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻ°ā§āĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻ¤āĻāĻžāĻ āĻāĻ˛āĻ¨āĻžāĻŽāĻ¯āĻŧ āĻ¯ā§ āĻāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻ
āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻā§āĻā§āĻĻā§ āĻŽāĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ-āĻŦā§āĻā§āĻˇ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ
āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻŽāĻŋ āĻāĻ° āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ° āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻāĻāĻŋ āĻāĻ āĻĨā§āĻā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§ āĻ¯ā§ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻāĻĄ āĻĄā§āĻāĻž āĻ¸āĻš āĻŦāĻžāĻĢāĻžāĻ°ā§āĻ° āĻļā§āĻ°ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻāĻŋ āĻāĻā§āĻŦāĻžāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻāĻžāĻ°āĻŖā§, āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻāĻžāĻ āĻžāĻŽā§ āĻā§āĻšā§āĻ¤ MDB_val
āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ˛ā§, āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ¨āĻ˛āĻžāĻāĻ¨āĻĄ āĻšāĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻāĻŋāĻā§ āĻāĻŋāĻĒā§āĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° (iOS-āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ armv7) āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¯ā§ āĻā§āĻ¨āĻ āĻĄā§āĻāĻžāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŽā§āĻļāĻŋāĻ¨ āĻļāĻŦā§āĻĻā§āĻ° āĻāĻāĻžāĻ°ā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻž āĻ
āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦāĻŋāĻ āĻāĻāĻžāĻ° ( armv7 āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ 32 āĻŦāĻŋāĻ)āĨ¤ āĻ
āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻŽāĻ¤ *(int *foo)0x800002
āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻ° āĻĒāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ°āĻžāĻ¯āĻŧ āĻĻāĻŋāĻ¯āĻŧā§ āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°ā§ EXC_ARM_DA_ALIGN
. āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻĻā§āĻāĻāĻāĻ¨āĻ āĻāĻžāĻā§āĻ¯ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ āĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻĄā§āĻāĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋāĻ¤ā§ āĻĢā§āĻāĻĄāĻŧāĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻ¤ā§āĻ˛āĻ¨āĻžāĻāĻžāĻ°ā§āĻ¤ā§ āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻšāĻŦā§āĨ¤
int compare(MDB_val * const a, MDB_val * const b) {
NodeKey aKey, bKey;
memcpy(&aKey, a->mv_data, a->mv_size);
memcpy(&bKey, b->mv_data, b->mv_size);
return // ...
}
āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°āĻā§ āĻāĻā§āĻ āĻāĻžāĻ¨āĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§ āĻā§-āĻŽāĻžāĻ¨ā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻā§āĻ˛āĻŋ āĻ
ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ-āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ aligned(1)
. āĻāĻāĻ°āĻāĻŽ-āĻ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ āĻĒā§āĻ°āĻāĻžāĻŦ āĻĢā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
typedef struct __attribute__((packed)) NodeKey {
uint8_t parentId;
uint8_t type;
uint8_t nameLength;
uint8_t nameBuffer[256];
} NodeKey;
āĻ°ā§āĻā§āĻ āĻĒā§āĻ°āĻļā§āĻ¨
āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒā§āĻ° āĻāĻĒāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻ¤ā§, LMDB āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ˛ā§āĻ¨ āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĨ¤
āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ
āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻāĻŋāĻ° āĻāĻžāĻāĻ˛ā§āĻĄ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ˇ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻŦāĻŋāĻāĻžāĻā§ āĻāĻŽāĻ°āĻž āĻā§āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻāĻŋāĻ¯āĻŧā§āĻāĻŋ NodeKey
āĻ¯ā§āĻŽāĻ¨ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻŽā§āĻ˛ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻāĻāĻĄāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻĻā§āĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, āĻāĻāĻāĻŋ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻžāĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ¸āĻš āĻā§āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ°ā§āĻĒā§āĻ° āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻžāĻ¯āĻŧ āĻāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¨ā§āĻā§āĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻžāĻ¯āĻŧ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻžāĨ¤
āĻāĻ°ā§āĻ§ā§āĻŦ āĻŦāĻžāĻāĻ¨ā§āĻĄ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ āĻ¨ā§āĻā§āĻ°āĻŽāĻŋāĻ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§. āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻžāĻ°ā§āĻ¸āĻžāĻ°āĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻļā§āĻ°ā§āĻ¤ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ¯āĻžāĻ°ā§āĻ¨ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¸āĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻāĻŋ āĻāĻ°āĻ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° 2āĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§:
- āĻ°ā§āĻāĻŋāĻ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻāĻŋāĻ˛āĻ¤āĻž, āĻ¯āĻĻāĻŋāĻ āĻāĻžāĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻāĻžāĻā§ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻŦāĻŋ-āĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻāĻŋ āĻ˛āĻāĻžāĻ°āĻŋāĻĻāĻŽāĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- āĻ¨āĻŋāĻ°āĻ°ā§āĻĨāĻāĻāĻžāĻŦā§, āĻ¯ā§āĻāĻŋ āĻāĻžāĻāĻ¯āĻŧāĻž āĻšāĻā§āĻā§ āĻ¤āĻžāĻ° āĻāĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻˇā§āĻ āĻž āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻŽā§āĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¤ā§āĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛āĨ¤
āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, LMDB API āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ°ā§āĻ¸āĻžāĻ°ā§āĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§āĻ° āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻžāĻ¯āĻŧ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻā§-āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻŽ āĻŦāĻž āĻ¸āĻŽāĻžāĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ°ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻˇā§āĻ¤ā§āĻ° parentId
2 āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻŦā§, āĻāĻŦāĻ āĻŦāĻžāĻāĻŋ āĻ¸āĻŦ āĻļā§āĻ¨ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°ā§āĻŖāĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻļāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ°āĻžāĻ āĻā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ¨āĻĒā§āĻā§ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧ mdb_cursor_get
āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻā§āĻāĻŋāĻ¤ MDB_SET_RANGE
āĨ¤
NodeKey upperBoundSearchKey = {â
.parentId = 2,â
.type = 0,â
.nameLength = 0â
};â
MDB_val value, key = serialize(upperBoundSearchKey);â
MDB_cursor *cursor;â
mdb_cursor_open(..., &cursor);â
mdb_cursor_get(cursor, &key, &value, MDB_SET_RANGE);
āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻ ā§āĻ° āĻā§āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻ° āĻāĻĒāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻŋ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻž āĻāĻ°āĻŋ āĻŦāĻž āĻā§āĻāĻŋ āĻ
āĻ¨ā§āĻ¯āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ parentId
, āĻ
āĻĨāĻŦāĻž āĻāĻžāĻŦāĻŋāĻā§āĻ˛āĻŋ āĻāĻā§āĻŦāĻžāĻ°ā§āĻ āĻĢā§āĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ āĻ¨āĻž
do {â
rc = mdb_cursor_get(cursor, &key, &value, MDB_NEXT);â
// processing...â
} while (MDB_NOTFOUND != rc && // check end of tableâ
IsTargetKey(key)); // check end of keys groupââ
āĻāĻŋ āĻāĻŽā§āĻāĻžāĻ° āĻ¯ā§ mdb_cursor_get āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻā§āĻŦāĻ˛ āĻā§āĻ āĻ¨āĻ¯āĻŧ, āĻŽāĻžāĻ¨āĻ āĻĒāĻžāĻāĨ¤ āĻ¯āĻĻāĻŋ, āĻ¨āĻŽā§āĻ¨āĻžāĻ° āĻļāĻ°ā§āĻ¤āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻ āĻāĻļ āĻĨā§āĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ āĻā§āĻāĻāĻā§āĻāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āĻŦā§āĻļ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯āĨ¤
4.3āĨ¤ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŽāĻĄā§āĻ˛āĻŋāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ
āĻāĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻāĻ-āĻā§āĻŦāĻŋāĻ˛ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻŦāĻ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĻāĻŋāĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°ā§āĻāĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ āĻāĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻā§-āĻŽāĻžāĻ¨ āĻā§āĻĄāĻŧāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒāĻžāĻāĻĒāĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽ āĻĒāĻžāĻŦā§āĻ¨āĨ¤
â
āĻ¯āĻžāĻāĻšā§āĻ, āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§ āĻāĻ¤ āĻ āĻ˛ā§āĻĒ āĻ°āĻā§āĻ¤āĻĒāĻžāĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻŦ āĻāĻŽāĻ āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻāĻāĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ āĻĨāĻžāĻāĻž, āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§ āĻĨā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĨ¤ āĻāĻ āĻļā§āĻˇ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ¸ā§āĻˇā§āĻāĻŋ āĻāĻŦāĻ āĻāĻ¨ā§āĻ¤āĻāĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¸āĻ°ā§āĻā§āĻā§āĻ¤āĨ¤
āĻ¸ā§āĻāĻ āĻā§āĻŦāĻŋāĻ˛
āĻā§āĻ˛āĻžāĻāĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ "āĻā§āĻ¯āĻžāĻ˛āĻžāĻ°ā§" āĻŦāĻŋāĻāĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻ¤āĻžāĻ°āĻŋāĻ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻ¸āĻŽāĻā§āĻ° āĻā§āĻ˛āĻžāĻāĻĄ āĻĨā§āĻā§ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨āĻā§ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽāĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§, āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻĒāĻžāĻļā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻā§ āĻ¸āĻš āĻāĻ°ā§āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¤āĻžāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¤āĻžāĻ°āĻŋāĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŦā§, āĻ¯āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸āĻžāĻāĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ¨āĻĻāĻŖā§āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§āĨ¤ āĻāĻžāĻ°āĻŖ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻā§āĻ˛āĻŋ āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻā§āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻĄā§āĻāĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§, āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨ā§āĻā§āĻ° āĻāĻŦāĻŋāĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻ˛āĻž āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻāĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻā§ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻĨā§āĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻā§āĻŦāĻŋāĻ˛āĻāĻāĻĄāĻŋ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋāĻā§ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸āĻžāĻ°āĻŖāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŦāĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ°ā§āĻĒāĻŋāĻ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻŦāĨ¤
āĻ¸ā§āĻāĻ āĻā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻ āĻĄā§āĻāĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§-āĻāĻ° āĻŽāĻžāĻ¨ āĻ āĻāĻļā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻ°āĻ˛ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻ¨āĻ¯āĻŧ:
- āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻŦā§āĻļ āĻ¸āĻŽā§āĻĻā§āĻ§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻĻā§āĻāĻŋ āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻā§āĻĄ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§āĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛ā§ āĻ¯āĻžāĻ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ°ā§āĻā§ āĻĄā§āĻāĻž āĻ āĻ¸āĻā§āĻāĻ¤āĻŋāĻ° āĻāĻāĻāĻŋ āĻ āĻ§āĻ°āĻž āĻŦāĻžāĻ āĻĒāĻžāĻŦāĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĻā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻž
āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻāĻŋ āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻāĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ "āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§". āĻāĻ° āĻ¨āĻžāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¸ā§āĻāĻ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻ āĻāĻļāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§ āĻŽāĻžāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻ āĻāĻļā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋāĻā§ āĻĻā§āĻ° āĻāĻ°ā§āĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ°āĻ āĻšāĻ˛ āĻ¯ā§ āĻ¸ā§āĻāĻ āĻā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ 2āĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻŋāĻ¤āĻāĻžāĻŦā§, āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ.
āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°ā§āĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻšāĻ˛ "āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§". āĻāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻā§āĻāĻŋāĻ¤ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž, āĻ¯āĻž āĻ¸āĻžāĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¯āĻŧ, āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ˇ Mail.ru āĻā§āĻ˛āĻžāĻāĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ¤ā§ āĻāĻāĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§, āĻ¯āĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻā§āĻ° āĻĄā§āĻŦ āĻāĻĄāĻŧāĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ iOS āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻˇāĻžāĻĒāĻā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ā§āĻĒāĻ¨āĻŋāĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦ
āĻā§āĻ˛āĻžāĻāĻĄ āĻŽā§āĻŦāĻžāĻāĻ˛ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ˛ā§āĻā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻāĻŽ āĻāĻā§, āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°āĻāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¤āĻĨā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§ (āĻāĻžāĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§, āĻā§āĻ¨ āĻ āĻ§āĻŋāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), āĻāĻāĻŋāĻ° āĻŽā§āĻ˛ā§āĻ¯ āĻ āĻāĻļā§āĻ° āĻŦā§āĻāĻž āĻ¯ā§āĻā§āĻ¤āĻŋāĻ¯ā§āĻā§āĻ¤ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻĢāĻ˛āĻžāĻāĻ¨ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋāĻā§ āĻā§āĻĨāĻžāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻā§āĻ¤āĻŋāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻā§āĻŦāĻŋāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨ā§āĻā§āĻ° āĻāĻŋāĻ¤ā§āĻ°ā§, āĻāĻ° āĻā§ "P" āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻ§āĻžāĻ°āĻ "propname" āĻāĻ°āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽāĻžāĻ¨ "āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻāĻ¨āĻĢā§" āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻŽā§āĻāĻžāĻĄā§āĻāĻž, āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻ¸ā§āĻŦāĻžāĻ°ā§āĻĨā§ āĻ¯āĻž āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻŦāĻŋāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻ āĻāĻļā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻāĻĒāĻ¨āĻŋ āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĄā§āĻāĻž āĻ¨āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¨āĻžāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĄā§āĻāĻž "āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ" āĻāĻŦāĻ "āĻāĻžāĻāĻŽāĻ¸ā§āĻā§āĻ¯āĻžāĻŽā§āĻĒ" āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻāĻžāĻ°ā§ "P" āĻā§āĻ¤ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻ āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻžāĻ¨ āĻĨā§āĻā§, āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻŽāĻ°āĻž LMDB āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻāĻāĻžāĻŦā§ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻŋāĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻŦā§āĻĻāĻ¨ āĻāĻŽāĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻž 30% āĻāĻŽā§āĻā§āĨ¤
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻžāĻā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ iOS āĻāĻŋāĻŽ āĻ
āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ
āĻ¨ā§āĻ°āĻŖāĻŋāĻ¤. āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, āĻ
ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§āĻĄ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ "āĻĢāĻžāĻāĻ˛" āĻŦāĻŋāĻāĻžāĻāĻ LMDB āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§ āĻ¸ā§āĻāĻ āĻāĻ°ā§āĻā§, āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ
āĻāĻļāĻā§āĻ˛āĻŋ āĻĒāĻĨā§ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ āĻ¸āĻŋ āĻ˛ā§āĻ¯āĻžāĻā§āĻā§āĻ¯āĻŧā§āĻ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§-āĻā§āĻ¯āĻžāĻ˛ā§ āĻ¸ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ C++ āĻ āĻā§āĻ°āĻ¸-āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻŋāĻ˛āĨ¤ āĻ
āĻŦāĻā§āĻā§āĻāĻŋāĻ-āĻ¸āĻŋ āĻāĻŦāĻ āĻā§āĻāĻ˛āĻŋāĻ¨ā§ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻŋ++ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°ā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻā§āĻ¨ā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻ¤ā§āĻ¸: www.habr.com