เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒเป„เบฅเบเบฐเป„เบ Cage

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš

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

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ

เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

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

เป‚เบ„เบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™

เบฅเบฐเบšเบปเบš Cage (เบกเบตเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” - เบฎเบธเปˆเบ™ beta เปƒเบ™ Python 3.7 เปƒเบ™ Windows) เบ›เบฐเบเบญเบšเบกเบตเบชเบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ•เบปเป‰เบ™เบ•เป:

  1. Cageserver โ€” เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒ (เบŠเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹) เบ—เบตเปˆโ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบตโ€‹เปƒเบ™โ€‹เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบซเปˆเบฒเบ‡โ€‹เป„เบโ€‹เบชเบญเบโ€‹เบซเบผเบตเบโ€‹;
  2. เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™ cage เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบญเบšเปเบงเบฅเบนเบเบ„เป‰เบฒ, เบ‡เปˆเบฒเบ coding เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเปƒเบ™เบเปˆเบฒเบเบฅเบนเบเบ„เป‰เบฒ

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ Cage เปเบ—เบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ "เบ›เบปเบเบเบฐเบ•เบด" เปเบšเบšเบ›เบปเบเบเบฐเบ•เบด: เบเบฒเบ™เบชเป‰เบฒเบ‡, เป€เบ›เบตเบ”, เบ›เบดเบ”, เบฅเบถเบš เป„เบŸเบฅเปŒ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš เบญเปˆเบฒเบ™/เบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ–เบฒเบ™เบชเบญเบ‡ (เบŠเบตเป‰เบšเบญเบเบ•เปเบฒเปเบซเบ™เปˆเบ‡เปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™). Conceptually, เบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเป„เบŸเบฅเปŒเบ‚เบญเบ‡เบžเบฒเบชเบฒ C, เบšเปˆเบญเบ™เบ—เบตเปˆเบเบฒเบ™เป€เบ›เบตเบ” / เบ›เบดเบ”เป„เบŸเบฅเปŒเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ "เบขเบนเปˆเปƒเบ™เบŠเปˆเบญเบ‡เบ—เบฒเบ‡" เบ‚เบญเบ‡ input / output.

เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡ "เป„เบŸเบฅเปŒ" เบงเบฑเบ”เบ–เบธ (เบซเป‰เบญเบ‡เบฎเบฝเบ™ _io เปƒเบ™ Python), เปเบ•เปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ Cage.

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

เบฅเบฐเบšเบปเบšเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบญเปˆเบฒเบ™ / เบ‚เบฝเบ™เป‚เบ”เบ buffering fragments เป„เบŸเบฅเปŒเบ—เบตเปˆเปƒเบŠเป‰เป€เบฅเบทเป‰เบญเบเป†เบ‚เบญเบ‡เป‚เบ›เปเบเบผเบกเบฅเบนเบเบ„เป‰เบฒเปƒเบ™ RAM cache (buffer).
เบŠเบญเบšเปเบงเบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบงเบฑเบ”เบ–เบธ Cage เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ buffer, เบ‚เบฐเบซเบ™เบฒเบ”เบ•เบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเบเบ›เปˆเบฝเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

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

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบงเบฑเบ”เบ–เบธ Cage เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบผเบฒเบเป„เบŸเบฅเปŒเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ buffering. เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ–เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒ โ€“ เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เปเบฅเบฐโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹, เบ–เบทเบโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เป„เบซเบงโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เบงเบฑเบ”โ€‹เบ–เบธ Cageโ€‹. เบ•เบปเบงเบขเปˆเบฒเบ‡, cache 1 GB เปเบกเปˆเบ™ 1000 เบซเบ™เป‰เบฒเบ‚เบญเบ‡ 1 MB เปเบ•เปˆเบฅเบฐเบ„เบปเบ™, เบซเบผเบท 10 เบžเบฑเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡ 100 KB เปเบ•เปˆเบฅเบฐเบ„เบปเบ™, เบซเบผเบท 1 เบฅเป‰เบฒเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡ 1 KB เปเบ•เปˆเบฅเบฐเบ„เบปเบ™. เบเบฒเบ™เป€เบฅเบทเบญเบเบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบฒเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบงเบฝเบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเปเบฅเบฐเบ™เบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

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

เบซเป‰เบญเบ‡เบฎเบฝเบ™ Cage เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ I / O เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบเบ—เบตเปˆเบขเบนเปˆเบ‚เปเป‰เบกเบนเบ™ (เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบ•เปเบฒเปเบซเบ™เปˆเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบญเบฒเป€เบฅ, "เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™" เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ), เปเบ•เปˆเบเบฑเบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒ, "เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ" - เป‚เบ”เบเบ•เบปเบงเป€เบฅเบเบซเบ™เป‰เบฒเปƒเบ™ buffer memory.

เบŸเบฑเบ‡เบŠเบฑเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธ Cage "เบเบฒเบ™ hibernation" ("เบ™เบญเบ™") - เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบ "เบฅเบปเป‰เบกเบฅเบปเบ‡" (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบซเบผเบทเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ–เบทเบเบขเบธเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒ dump เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™เบเปˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบˆเบฒเบ. เป„เบŸเบฅเปŒเบ™เบตเป‰ (เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบกเปˆเบ™เบชเบทเบšเบ•เปเปˆ, เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบ›เบตเบ”เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ„เบทเบ™เปƒเปเปˆ). เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ›เปเบเบผเบกเบฅเบนเบเบ„เป‰เบฒเบซเบผเบฑเบ‡เบˆเบฒเบ "เบญเบญเบšเป„เบฅเบ™เปŒ" เบŠเบปเปˆเบงเบ„เบฒเบง, เป€เบžเบฒเบฐเบงเปˆเบฒเบŠเบดเป‰เบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเปƒเบŠเป‰เป€เบฅเบทเป‰เบญเบเป†เบˆเบฐเบขเบนเปˆเปƒเบ™เปเบ„เบ”เปเบฅเป‰เบง.

Cage เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 3600 เป€เบชเบฑเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”.

เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ

เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป„เบŸเบฅเปŒ Cageserver เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เบ”เป‰เบงเบเบˆเปเบฒเบ™เบงเบ™เบžเบญเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบญเบ‡, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™ ("เบ•เบปเป‰เบ™เบ•เป") เปเบกเปˆเบ™เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™. เป‚เบ›เบฃเปเบเบฃเบกเป€เบŠเบตเบšเป€เบงเบต Cage เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆ Python. เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™, เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบญเบทเปˆเบ™เป†.

เป€เบŠเบตเบšเป€เบงเบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบชเบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เบปเป‰เบ™เบ•เป:

  1. "เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ" - เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบเบฑเบšเบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเบขเบธเบ”เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบฅเบดเป€เบฅเบตเปˆเบกเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ;
  2. "เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™" - เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™ (เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™) เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป„เบŸเบฅเปŒ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ›เบดเบ”เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ.

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เบšเปเปˆเป„เบ”เป‰เบ–เบทเบ synchronized เปเบฅเบฐเบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™ loops เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบฎเบฑเบšเปเบฅเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ„เบดเบง multiprocess, เบงเบฑเบ”เบ–เบธเบ•เบปเบงเปเบ—เบ™, locks เปเบฅเบฐ sockets.
เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฑเบ”เบชเบฑเบ™เบžเบญเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบนเบเบ„เป‰เบฒเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เป€เบžเบทเปˆเบญเบฎเบฑเบšเปเบฅเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™. เบˆเปเบฒเบ™เบงเบ™เบžเบญเบ”เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบกเบทเปˆเบญเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบญเบ” เปเบฅเบฐเบฅเบนเบเบ‚เปˆเบฒเบเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบžเบฃเบฑเบญเบเบŠเบตเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™.

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

เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ / เบฅเบถเบš / เป€เบ›เบตเบ” / เบ›เบดเบ”เป„เบŸเบฅเปŒเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ "เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™" เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ OS.

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

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

เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท, Cageserver เบฎเบฑเบเบชเบฒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”. เบšเบฑเบ™เบ—เบถเบเบ—เบปเปˆเบงเป„เบ›เบญเบฑเบ™เปœเบถเปˆเบ‡เบกเบตเบชเบณเป€เบ™เบปเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบกเบตเปœเป‰เบฒเบงเบฝเบเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡/เป€เบ›เบตเบ”/เบ›เปˆเบฝเบ™เบŠเบทเปˆ/เบฅเบถเบšเป„เบŸเบฅเปŒ. เบšเบฑเบ™เบ—เบถเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เป€เบŠเบดเปˆเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบซเบ™เป‰เบฒเบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบตเป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš arrays เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ™ (เปƒเบซเบกเปˆ) เปเบฅเบฐ array เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ—เปเบฒเบฅเบฒเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบš (เบ‚เบฝเบ™. เบ‚เปเป‰เบกเบนเบ™เปƒเปเปˆ โ€œเบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”โ€ เบ‚เบญเบ‡เบญเบฑเบ™เป€เบเบปเปˆเบฒ).

เบšเบฑเบ™เบ—เบถเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบซเบกเปˆเปƒเบ™เบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เปเบฅเบฐ rollback เป€เบ™เบทเป‰เบญเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบˆเบธเบ”เปƒเบ™เบญเบฐเบ”เบตเบ”.

Cageserver เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 3100 เป€เบชเบฑเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”.

เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒเป„เบฅเบเบฐเป„เบ Cage

เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ›เบฃเปเบเบฃเบกเป€เบŠเบตเบšเป€เบงเบตเป„เบŸเบฅเปŒ Cageserver

เป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปƒเบ™เบเปˆเบญเบ‡เป‚เบ•เป‰เบ•เบญเบšเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”:
โ€” เบ—เปˆเบฒเป€เบฎเบทเบญเบซเบผเบฑเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”;
โ€” เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบžเบญเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เปเบฅเบโ€‹เบ›เปˆเบฝเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบ—เบธโ€‹เบฅเบฐโ€‹เบเปเบฒโ€‹เบเบฑเบšโ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ” (เบˆเบฒเบ 1 เบซเบผเบทโ€‹เบซเบผเบฒเบโ€‹เบเบงเปˆเบฒโ€‹, เบชเบฐโ€‹เบ™เบธเบโ€‹เป€เบเบตโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เป€เบฅเบโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบˆเบฒเบโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบžเบญเบ”โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹)โ€‹.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Cage Class

เบฅเบฐเบ”เบฑเบš เบ„เบญเบ.cage( cage_name="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file="" )

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

เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™

  • cage_name(str) - เบŠเบทเปˆเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบฅเบนเบเบ„เป‰เบฒเปƒเบ™เบ”เป‰เบฒเบ™เป€เบŠเบตเบŸเป€เบงเบต
  • เบ‚เบฐเปœเบฒเบ”เปœเป‰เบฒ(int) โ€” เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒ buffer (เปƒเบ™ bytesโ€‹)
  • เบ•เบปเบงเป€เบฅเบ(int) โ€” เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒ bufferโ€‹
  • maxstrlen(int) - เบ„เบงเบฒเบกเบเบฒเบงเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡ byte เปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฝเบ™ เปเบฅเบฐเบญเปˆเบฒเบ™
  • server_ip(เบ‚เบฝเบ™ เบ„เบณ เบชเบฑเปˆเบ‡) - เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบตเบ—เบตเปˆเปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เบเบฐเปเบˆเปเบกเปˆเบ™เบŠเบทเปˆเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบต (เบฅเบฐเบซเบฑเบ”เป€เบŠเบตเบšเป€เบงเบตเบžเบฒเบเปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™), เปเบฅเบฐเบ„เปˆเบฒเปเบกเปˆเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ: โ€œip address:portโ€ เบซเบผเบท โ€œDNS: portโ€ (เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบŠเบทเปˆเปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เปเบกเปˆเบ™เบŠเบปเปˆเบงเบ„เบฒเบง, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰)
  • เบฅเปเบ–เป‰เบฒ(int) โ€” เป€เบงโ€‹เบฅเบฒโ€‹เบฅเปโ€‹เบ–เป‰เบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบญเบšโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบˆเบฒเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบžเบญเบ” (เปƒเบ™โ€‹เบงเบดโ€‹เบ™เบฒโ€‹เบ—เบตโ€‹)
  • เบ›เบธเบ(เบ›เบธเป‰เบ) - เบ—เบธเบ‡เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ (เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ - เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เปƒเบซเบกเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบทเป‰เบ™โ€‹, เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡ - เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบœเปˆเบฒเบ™โ€‹เบกเบฒ "เบžเบฑเบ‡โ€‹เบฅเบปเบ‡โ€‹" เบซเบ™เบถเปˆเบ‡ - เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™ "hibernationโ€‹" เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹, เบœเบดเบ”โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹)
  • cache_file(str) - เบŠเบทเปˆเป„เบŸเบฅเปŒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ hibernation

เบงเบดเบ—เบตเบเบฒเบ™

เบ„เบญเบ.file_create( server, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ ) - เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเปƒเบซเบกเปˆ

เบ„เบญเบ.file_rename( เป€เบŠเบตเบšเป€เบงเบต, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, new_name ) - เบ›เปˆเบฝเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒ

เบ„เบญเบ.file_remove( server, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡) - เบฅเบถเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹

เบ„เบญเบ.เป€เบ›เบตเบ”( เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, mod ) - เป€เบ›เบตเบ”เป„เบŸเบฅเปŒ

เบเบฑเบšเบกเบฒ fchannel เปเบฒเบเป€เบฅเบเบŠเปˆเบญเบ‡. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต เบ•เป‰เบฒเบ™ - เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบ›เบตเบ”เป„เบŸเบฅเปŒ: "wm" - เบชเบฐเป€เบžเบฒเบฐ (เบญเปˆเบฒเบ™ / เบ‚เบฝเบ™), "rs" - เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบฅเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบ”เบเบฅเบนเบเบ„เป‰เบฒเบญเบทเปˆเบ™เป†, "ws" - เบญเปˆเบฒเบ™ / เบ‚เบฝเบ™, เปเบฅเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบ”เบ เบฅเบนเบเบ„เป‰เบฒเบญเบทเปˆเบ™เป†.

เบ„เบญเบ.เปƒเบเป‰ (fchannel) - เบ›เบดเบ”โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹

เบ„เบญเบ.เบ‚เบฝเบ™ (fchannel, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ‚เปเป‰เบกเบนเบ™ ) - เบ‚เบฝเบ™เบชเบฐเบ•เบฃเบดเบ‡ byte เปƒเบชเปˆเป„เบŸเบฅเปŒ

เบ„เบญเบ.เบญเปˆเบฒเบ™ (fchannel, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, len_data ) - เบญเปˆเบฒเบ™เบชเบฐเบ•เบฃเบดเบ‡ byte เบˆเบฒเบเป„เบŸเบฅเปŒ

เบ„เบญเบ.put_pages ( fchannel ) โ€“ โ€œเบเบปเบ”เบ”เบฑเบ™โ€ เบˆเบฒเบ buffer เป„เบ›เบซเบฒเป€เบŠเบตเบšเป€เบงเบตเบ—เบธเบเปœเป‰เบฒเบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธเบ™เบฑเป‰เบ™เป„เบ”เป‰เบ–เบทเบเบ”เบฑเบ”เปเบเป‰. เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบˆเบธเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เปƒเบ™ algorithm เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบŠเปˆเบญเบ‡เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

เบ„เบญเบ.push_all () โ€“ โ€œเบเบปเบ”เบ”เบฑเบ™โ€ เบˆเบฒเบ buffer เป„เบ›เบซเบฒเป€เบŠเบตเบšเป€เบงเบตเบ—เบธเบเปœเป‰เบฒเบ‚เบญเบ‡เบ—เบธเบเบŠเปˆเบญเบ‡เบชเบณเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบŠเบฑเป‰เบ™ Cage เบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเบ”เบฑเบ”เปเบเป‰. เปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ—เบธเบเบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

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

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