āωāĻšā§āϚ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āĻāĻŽāĻŦ⧇āĻĄā§‡āĻĄ DBMS libmdbx 0.11.3 āϰāĻŋāϞāĻŋāϜ

libmdbx 0.11.3 (MDBX) āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϟāĻŋ āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻāĻ•āϟāĻŋ āωāĻšā§āϚ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āϏāĻŽā§āĻĒāĻ¨ā§āύ, āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟ, āĻāĻŽāĻŦ⧇āĻĄā§‡āĻĄ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰ⧇āĨ¤ libmdbx āϕ⧋āĻĄāϟāĻŋ OpenLDAP āĻĒāĻžāĻŦāϞāĻŋāĻ• āϞāĻžāχāϏ⧇āĻ¨ā§āϏ⧇āϰ āĻ…āϧ⧀āύ⧇ āϞāĻžāχāϏ⧇āĻ¨ā§āϏāĻĒā§āϰāĻžāĻĒā§āϤāĨ¤ āĻāϟāĻŋ āϏāĻŽāĻ¸ā§āϤ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āϰāĻžāĻļāĻŋāϝāĻŧāĻžāύ āĻāϞāĻŦā§āϰāĻžāϏ ⧍ā§Ļā§Ļā§Ļ-āϕ⧇āĻ“ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ ⧍ā§Ļ⧍⧧ āϏāĻžāϞ⧇āϰ āĻļ⧇āώ āύāĻžāĻ—āĻžāĻĻ, libmdbx āĻĻ⧁āϟāĻŋ āĻĻā§āϰ⧁āϤāϤāĻŽ āχāĻĨ⧇āϰāĻŋāϝāĻŧāĻžāĻŽ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸâ€”āĻāϰāĻŋāĻ—āύ āĻāĻŦāĻ‚ āύāϤ⧁āύ "āφāϕ⧁āϞāĻž"-āϤ⧇ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāĻšā§āϛ⧇, āϝāĻž āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āϏāĻŽā§āĻĒāĻ¨ā§āύ āχāĻĨ⧇āϰāĻŋāϝāĻŧāĻžāĻŽ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĨ¤

āϐāϤāĻŋāĻšāĻžāϏāĻŋāĻ•āĻ­āĻžāĻŦ⧇, libmdbx āĻšāϞ LMDB DBMS-āĻāϰ āĻāĻ•āϟāĻŋ āĻ—āĻ­ā§€āϰ āĻĒ⧁āύāσāĻĄāĻŋāϜāĻžāχāύ āĻāĻŦāĻ‚ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝāϤāĻž, āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϏ⧇āϟ āĻāĻŦāĻ‚ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāϰ āĻĒā§‚āĻ°ā§āĻŦāĻĒ⧁āϰ⧁āώāϕ⧇ āĻ›āĻžāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϗ⧇āϛ⧇āĨ¤ LMDB āĻāϰ āϤ⧁āϞāύāĻžāϝāĻŧ, libmdbx āϕ⧋āĻĄā§‡āϰ āϗ⧁āĻŖāĻŽāĻžāύ, API āĻ¸ā§āĻĨāĻžāϝāĻŧāĻŋāĻ¤ā§āĻŦ, āĻĒāϰ⧀āĻ•ā§āώāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻšā§‡āϕ⧇āϰ āωāĻĒāϰ āĻ…āύ⧇āĻ• āĻœā§‹āϰ āĻĻ⧇āϝāĻŧāĨ¤ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āĻ…āĻ–āĻŖā§āĻĄāϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻ•āĻŋāϛ⧁ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

Libmdbx ACID āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋ, āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻ•āĻ ā§‹āϰ āĻ•ā§āϰāĻŽāĻŋāϕ⧀āĻ•āϰāĻŖ āĻāĻŦāĻ‚ āϏāĻŋāĻĒāĻŋāχāω āϕ⧋āϰ āϜ⧁āĻĄāĻŧ⧇ āϰ⧈āĻ–āĻŋāĻ• āĻ¸ā§āϕ⧇āϞāĻŋāĻ‚ āϏāĻš āύāύ-āĻŦā§āϞāĻ•āĻŋāĻ‚ āϰāĻŋāĻĄ āϏ⧁āĻŦāĻŋāϧāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟāĻŋāĻĢāĻŋāϕ⧇āĻļāύ, āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āφāĻ•āĻžāϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻāĻŦāĻ‚ āϰ⧇āĻžā§āϜ āϕ⧋āϝāĻŧ⧇āϰāĻŋ āĻ…āύ⧁āĻŽāĻžāύ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ ⧍ā§Ļā§§ā§Ŧ āϏāĻžāϞ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ āĻĒāϜāĻŋāϟāĻŋāĻ­ āĻŸā§‡āĻ•āύ⧋āϞāϜāĻŋāϏ āĻĻā§āĻŦāĻžāϰāĻž āĻ…āĻ°ā§āĻĨāĻžāϝāĻŧāύ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ āĻāĻŦāĻ‚ ⧍ā§Ļā§§ā§­ āϏāĻžāϞ āĻĨ⧇āϕ⧇ āϤāĻžāĻĻ⧇āϰ āĻĒāĻŖā§āϝāϗ⧁āϞāĻŋāϤ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ⧇ āφāϏāϛ⧇āĨ¤

libmdbx āĻāĻ•āϟāĻŋ C++ API āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ Rust, Haskell, Python, NodeJS, Ruby, Go, āĻāĻŦāĻ‚ Nim-āĻāϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻŋāωāύāĻŋāϟāĻŋ-āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚āĻ“ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

ā§§ā§§āχ āĻ…āĻ•ā§āĻŸā§‹āĻŦāϰ⧇āϰ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āĻŦāĻžāĻĻ āĻŦāĻŋāĻœā§āĻžāĻĒā§āϤāĻŋāϰ āĻĒāϰ āĻĨ⧇āϕ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻĒā§āϰāϧāĻžāύ āύāϤ⧁āύ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ, āωāĻ¨ā§āύāϤāĻŋ āĻāĻŦāĻ‚ āĻ¤ā§āϰ⧁āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ:

  • C++ API-āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻŦāϞ⧇ āĻŦāĻŋāĻŦ⧇āϚāĻŋāϤ āĻšāϝāĻŧāĨ¤
  • āĻŦāĻĄāĻŧ āĻŸā§āϰāĻžāύāĻœā§āϝāĻžāĻ•āĻļāύ āĻ•āĻŽāĻŋāϟ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ GC āĻĄā§‡āϟāĻž āφāĻĒāĻĄā§‡āĻŸā§‡āϰ āĻ—āϤāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āχāĻĨ⧇āϰāĻŋāϝāĻŧāĻžāĻŽ āχāϕ⧋āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ libmdbx āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤
  • āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻĢāϰāĻŽā§āϝāĻžāϟ āϏāĻŋāĻ—āύ⧇āϚāĻžāϰāϟāĻŋ āĻāĻŽāύāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝāĻžāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻšā§āĻ› āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āφāĻĒāĻĄā§‡āϟ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāϰ āĻĢāϞ⧇, āϝāĻ–āύ āĻĒ⧁āϰ⧋āύ⧋ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āĻŽāĻŋāϟ āĻ•āϰāĻž āĻŸā§āϰāĻžāύāĻœā§āϝāĻžāĻ•āĻļāύāϗ⧁āϞ⧋ āĻĒāĻĄāĻŧāĻž āĻšāϝāĻŧ, āϤāĻ–āύ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻ•āϰāĻžāĻĒāĻļāύ āϏāĻ‚āĻ•ā§āϰāĻžāĻ¨ā§āϤ āϭ⧁āϞ āϧāĻžāϰāĻŖāĻž āĻĻā§‚āϰ āĻšāϝāĻŧāĨ¤
  • mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod(), āĻāĻŦāĻ‚ mdbx_env_get_syncbytes() āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞ⧋ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ MDBX_SET_UPPERBOUND āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • C++ 11/14/17/20 āĻŽā§‹āĻĄā§‡ āϏāĻŽāĻ¸ā§āϤ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻĻāĻŋāϝāĻŧ⧇ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāĻŽāĻ¸ā§āϤ āϏāϤāĻ°ā§āĻ•āϤāĻž āĻĻā§‚āϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āϞāĻŋāĻ—ā§āϝāĻžāϏāĻŋ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇: clang 3.9 āĻĨ⧇āϕ⧇, gcc 4.8 āĻĨ⧇āϕ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ cdevtoolset-9 āĻĻāĻŋāϝāĻŧ⧇ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰāĻžāĻ“ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĨ¤ CentOS/RHEL 7.
  • mdbx_chk āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŽā§‡āϟāĻž āĻĒ⧇āĻœā§‡ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰāĻžāϰ āĻĒāϰ āĻŽā§‡āϟāĻž āĻĒ⧇āϜ āĻ•āύāĻĢā§āϞāĻŋāĻ•ā§āĻŸā§‡āϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻĒ⧁āϰāĻžāύ⧋ āĻŽā§‡āϟāĻž āĻĒ⧇āϜāϗ⧁āϞāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϞ⧇āĻ–āĻžāϰ āϏāĻŽāϝāĻŧ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻ¤ā§āϰ⧁āϟāĻŋ MDBX_PROBLEM āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāĻ“āϝāĻŧāĻžāϰ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • MDBX_GET_BOTH āĻ…āύ⧁āϰ⧋āϧ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ…āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŽāĻŋāϞ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ MDBX_NOTFOUND āĻĢ⧇āϰāϤ āφāϏāĻžāϰ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āϏāĻ‚āĻ•āϞāύ āĻ¤ā§āϰ⧁āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ Linux āĻ•āĻžāĻ°ā§āύ⧇āϞ⧇āϰ āϏāĻžāĻĨ⧇ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧇ āĻāĻŽāύ āĻšā§‡āĻĄāĻžāϰ āĻĢāĻžāχāϞ⧇āϰ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇āĨ¤
  • āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻĢā§āĻ˛ā§āϝāĻžāĻ— MDBX_SHRINK_ALLOWED āĻāĻŦāĻ‚ MDBX_ACCEDE āĻ…āĻĒāĻļāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇āĻ•āĻžāϰ āϏāĻ‚āϘāĻ°ā§āώ⧇āϰ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻŦ⧇āĻļ āĻ•āĻŋāϛ⧁ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻŦāĻŋāĻŦ⧃āϤāĻŋ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • mdbx_env_set_option() āĻĢāĻžāĻ‚āĻļāύ āĻĨ⧇āϕ⧇ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤāĻ­āĻžāĻŦ⧇ MDBX_RESULT_TRUE āϰāĻŋāϟāĻžāĻ°ā§āύ āĻšāĻ“āϝāĻŧāĻžāϰ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻŽā§‹āϟ, 90āϟāĻŋ āĻĢāĻžāχāϞ⧇ 25āϟāĻŋāϰāĻ“ āĻŦ⧇āĻļāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, ~1300āϟāĻŋ āϞāĻžāχāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, ~600āϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž āĻšāϝāĻŧ⧇āϛ⧇⧎

āωāĻ¤ā§āϏ: opennet.ru

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster