เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบฒเบเบฎเป‰เบญเบเบฅเป‰เบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš

เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบฒเบเบฎเป‰เบญเบเบฅเป‰เบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš

เบŠเบธเบกเบŠเบปเบ™เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡, เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบˆเบฐเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ เปเบฅเบฐเบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เป„เบŸเบฅเปŒเบ™เป‰เบญเบเป†เบซเบผเบฒเบเบฎเป‰เบญเบเบฅเป‰เบฒเบ™เป„เบŸเบฅเปŒเบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เบชเบฐเป€เบซเบ™เบตเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš POSIX เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบš locks, เบฅเบงเบกเบ—เบฑเบ‡ lock cluster, เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบกเบตเป„เบกเป‰เบ„เป‰เบญเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเป„เบ”เป‰เบ‚เบฝเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰.
เปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบˆเบฑเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ•เบปเป‰เบ™เบ•เป, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบšเบฑเบ™เบฅเบธเบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบ”เปเบฅเบฐ RAM, เป€เบŠเบดเปˆเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ cluster เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบšเปเบฅเบดเป‚เบžเบเป‚เบ”เบเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเป€เบกเบ”เบ•เบฒ. เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง, เป„เบŸเบฅเปŒเบˆเปเบฒเบ™เบงเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ•เปเปˆเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบ›เบฑเบ™เบเบธเปˆเบก.

เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบกเปˆเบ™เบ™เบตเป‰:

เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบ‡เปˆเบฒเบเป†, เป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ–เบทเบเบญเบฑเบšเป‚เบซเบฅเบ”เบœเปˆเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™, เปเบฅเบฐเบเบฑเบ‡เบญเปˆเบฒเบ™เบˆเบฒเบเบกเบฑเบ™, เปเบฅเบฐเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹: 1 folder = 1 archiveโ€‹, เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบกเบตโ€‹เบซเบผเบฒเบโ€‹เบฅเป‰เบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹, เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบซเบผเบฒเบโ€‹เบฎเป‰เบญเบโ€‹เบฅเป‰เบฒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹. เปเบฅเบฐเบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบ„เบดเบšเปƒเบ”เป†เบซเบผเบทเบเบฒเบ™เบงเบฒเบ‡เป„เบŸเบฅเปŒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบŸเป‰เบก tar / zip.

เบ‚เป‰เบญเบเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเปƒเบซเป‰เบกเบฑเบ™เบชเบฑเป‰เบ™, เบ‚เป‰เบญเบเบ‚เปเป‚เบ—เบ”เบฅเปˆเบงเบ‡ เปœเป‰เบฒ เบ–เป‰เบฒเป‚เบžเบ”เบเบฒเบง.

เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปƒเบ™เป‚เบฅเบเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเปˆเบฒเบ™ HTTP protocol เป‚เบ”เบเบเบปเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™, เป‚เบ”เบเบšเปเปˆเบกเบตเบ‚เปเป‰เป€เบชเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเปเบฅเบฐเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบงเบฑเบ”เบ–เบธ. เปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเปเบกเปˆเบ™เบเบธเปˆเบกเบ•เบปเป‰เบ™เบเปเบฒเป€เบ™เบตเบ”เบ‚เบญเบ‡ 10 เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเป€เบ•เบตเบšเปƒเบซเบเปˆเป€เบ›เบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เป€เบŠเบดเปˆเบ‡ 250,000,000 เป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป„เบ”เป‰เบชเบฐเบชเบปเบกเปเบฅเป‰เบง, เปเบฅเบฐเปเบ™เบงเป‚เบ™เป‰เบกเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบˆเบฐเบšเปเปˆเบขเบธเบ”.

เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบšเปเปˆเบกเบฑเบเบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบก, เป€เบญเบเบฐเบชเบฒเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบเบงเปˆเบฒ:

เบ—เบตเปˆเบ™เบตเป‰ ะธ เบ—เบตเปˆเบ™เบตเป‰.

เปเบฅเบฐ docker เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบ•เบญเบ™เบ™เบตเป‰เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš nginx เบžเบฒเบเปƒเบ™เบเปเบฅเบฐเบ™เบต:

docker run -d --restart=always -e host=localhost -e root=/var/storage 
-v /var/storage:/var/storage --name wzd -p 80:80 eltaline/wzd

เบ•เปเปˆเป„เบ›:

เบ–เป‰เบฒเบกเบตเป„เบŸเบฅเปŒเบซเบผเบฒเบ, เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™, เปเบฅเบฐเบชเปˆเบงเบ™เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบงเปˆเบฒเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบชเบนเบ™เป€เบชเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบ›เบฑเบ™เบเบธเปˆเบก (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, MooseFS), เป„เบŸเบฅเปŒ, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ‚เบญเบ‡เบกเบฑเบ™, เบชเบฐเป€เบซเบกเบตเปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ 64 KB. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ” 3, 10 เบซเบผเบท 30 KB, เบ•เป‰เบญเบ‡เบเบฒเบ™ 64 KB เปƒเบ™เปเบœเปˆเบ™. เบ–เป‰เบฒเบกเบตเบซเบ™เบถเปˆเบ‡เบชเปˆเบงเบ™เบชเบตเปˆเบ‚เบญเบ‡เบžเบฑเบ™เบฅเป‰เบฒเบ™เป„เบŸเบฅเปŒ, เบžเบงเบเป€เบฎเบปเบฒเบชเบนเบ™เป€เบชเบเบˆเบฒเบ 2 เบซเบฒ 10 terabytes. เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเปƒเบซเบกเปˆเป„เบ”เป‰เบขเปˆเบฒเบ‡เบšเปเปˆเบขเบธเบ”เบขเบฑเป‰เบ‡, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ MooseFS เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”: เบšเปเปˆเป€เบเบตเบ™ 1 เบ•เบทเป‰เบเบฑเบšเบซเบ™เบถเปˆเบ‡ replica เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒ.

เป€เบกเบทเปˆเบญเบˆเปเบฒเบ™เบงเบ™เป„เบŸเบฅเปŒเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™, RAM เบซเบผเบฒเบเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš metadata. เบเบฒเบ™เบ–เบดเป‰เบกเป€เบกเบ•เบฒเป€เบ”เบ•เบฒเบ‚เบฐเปœเบฒเบ”เปƒเบซเบเปˆเป€เบฅเบทเป‰เบญเบเป†เบเบฑเบ‡เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเบงเบกเปƒเบชเปˆเบ‚เบญเบ‡ SSD drives.

เป€เบŠเบตเบšเป€เบงเบต wZD. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฑเบ”เบงเบฒเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบฅเบฐเบšเบฝเบšเบขเบนเปˆเปƒเบ™เปเบœเปˆเบ™.

เป€เบŠเบตเบšเป€เบงเบตเบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Go. เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒ. เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบกเบฑเบ™? เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบเบฑเบš, เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป„เบŸเบฅเปŒเบ‚เบญเบ‡เบ‚เป‰เบญเบเปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”. BoltDB เป€เบ‚เบปเป‰เบฒเบกเบฒเบŠเปˆเบงเบ, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบˆเบฒเบเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ‚เบญเบ‡เบกเบฑเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™.

เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เบชเปˆเบงเบ™เบชเบตเปˆเบ‚เบญเบ‡เบžเบฑเบ™เบฅเป‰เบฒเบ™เป„เบŸเบฅเปŒ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบเบกเบตเบžเบฝเบ‡เปเบ•เปˆ 10 เบฅเป‰เบฒเบ™ Bolt archives เป€เบซเบผเบทเบญ. เบ–เป‰เบฒเบ‚เป‰เบญเบเบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบซเบผเบธเบ”เบฅเบปเบ‡เบ›เบฐเบกเบฒเบ™ 1 เบฅเป‰เบฒเบ™เป„เบŸเบฅเปŒ.

เป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเบšเบฑเบ™เบˆเบธเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบŸเป‰เบก Bolt, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบฅเบฐเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบ‚เป‰เบฒเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™; เบšเปเปˆเบกเบตเบˆเบธเบ”เปƒเบ”เปƒเบ™เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเบžเบงเบเบกเบฑเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡เป„เบ”เป‰. เป‚เบ•เบ™เป‰เบญเบเป†เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰, เบญเบฑเบ™เปƒเบซเบเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡. เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เป‚เบ›เปˆเบ‡เปƒเบชเบเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡.

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ wZD.

เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบฒเบเบฎเป‰เบญเบเบฅเป‰เบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš

เป€เบŠเบตเบšเป€เบงเบตเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ•เป‰เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ Linux, BSD, Solaris เปเบฅเบฐ OSX. เบ‚เป‰เบญเบเบžเบฝเบ‡เปเบ•เปˆเบ—เบปเบ”เบชเบญเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ AMD64 เบžเบฒเบเปƒเบ•เป‰ Linux, เปเบ•เปˆเบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบš ARM64, PPC64, MIPS64.

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹:

  • Multithreading;
  • Multiserver, เบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เปเบฅเบฐเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”;
  • เบ„เบงเบฒเบกเป‚เบ›เปˆเบ‡เปƒเบชเบชเบนเบ‡เบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบทเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ;
  • เบงเบดเบ—เบตเบเบฒเบ™ HTTP เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš: GET, HEAD, PUT เปเบฅเบฐ DELETE;
  • เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™เบœเปˆเบฒเบ™เบซเบปเบงเบฅเบนเบเบ„เป‰เบฒ;
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš virtual เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰;
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ CRC เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฝเบ™ / เบญเปˆเบฒเบ™;
  • buffers เป€เบ„เบดเปˆเบ‡เป„เบ”เบ™เบฒเบกเบดเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”;
  • เป€เบฅเบทเปˆเบญเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”;
  • เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, archiver เบซเบผเบฒเบเบเบฐเบ—เบนเป‰ wZA เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเป‰เบฒเบเป„เบŸเบฅเปŒเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ•เบปเบงเบˆเบดเบ‡:

เบ‚เป‰เบญเบเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบ—เบปเบ”เบชเบญเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐ archiver เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบปเบ”เบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เบ•เบญเบ™เบ™เบตเป‰เบกเบฑเบ™เป„เบ”เป‰เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™เบเบธเปˆเบกเบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบต 250,000,000 เป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ (เบฎเบนเบšเบžเบฒเบš) เบ—เบตเปˆเบขเบนเปˆเปƒเบ™ 15,000,000 เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ™ SATA drives เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบเบธเปˆเบกเบ‚เบญเบ‡ 10 เป€เบŠเบตเบšเป€เบงเบตเปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเบซเบฅเบฑเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ CDN. เป€เบžเบทเปˆเบญเปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™, 2 เป€เบŠเบตเบšเป€เบงเบต Nginx + 2 เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ wZD เบ–เบทเบเปƒเบŠเป‰.

เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ™เบตเป‰, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบชเบฐเบซเบฅเบฒเบ”เบ—เบตเปˆเบˆเบฐเบงเบฒเบ‡เปเบœเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบ–เป‰เบฒเบกเบต, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰. เปƒเบซเป‰เบ‚เป‰เบญเบเบˆเบญเบ‡เบ—เบฑเบ™เบ—เบตเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡เปƒเบˆเบ—เบตเปˆเบˆเบฐเบฅเบงเบšเบฅเบงเบกเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ 1 Bolt.

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš:

เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบšเบตเบšเบญเบฑเบ”เบ™เป‰เบญเบเบฅเบปเบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ GET เปเบฅเบฐ PUT เบ—เบตเปˆเป„เบงเบเบงเปˆเบฒเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฑเบšเบกเบฑเบ™. เปƒเบซเป‰เบชเบปเบกเบ—เบฝเบšเป€เบงเบฅเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบฅเบนเบเบ„เป‰เบฒ HTTP เบเบฑเบšเป„เบŸเบฅเปŒเบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐเบเบฒเบ™เป€เบเบฑเบš Bolt, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™. เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ” 32 KB, 256 KB, 1024 KB, 4096 KB เปเบฅเบฐ 32768 KB เบ–เบทเบเบ›เบฝเบšเบ—เบฝเบš.

เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Bolt archives, เบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเบ–เบทเบเบเบงเบ”เบชเบญเบš (CRC เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰), เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบ, เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบ„เบดเบ”เป„เบฅเปˆเบ„เบทเบ™เปƒเบซเบกเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบ™เบตเป‰เบกเบฑเบเบˆเบฐเปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒ, เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™.

เบ‚เป‰เบญเบเป„เบ”เป‰เป€เบฎเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™ SSD drives, เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปƒเบ™ SATA drives เบšเปเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™.

เบเบฃเบฒเบšเบญเบตเบ‡เบ•เบฒเบกเบœเบปเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš:

เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบฒเบเบฎเป‰เบญเบเบฅเป‰เบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบฒเบเบฎเป‰เบญเบเบฅเป‰เบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡เป€เบงเบฅเบฒเบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปเบฅเบฐเบšเปเปˆเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปเบกเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ.

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เบซเบกเบปเบ”โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ‚เบฝเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ‚เบญเบ‡ 32 MB เปƒเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹:

เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบฒเบเบฎเป‰เบญเบเบฅเป‰เบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš

เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เป€เบงเบฅเบฒเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒเบžเบฒเบเปƒเบ™ 5-25 ms. เบ”เป‰เบงเบเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ, เบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒ, เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 150 ms. เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบญเบฑเบšเป‚เบซเบฅเบ”เป„เบŸเบฅเปŒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบกเบฑเบ™เบšเปเปˆเบกเบตเบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™; เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบขเบนเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™.

*เบ—เบฒเบ‡เป€เบ—เบฑเบเบ™เบดเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบŠเบตเบšเป€เบงเบตเบ™เบตเป‰เบชเบณเบฅเบฑเบšเบงเบฝเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ NoSQL.

เบงเบดเบ—เบตเบเบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ wZD:

เบเบณเบฅเบฑเบ‡เป‚เบซเบผเบ”เป„เบŸเบฅเปŒเบ›เบปเบเบเบฐเบ•เบด:

curl -X PUT --data-binary @test.jpg http://localhost/test/test.jpg

เบเบฒเบ™เบญเบฑเบšเป‚เบซเบฅเบ”เป„เบŸเบฅเปŒเปƒเบชเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Bolt (เบ–เป‰เบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบญเบ‡เป€เบŠเบตเบŸเป€เบงเบต fmaxsize, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เป„เบŸเบฅเปŒเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เป€เบเบฑเบš, เปเบกเปˆเบ™เบšเปเปˆเป€เบเบตเบ™; เบ–เป‰เบฒเบกเบฑเบ™เป€เบเบตเบ™, เป„เบŸเบฅเปŒเบˆเบฐเบ–เบทเบเบญเบฑเบšเป‚เบซเบฅเบ”เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบดเบ•เปเปˆเป„เบ›เบเบฑเบšเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™):

curl -X PUT -H "Archive: 1" --data-binary @test.jpg http://localhost/test/test.jpg

เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ”เป„เบŸเบฅเปŒเปƒเบ”เปœเบถเปˆเบ‡ (เบ–เป‰เบฒเบกเบตเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เบขเบนเปˆเปƒเบ™เปเบœเปˆเบ™ เปเบฅเบฐเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™, เป€เบกเบทเปˆเบญเบ”เบฒเบงเป‚เบซเบผเบ”, เบšเบธเบฅเบดเบกเบฐเบชเบดเบ”เบˆเบฐเบ–เบทเบเบกเบญเบšเปƒเบซเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบˆเบฑเบ”เป€เบเบฑเบš):

curl -o test.jpg http://localhost/test/test.jpg

เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ”เป„เบŸเบฅเปŒเบˆเบฒเบเปเบŸเป‰เบก Bolt (เบšเบฑเบ‡เบ„เบฑเบš):

curl -o test.jpg -H "FromArchive: 1" http://localhost/test/test.jpg

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™.

เป€เบญเบเบฐเบชเบฒเบ™ wZD
เป€เบญเบเบฐเบชเบฒเบ™ WSA

เบ•เบญเบ™เบ™เบตเป‰เป€เบŠเบตเบšเป€เบงเบตเบžเบฝเบ‡เปเบ•เปˆเบฎเบญเบ‡เบฎเบฑเบš HTTP protocol เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™; เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš HTTPS เป€เบ—เบทเปˆเบญ. เบงเบดเบ—เบตเบเบฒเบ™ POST เบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ (เบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบทเบšเปเปˆ).

เปƒเบœเบ—เบตเปˆเบ‚เบธเบ”เบ„เบปเป‰เบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบˆเบฐเบŠเบญเบเบซเบฒ butterscotch เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบ„เบปเบ™เบกเบฑเบเบกเบฑเบ™, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบœเบนเบเบกเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เบปเป‰เบ™เบ•เปเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบเบญเบšเป€เบงเบฑเบš, เบเบปเบเป€เบงเบฑเป‰เบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เปƒเบซเบกเปˆเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบชเปเบฒเบฅเบฑเบšเป€เบเบทเบญเบšเบ—เบธเบ. เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”:

  • เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒ replicator เปเบฅเบฐโ€‹เบˆเปเบฒโ€‹เบซเบ™เปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบญเบ‡ + geo เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เป„เบŸเบฅโ€‹เปŒ cluster (เบ—เบธเบโ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบธเบโ€‹เบขเปˆเบฒเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบœเบนเป‰โ€‹เปƒเบซเบเปˆโ€‹)
  • เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹เบ‚เบญเบ‡ metadata เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเบนเบ™โ€‹เป€เบชเบโ€‹เบขเปˆเบฒเบ‡โ€‹เบชเบปเบกโ€‹เบšเบนเบ™ (เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปเบฒโ€‹เบซเบ™เปˆเบฒเบโ€‹)
  • เป‚เบ›เบฃเป‚เบ•เบ„เปเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปเบฅเบฐเป„เบ”เป€เบงเบตเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
  • เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบปเบ‡เบ›เบฐเบเบญเบš NoSQL
  • เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป† (gzip, zstd, snappy) เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบซเบผเบทเบ„เปˆเบฒเบžเบฒเบเปƒเบ™ Bolt archives เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ›เบปเบเบเบฐเบ•เบด
  • เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบซเบผเบทเบ„เปˆเบฒเบžเบฒเบเปƒเบ™ Bolt archives เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ›เบปเบเบเบฐเบ•เบด
  • เบเบฒเบ™เบ›เปˆเบฝเบ™เบงเบดเบ”เบตเป‚เบญเบ‚เป‰เบฒเบ‡เป€เบŠเบตเบšเป€เบงเบตเบฅเปˆเบฒเบŠเป‰เบฒ, เบฅเบงเบกเบ—เบฑเบ‡เปƒเบ™ GPU

เบ‚เป‰เบญเบเบกเบตเบ—เบธเบเบขเปˆเบฒเบ‡, เบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบเบฑเบšเบœเบนเป‰เปƒเบ”เบœเบนเป‰เบซเบ™เบถเปˆเบ‡, เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” BSD-3, เบฅเบดเบ‚เบฐเบชเบดเบ”เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบšเปเปˆเบกเบตเบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบงเบฝเบ, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบฐเบšเปเปˆเบ–เบทเบเบ‚เบฝเบ™. เบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบเบฐโ€‹เบ•เบฑเบ™โ€‹เบเบนโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ‚เปเป‰โ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™