ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· wZD 1.0.0, сСрвСра ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ³ΠΎ хранСния ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ДоступСн ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ выпуск wZD 1.0.0 — сСрвСра для эффСктивного хранСния большого числа Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ снаруТи выглядит ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ WebDAV-сСрвСр. Для хранСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ модифицированная вСрсия BoltDB. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD.

Π‘Π΅Ρ€Π²Π΅Ρ€ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΈΠ»ΠΈ кластСрных Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ wZD кластСр Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 250 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², разнСсённых ΠΏΠΎ 15 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π² кластСрной Π€Π‘ MooseFS.

wZD Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ (Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) содСрТимоС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π² Π°Ρ€Ρ…ΠΈΠ²Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BoltDB ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Π΄Π°Π²Π°Ρ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· этих Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² (ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ PUT), Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сократив число Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π€Π‘ ΠΈ снизив Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Bolt-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ². ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ числа ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π΅ ΡƒΠΏΠΈΡ€Π°ΡΡΡŒ Π² Π»ΠΈΠΌΠΈΡ‚ Π½Π° число inode Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· wZD 1.0.0, сСрвСра ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ³ΠΎ хранСния ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π‘Π΅Ρ€Π²Π΅Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ NoSQL Π±Π°Π·Ρƒ для Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (с ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³ΠΎΠΌ Π½Π° Π±Π°Π·Π΅ структуры Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ) ΠΈΠ»ΠΈ для Ρ€Π°Π·Π΄Π°Ρ‡ΠΈ ΠΈΠ· Π‘Π” ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сгСнСрированных html ΠΈΠ»ΠΈ json-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π§Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚ΠΎ ΠΎΡ‚Π΄Π°Ρ‡Π° ΠΈ запись Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм Bolt-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° 20-25% ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈ Π½Π° 40-50% ΠΏΡ€ΠΈ записи. Π§Π΅ΠΌ мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Ρ‚Π΅ΠΌ мСньшС различия Π² Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°Ρ….

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· wZD 1.0.0, сСрвСра ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ³ΠΎ хранСния ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности:

  • ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ;
  • ΠœΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Ρ€Π²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈ ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ;
  • Максимальная ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: GET, HEAD, PUT ΠΈ DELETE;
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈ записи Ρ‡Π΅Ρ€Π΅Π· клиСнтскиС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³ΠΈΠ±ΠΊΠΎ настраиваСмых Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CRC-цСлостности Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ записи/Ρ‡Ρ‚Π΅Π½ΠΈΠΈ;
  • ΠŸΠΎΠ»ΡƒΠ΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹ для минимального потрСблСния памяти ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ настройки сСтСвой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ;
  • ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…;
  • Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прСдлагаСтся ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ wZA для пСрСмСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Bolt-Π°Ρ€Ρ…ΠΈΠ²Ρ‹ Π±Π΅Π· остановки сСрвиса.

НСкоторыС ограничСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ выпуска: Π½Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Multipart, ΠΌΠ΅Ρ‚ΠΎΠ΄Π° POST, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTPS, Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² для языков программирования, рСкурсивного удалСния Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, отсутствуСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° монтирования структуры Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Ρ‡Π΅Ρ€Π΅Π· WebDAV ΠΈΠ»ΠΈ FUSE, Ρ„Π°ΠΉΠ»Ρ‹ хранятся ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ систСмным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π€ΠΎΡ€ΠΌΠ°Ρ‚ хранСния привязан ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ Π½Π΅ пСрСносим ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами Little Endian ΠΈ Big Endian. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСрвСр wZD Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ рСвСрс прокси, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ nginx ΠΈ haproxy.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru