á áá áºáááºááœááºáá»ááº
ááœááºáááºáá±á«áºááŸá ááœááºáá»á°áá¬áá»á¬ážáá±á«áºááŸá ááá¯ááºáá»á¬ážááᯠá¡áá±ážááŸáááºáá±á¬ááºááœáá·áºá¡ááœáẠáá¶á·ááá¯ážááŸá¯á á áá áºááẠTCP áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á á¡áá±á¬ááºážá¡áááºáá»á¬áž (áááºáá±á·áá»áºáá»á¬áž) áááŸááºááŒááºážááŒáá·áº á¡ááŒá±áá¶ááá¯ááºáá¯ááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠ(áááºáá®ážááŒááºážá áá»ááºááŒááºážá áá»ááºááŒááºážá áá±ážááŒááºážá á áááºááŒáá·áº) áá¶á·ááá¯ážáá±ážáá«áááºá
applications áá»á¬áž
á áá áºá áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááẠá¡á±á¬ááºáá«ááá á¹á áá»á¬ážááœáẠáááá±á¬ááºáááºá
- ááá¯ááá¯ááºážááºááŸáá·áº ááŒáŸá¯ááºááœááºážáá¬ážáá±á¬ á ááºáá á¹á ááºážáá»á¬ážá¡ááœáẠáá°áááºážá¡ááºááºáá»á¬áž (á áááºáá¯ááºážáá»á¬ážá áááºá¹áá±á¬áá±á«áºááŸá ááááºážáá»á¯ááºááŸá¯á áá áºáá»á¬áž á áááºááŒáá·áº) ááœáẠáááºááœááºááŸá¯ááœáẠáá¬áá®ááŒááºáá±á¬ááºááŸá¯áá»á¬ážááŒá áºááá¯ááºááẠ(á¡á±á¬á·ááºááá¯ááºážááŒáá·áºááœá¬ážááŒááºážááŸáá·áºá¡áá°) á¡áá±ážááááºážáá¬áá¬áá»á¬ážááŸá ááá¯ááºáá»á¬ážáᶠá¡ááŒááºáááºáá±á¬ááºááœáá·áºááá¯á¡ááºáá±á¬á
- loaded DBMSs ááœááºá á¡áá»áá¯á·áá±á¬áá¬áá¬áá»á¬ážááœáẠquery processing ááá¯áá¯ááºáá±á¬ááºáá«áá ááŸáá·áº data storage ááá¯á¡ááŒá¬ážáá°áá»á¬ážááœááºáá¯ááºáá±á¬ááºáá«áá
- ááááºážá¡áá»ááºá¡ááẠá á¯áá±á¬ááºážááŒááºážááŸáá·áº á á®áá¶áá±á¬ááºááœááºááŒááºážááá¯á·á¡ááœáẠááŒáá·áºáá±áá¬ážáá±á¬ áá±á¬áºááá¯ááááºááœááºáááºáá»á¬ážááœáẠááŒááºááŸá¯ááºážááŒáá·áº áá±áá¬áááŸááºááŸá¯á áááá¯á¡ááºááŒááºážááŸáá·áº áá¯á¶ááŒááºá áááºáá»áááŸá¯á
- modules áá»á¬ážááŒá¬áž ááááºážá¡áá»ááºá¡áááºáááŸááºáá¬ááœáẠááŸá±á¬áá·áºááŸá±ážááŸá¯ááŸá¬ á¡áá±ážááŒá®ážáá±á¬áá±áá¬ááœáẠmicroservice áááá¯áá¬ááŒáá·áº ááŸá¯ááºááœá±ážáá±á¬ á áá áºáá»á¬ážááœáẠááŒá áºáááºá
ááœá²á·á ááºážáá¯á¶ááŸá¬
Cage á áá Ạ(Windows áá±á«áºááŸá Python 3.7 ááœáẠbeta áá¬ážááŸááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá±áááº) á¡ááá á¡á áááºá¡ááá¯ááºážááŸá áºáᯠáá«áááºáááº-
- Cageserver â ááá¯ááºáá¬áá¬áááá¯áááẠ(ááá¯ááºáá»á¬ážá¡áá±ážááŸáááºáá±á¬ááºááœáá·áºááá¯á¡ááºááá·áº ááœááºáááºáá±á«áºááŸá ááœááºáá»á°áá¬áá»á¬ážáá±á«áºááœáẠá¡áá¯ááºáá¯ááºáá±á¬)á
- клаÑÑ ááŸá±á¬áá»á¡ááá» áá±á¬ááºáááºáá±á¬á·ááºáá²ááºá¡ááœáẠáááºážáááºážáá»á¬ážááᯠá á¬ááŒáá·áºááá¯ááºááŸáá·áºá¡áá°á áá¬áá¬áá»á¬ážááŸáá·áº á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááá¯ááºáᬠáá¯ááºáá¶áá«ááºááᯠááá¯ážááŸááºážá á±áááºá
áá±á¬ááºáááºáááºá០á áá áºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
Cage á¡áááºážááááºážáááºážáá»á¬ážááẠáá¯á¶ááŸáẠ"áá¯ááºááá¯ážáá¯ááºá ááº" ááá¯ááºá áá áºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡á á¬ážááá¯ážáááº- áááºáá®ážááŒááºážá á¡ááœáá·áºá á¡ááááºá áá»ááºááŒááºážá ááá¯ááºááœá±á¡ááŒáẠáá±áá¬ááᯠááœááá±á¬áºáááºááŒáá·áº áááºááŒááºáž/áá±ážááŒááºážá (áá±áá¬á áááºáá±áá¬ááŸáá·áº á¡ááœááºá¡á á¬ážááᯠááœáŸááºááŒáááº)á ááá±á¬ááá¬ážá¡áá á€áááºážáááºážáá»á¬ážááẠá¡áááº/á¡ááœááºá âáá»ááºáááºáá»á¬ážáá±á«áºááœááºâ ááá¯ááºáá»á¬ážááœáá·áº/ááááºááŒááºážááᯠáá¯ááºáá±á¬ááºááá·áº C áá¬áá¬á áá¬ážá ááá¯ááºáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº áá®ážá ááºáá«áááºá
áá áºáááºážá¡á¬ážááŒáá·áº áááá¯ááááºáá¬ááẠâááá¯ááºâ á¡áá¬ááá¹áá¯áá»á¬áž (á¡áááºážá¡á á¬áž) áááºážáááºážáá»á¬ážááŒáá·áº á¡áá¯ááºááá¯ááºáá«á _io Python ááœááº) áá«áá±ááá·áº Cage class ááááºážáááºážáá»á¬ážááŒáá·áºá
Cage á¡áá¬ááá¹áá¯áá áºáá¯ááᯠáááºáá®ážáá±á¬á¡áá«á áááºážááẠáá¬áá¬áá áºáᯠ(ááá¯á·ááá¯áẠáá¬áá¬áá»á¬ážá áœá¬) ááŸáá·áº áááŠážáá»áááºáááºááŸá¯ááᯠClient Id á០ááœáá·áºááŒá¯áá¬ážááŒá®ážá ááá¯ááºáá¯ááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážá¡ááœáẠáá®ážááŒá¬áž port áá¶áá«ááºááŒáá·áº á¡áááºááŒá¯áá»ááºááᯠáááºáá¶áááŸááááºááŒá áºáááºá Cage á¡áá¬ááá¹áá¯ááᯠáá»ááºááá¯ááºáá±á¬á¡áá«á áááºážááẠááá¯ááºáá»á¬ážááᯠáááºááœááºááŒááºážááᯠáááºáááºááŸáá·áº ááá¯ááºáá»á¬ážááᯠááááºááẠáá¬áá¬ááᯠááœáŸááºááŒá¬ážáááºá áá¬áá¬áá»á¬ážááá¯ááºááá¯ááºáááºáž áááºááœááºááŸá¯ááᯠáááºá á²ááá¯ááºáááºá
RAM áááºááŸáº (buffer) ááœáẠáááŒá¬ááá¡áá¯á¶ážááŒá¯áá±á·ááŸááá±á¬ client áááá¯ááááºáá»á¬ážá ááá¯ááºá¡ááá¯ááºážá¡á
áá»á¬ážááᯠááŒá¬ážáá¶áá¯ááºáá±á¬ááºááŒááºážááŒáá·áº á
áá
áºááẠá
á¬áááºááŒááºáž/áá±ážááŒááºážá
áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá±ážáá«áááºá
áá±á¬ááºáááºáá±á¬á·ááºáá²ááẠááá°áá®áá±á¬áááºáááºáá»á¬áž (ááŒá¬ážáá¶ááŸááºáá¬ááºá¡ááœááºá¡á
á¬ážá áá¬áá¬ááŸáá·áºáá²ááŸááºááá·áºá¡áá« ááááºááá¯á·á¡ááœááºá¡á
á¬ážá á
áááº) ááŒáá·áº ááá°áá®áá±á¬áááºáááºáá»á¬ážááŸáááá·áº áááºááá·áºá¡áá±á¡ááœááºááá¯áááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
Cage á¡áá¬ááá¹áá¯áá áºáá¯ááẠáá¬áá¬áá»á¬ážá áœá¬ááŸá ááá¯ááºáá»á¬ážá áœá¬ááŸáá·áº áááºááœááºááá¯ááºáááºá á¡áá¬ááá¹áá¯ááá¯áááºáá®ážááá·áºá¡áá« áááºááœááºááŸá¯ ááá·áºáááºáá»ááºáá»á¬áž (IP ááááºá ᬠááá¯á·ááá¯áẠDNS áá¬áá¬á ááœáá·áºááŒá¯áá»ááºá¡ááœáẠáááºáááááºáááºážá áááºážááŒá±á¬ááºážááŸáá·áº ááá¯ááºá¡áááº) ááᯠáááºááŸááºáá±ážáá«áááºá
Cage á¡áá¬ááá¹áá¯áá áºáá¯á á®ááẠááá¯ááºáá»á¬ážá áœá¬ááᯠáá áºááŒáá¯ááºáááºáááºáž áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ááŒá±á¬áá·áºá áá»áŸáá±áá¬ážáá±á¬ memory space ááᯠbuffering á¡ááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá áááºááŸáºá¡ááœááºá¡á á¬áž â á á¬áá»ááºááŸá¬á¡áá±á¡ááœááºááŸáá·áº áááºážááá¯á·áá¡ááœááºá¡á á¬ážááᯠCage á¡áá¬ááá¹áá¯áá áºáá¯áááºáá®ážáá±á¬á¡áá«ááœáẠááá¯ááºážááá áºááŒáá·áº áááºááŸááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá 1 GB cache ááẠ1000 MB áá áºáá¯á á®á á á¬áá»ááºááŸá¬ 1 ááá¯á·ááá¯áẠ10 KB áá áºáá¯á á®á á á¬áá»ááºááŸá¬ 100 ááá¯á·ááá¯áẠ1 KB áá áºáá¯á á®á á á¬áá»ááºááŸá¬ 1 áááºážááŸááááºá á á¬áá»ááºááŸá¬á¡ááœááºá¡á á¬ážááŸáá·áº á¡áá±á¡ááœááºááᯠááœá±ážáá»ááºááŒááºážááẠá¡ááá®áá±ážááŸááºážááá á¹á áá áºáá¯á á®á¡ááœáẠáááá»áá±á¬á¡áá¯ááºáá áºáá¯ááŒá áºáááºá
ááá°áá®áá±á¬ááá¯ááºáá»á¬ážááœáẠá¡áá»ááºá¡áááºáááºáá±á¬ááºáá¯á¶áá±á«áº áá°áááºá ááá°áá®áá±á¬ ááŒá¬ážáá¶ááŸááºáá¬ááºáááºáááºáá»á¬ážááᯠáááºááŸááºááẠáá áºáá»áááºáááºážááœáẠáááºááẠCage á¡áá¬ááá¹áá¯áá»á¬ážá áœá¬ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡ááŒá±áá¶áá áºáá¯á¡áá±ááŒáá·áºá á¡ááá¯ážááŸááºážáá¯á¶áž buffering algorithm ááá¯á¡áá¯á¶ážááŒá¯áááº- áá±ážáá¬ážáá±á¬ memory ááá¬ááá¯ááºááœá¬ážááŒá®ážáá±á¬ááºá áááºáá±á¬ááºááœáá·áºá¡áááºážáá¯á¶ážá¡áá±á¡ááœááºááŒáá·áº á¡áá¬ážáá°ááŒááºážááááá¬áá¡á á á¬áá»ááºááŸá¬á¡áá áºáá»á¬ážááẠá á¬áá»ááºááŸá¬á¡áá áºáá»á¬ážááᯠá¡áá±á¬ááºážáá»á¬ážááᯠááœáŸá±á·ááŒá±á¬ááºážáá±ážáá«áááºá ááá®ááᬠ(á á¬áááºážá¡ááºážááá±á¬á¡á) áá»áŸáá±á¡áá¯á¶ážááŒá¯ááœáá·áºá áááá¡áá»ááºááŸá¬ ááá°áá®áá±á¬ááá¯ááºáá»á¬ážááá¯á· ááŸáá·áº áá¯áááá¡áá»ááºááŸá¬ ááá¯ááºáá áºáá¯á á®áá¡ááá¯ááºážá¡á áá»á¬ážá¡áá ááá®ááá¬ááŒá áºáá±áá±á¬á¡áá«ááœáẠá¡áá°ážáááá±á¬ááºááŸá¯ááŸááá«áááºá
Cage á¡áááºážááẠáá±áá¬ááááºá á¬áá»á¬áž (á¡áááºážáá»ááºážá á¡áá±á¡áá¬ážááŸáá·áº á¡ááŸááºááᯠááœáŸááºááŒááŒááºážá "á¡á á¬ážááá¯áž" ááá¯ááºá áá Ạáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá±á¬ááºáá°áá±ážáá¯á¶áá¬áá á¡á±á¬ááºááŒá±ááŸááºáá¬ááºá¡ááœááºážááŸá á á¬áá»ááºááŸá¬áá¶áá«ááºáá»á¬ážááŒáá·áº "áá¯ááºááá¯ááºážááá¯ááºáá¬" á¡ááá·áºááœááºáááºáž áá¶á·ááá¯ážáá±ážáá«áááºá
áá°áááºážáá¯ááºáá±á¬ááºáá»ááºááᯠCage á¡áá¬ááá¹áá¯áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážáá¬ážáááºá "áá±á¬ááºážááá¯ááŒááºáž" ("sleep") - áááºážááá¯á·ááẠ"ááŒáá¯áá»ááá¯ááºáááº" (á¥ááá¬á áá¬áá¬áá»á¬ážááŸáá·áº áá»áááºáááºááŸá¯ ááŒááºáá±á¬ááºááœá¬ážááá·áºá¡áá« ááá¯á·ááá¯áẠá¡ááá®áá±ážááŸááºážááᯠáááºááá·áºááá¯ááºááá·áºá¡áá«á á áááºááŒáá·áº) áá±á¬ááºáááºáááºááŒááºážááŸá local dump file ááá¯á· áá»ááºááŒááºá áœá¬ ááŒááºáááºááá°ááá¯ááºáááºá á€ááá¯áẠ(á¡ááá®áá±ážááŸááºážááᯠááŒááºáááºá áááºááá·áºá¡áá« áááºááœááºááŸá¯ááŒááºáááºá áááºááŒá®ážáá±á¬ááº)á áááºážááẠáááŒá¬áá âá¡á±á¬á·ááºááá¯ááºážâ ááá¯á·ááœá¬ážááŒá®ážáá±á¬áẠáááá¯ááºážááá·áºáááá¯ááááºááᯠá ááœáá·áºáá±á¬á¡áá« á¡ááœá¬ážá¡áá¬ááᯠáááááá¬áᬠáá»áŸá±á¬á·áá»ááá¯ááºá á±áááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº áááŒá¬ááá¡áá¯á¶ážááŒá¯áá±áá±á¬ ááá¯ááºá¡ááá¯ááºážá¡á áá»á¬ážááẠáááºááŸáºááœáẠááŸáááŒá®ážáá¬ážááŒá áºáááºá
Cage ááẠáá¯ááºááá¯ááºáž áááá ááá·áºááŸááááºá
áá¬áá¬áááºáá±á¬ááºááŸá¯á¡ááŒá±áá¶áá°áá»á¬áž
Cageserver ááá¯ááºáá¬áá¬áá»á¬ážááᯠá¡áá»á¬ážáá°ááŸá¬ áá±á«ááºáá±á«ááºáá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáááºá áááºážááá¯á·áá²á០("áááºá") ááᯠclient á¡á¬ážáá¯á¶ážá ááœáá·áºááŒá¯áá»ááºá¡ááœááºáᬠá¡áá¯á¶ážááŒá¯áááºá áá»ááºááᯠáá±áá¬áááŸááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá Cage áá¬áᬠáááá¯ááááºááẠPython áᬠááá¯á¡ááºáááºá ááááºáááºážááœááºá ááá¯ááºáá¬áá¬ááŸáá·áº ááœááºáá»á°áá¬ááẠá¡ááŒá¬ážá¡áá¯ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá
áá¬áá¬ááẠáááºááá¯ááºáááºážá ááºááŸá áºáá¯á á¡á á¯á¡áá±ážáá áºáá¯á¡áá±ááŒáá·áº á¡á ááá¯ááºážááœáẠá áááºáááº-
- "áá»áááºáááºááŸá¯áá»á¬áž" - áá±á¬ááºáááºáá»á¬ážááŸáá·áºáááºááœááºááŸá¯áá°áá±á¬ááºááŒááºážááŸáá·áºáá¬áá¬áá¡á ááŒá¯ááŸá¯ááœááºáááºážááá¯áááºá á²ááŒááºážááá¯ááºáá¬áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážáá¯ááºáá±á¬ááºááŒááºážáá¯ááºáááºážá ááºáá áºáá¯á
- "á á áºáááºáá±áž" - ááá¯ááºáá»á¬ážááŸáá·áºá¡áá¯ááºáá¯ááºááẠclients áá»á¬ážáá¡áá¯ááºáá»á¬áž (operations) ááá¯áá¯ááºáá±á¬ááºáááºáá¯ááºáááºážá ááºáá áºáá¯á¡ááŒáẠclient commands áá»á¬ážááá¯á¡ááŒá±áá¶ááá·áºáááºááœááºáá±áž sessions áá»á¬ážááá¯ááááºáááºá¡ááœááºáá¯ááºáááºážá ááºáá áºáá¯á
áá¯ááºáááºážá
ááºááŸá
áºáá¯áá¯á¶ážááᯠáááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºááŒááºážáááŒá¯áá² áá¯ááºáááºážá
ááºáá±á«ááºážáá»á¬ážá
áœá¬á ááá±á¬ááºá
á®á¡áá¬ááá¹áá¯áá»á¬ážá áá±á¬á·ááá±á¬ááºáá»á¬ážááŸáá·áº ááŒá±á
áœááºáá»á¬ážáá±á«áºááœáẠá¡ááŒá±áá¶á áááºáá¶ááŒááºážááŸáá·áº áá±ážááá¯á·ááŒááºážá á¡áá¯á¶ážáá²á·ááŸáá·áºááœááºáá»á¬ážá¡ááŒá
Ạá
á¯á
ááºážáá¬ážáááºá
áá»áááºáááºááŸá¯áá¯ááºáááºážá
ááºááẠáá¯á¶ážá
áœá²áá°áá
áºáŠážá
á®á¡ááœáẠáá±áá¬áááºáá¶áááºááŸáá·áº ááá¯á·ááœáŸááºáááºá¡ááœáẠááááºáááºážáá
áºáá¯ááᯠááœá²áá±áá±ážáááºá áá¬áá¬á
áááºáá±á¬á¡áá«ááœáẠááááºáááºážá¡áá±á¡ááœááºááᯠáááºááŸááºáááºá ááááºáááºážáá»á¬ážááŸáá·áº áá±á¬ááºáááºáá»á¬ážá¡ááŒá¬áž ááŒá±áá¯á¶ááœá²ááŒááºážááᯠá¡ááŒááºá¡ááŸááºáá¯ááºáá±á¬ááºááŸá¯-áá»áŸáá±áá¬ážáá±á¬ ááá±á¬ááºá
á®ááŸááºáá¬ááºááœáẠááááºážáááºážáá¬ážáááºá
Operations process ááẠááá¯ááºá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá»áŸáá±ááŒááºážááᯠáá¶á·ááá¯ážáá±ážáá±á¬ááŒá±á¬áá·áº ááá°áá®áá±á¬ client á¡áá»á¬ážá¡ááŒá¬ážááᯠáá»áŸáá±ááá¯ááºááẠ(áá»ááºážááŒáá¯ááºáá áºááá¯ááºážáááºáá±á¬ááºááœáá·áºááᯠáá±á¬á·ááºáá»ááŒááºážááŒáá·áº ááááºážáá»á¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áº) áááºážááᯠ"ááá" áááá¯ááºážááá·áºá áááŠážááœáá·áºáá±á¬á¡áá« ááœáá·áºááŒá¯áá«á ááá¯ááºáá áºáá¯ááŸáá±áá¬ááᯠáááºáá«á
áá¬áá¬áá±á«áºááŸá ááá¯ááºáá»á¬ážááᯠáááºáá®áž/áá»ááº/ááœáá·áº/ááááºááẠá¡áááá·áºáá±ážáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážááŸá¬ áá¬áᬠOS á ááá¯ááºááœá²á áá áºá¡á¬áž áááºážááŒááºá áœá¬ á á®á á¥áºáá¬ážááá·áº "áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬áž" áá¯ááºáááºážá ááºááœáẠáá¯ááºáá±á¬ááºáá«áááºá
áá±áá°áá»á¡á¬ážááŒáá·áº á á¬áááºááŒááºáž/áá±ážááŒááºážááᯠá¡ááŸáááºááŒáŸáá·áºáááºá á€áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠ"áá¯ááºáááºážáá±á¬ááºááœááºááŸá¯" áá¯ááºáááºážá ááºá០áá±á«ááºááœá¬ážáá¬áá±á¬ á á¬ááœá²áá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá«áááºá á á¬ááœá²á¡áá±á¡ááœááºááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº ááœáá·áºáá¬ážáá±á¬ááá¯ááºá¡áá±á¡ááœááºááŸáá·áº áá®áá»áŸáááºá áá±á¬ááºáááºáá»á¬ážáá¶á០áááºáááº/áá±ážááŒááºážáá»á¬ážááᯠáá±áá°áá»áááºážá á®ááá¯á· áááºááœááºážááŒá®áž áááá¡ááœááºá á¬ááœá²ááẠá¡áá¯ááºá¡á¬áž áááºážááá±á«ááºážá០áá°áááºá á¡áá°ážáá¯áá¹áááá±áááẠááá·áºá¡á¬áž áá¬áá¬á RAM ááœáẠáá±áá¬ááŒááºáááºáá±ážáá¬ážááŒááºážáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºááŸá¬ážáá áºááá¯ááºá á±áá«áááºá
Operations process ááẠclient á áá¯ááºáá±á¬ááºáá»ááºááᯠá á±á¬áá·áºááŒáá·áºááŒá®áž áááºážááá¯á·á ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážáá±á«áºááœáẠáá±á¬áºáááºážáá±á¬ááºáž ááá¯á·ááá¯áẠááŸá¯ááºááŸá¬ážááŸá¯áááŸááá±á¬ á¡áá»áááºááᯠáá»á±á¬áºááœááºááœá¬ážáá±á¬á¡áá«ááœáẠáááºážááá¯á·ááᯠáááºáá±á¬ááºááŸá¯áá±ážááŒááºáž áááºááœá¬ážáá«áááºá
áá¯á¶ááŒááºá áááºáá»áááŸá¯ ááŸáá á±áááºá Cageserver ááẠááœá±áá±ážááœá±áá°á¡á¬ážáá¯á¶ážá ááŸááºáááºážáá»á¬ážááᯠááááºážáááºážáá¬ážáááºá áá±áá°áá»ááŸááºáááºážáá áºáá¯ááœáẠááá¯ááºáá»á¬ážáááºáá®ážáááº/ááœáá·áº/á¡áááºááŒá±á¬ááºáž/áá»ááºááẠáá¯ááºáá±á¬ááºá áá¬áá»á¬ážáá«ááŸááá±á¬ áá¯á¶ážá áœá²áá°áá»á¬ážáá¶á០áááºáá±á·áá»áºáááá¹áá°áá»á¬áž áá«ááŸááááºá á¡áá¯ááºááá¯ááºáá áºáá¯á á®á¡ááœáẠáá®ážááŒá¬ážááŸááºáááºážáá áºáá¯ááᯠáááºáá®ážáá¬ážááŒá®ážá á€á¡áá¯ááºááá¯ááºááœáẠáá±áá¬áááºááŸá¯ááŒááºážááŸáá·áº áá±ážáá¬ážááŒááºážá¡ááœáẠáá¯ááºáá±á¬ááºá áá¬áá»á¬ážáá«ááá·áº á á¬ááá¯áá»á¬áž áááá¹áá°áá»á¬ážááᯠááŸááºáááºážáááºáá¬ážááá·áºá¡ááŒáẠáá±ážáá¬ážáá±á¬ (á¡áá áº) áá±áá¬ááŸáá·áº áááºáá±ážáá±á áẠ(áá±ážáá¬ážááŒááºážááœáẠáá»ááºá á®ážááœá¬ážáá±á¬ áá±áá¬á¡ááœá²áá»á¬áž)á áá±áá¬á¡áá±á¬ááºážáá»á¬ážá "á¡áá±á«áºááá¯á·" á¡áá áº)) á
á€ááŸááºáááºážáá»á¬ážááẠá¡áááºááááºážáááºážááŸá¯áá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²á¡áá áºáá»á¬ážááᯠááŒááºáááºááá°áááºááŸáá·áº áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááᯠá¡ááááºáá áºáá¯ááá¯á· ááŒááºáááºáá±á¬ááºááŸáá á±ááá·áº á áœááºážáááºááᯠáá±ážá áœááºážááá¯ááºáááºá
Cageserver ááẠáá¯ááºááá¯ááºáž áááá ááá·áºááŸááááºá
Cageserver ááá¯ááºáá¬áᬠáááá¯ááááºááᯠá áááºáá±áá«áááºá
á
áááºáá±á¬á¡áá«á ááá¯ááºáá¬áá±á¬á·ááºááœááºá áááºáááºááŸááºáááºááá¯á¡ááºáááº-
- ááœáá·áºááŒá¯áá»ááºá¡ááœáẠáááºáááááºáááºážá
- ááœáá·áºááŒá¯áá¬ážáá±á¬áá±á¬ááºáááºáá»á¬ážááŸáá·áº ááœá±ááœáŸá²ááŒááºážá¡ááœáẠááááºáááºážá¡áá±á¡ááœáẠ(1 á០ááá¯á·ááá¯áẠááá¯á·áááºááá¯áá±á¬á áá¶áá«ááºáá»á¬ážá
á¯áá¯á¶ááẠáááºáááááºáááºážáá¶áá«ááºááá±ážáá¬ážáá
áºáá¯á០á
áááºáááº)á
Cage Class ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá
á¡áááºážá¡á á¬áž ááŸá±á¬ááºá¡áááºáááŸá±á¬áá»á¡ááá»( cage_name="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file="" )
á¡áá¬ááá¹áá¯áá»á¬ážááᯠááá¯ááºáá¬áá¬áá»á¬ážááŸáá·áº á¡ááŒááºá¡ááŸááºáááºááœááºááŒá®áž ááŒá¬ážáá¶ááŸááºáá¬ááºáá«ááŸááá±á¬ á€á¡áááºážá០áááºáá®ážáá¬ážáááºá
parameters ááœá±ááá¯
- cage_name(str) - áá¬áá¬áááºááŸá áá±á¬ááºáááºáá»á¬ážááᯠááœá²ááŒá¬ážáááºááŸááºááẠá¡áá¯á¶ážááŒá¯ááá·áº á¡áá¬ááá¹áá¯á á¡ááŒá±á¡áá±ááá¯ááºáá¬á¡áááº
- á á¬áá»ááºááŸá¬á¡ááœááºá¡á á¬áž(int) â ááŒá¬ážáá¶ááŸááºáá¬ááºáá áºáá¯á á á¬áá»ááºááŸá¬á¡ááœááºá¡á á¬áž (ááá¯ááºáá»á¬áž)
- áá¶áá«ááºáá»á¬áž(int) â ááŒá¬ážáá¶ááŸááºáá¬ááºá á¬áá»ááºááŸá¬ á¡áá±á¡ááœááº
- maxstrlen(int) - áá±ážáá¬ážááŒááºážááŸáá·áº áááºááŒááºáž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠááá¯ááºá á¬ááŒá±á¬ááºážáá áºáá¯á á¡áá»á¬ážáá¯á¶ážá¡ááŸááº
- server_ip(á¡áááá·áº) - á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ áá¬áá¬áá»á¬ážá ááááºá á¬áá»á¬ážáá«ááŸááá±á¬ á¡áááá¬ááºáá áºáá¯ááŒá áºááŒá®áž áá±á¬á·ááẠáá¬áá¬á á¡ááŒá±á¡áá±á¡á á¡áááºááŒá áºááẠ(á¡ááá®áá±ážááŸááºážá¡ááœááºážááŸá áá¬áᬠID) ááŸáá·áº áááºááá¯ážááẠááááºá á¬áá«ááŸááá±á¬ á á¬ááŒá±á¬ááºážááŒá áºáááº- "ip address:port" ááá¯á·ááá¯áẠ"DNS: ááááºáááºáž" (á¡áááºáá»á¬ážááŸáá·áº ááááºá á¬á¡ááŸááºáá»á¬ážááᯠááŸáá¯ááºážááŸááºááŒááºážááẠáá¬áá®ááŒá áºááŒá®áž áááºážááᯠááŒá±á¬ááºážáá²ááá¯ááºáááº)
- á á±á¬áá·áº(int) â ááááºáááºážáá»á¬ážáááºáá¶áááŸááá±á¬á¡áá« (á áá¹ááá·áºááá¯ááºážá¡ááœááºáž) áá¬áá¬á០áá¯á¶á·ááŒááºááŸá¯á¡ááœáẠá á±á¬áá·áºááá¯ááºážáá»áááº
- ááá¯ážááŒá¬áž(áá±áá¶áá»á±á¬ááºáž) â á¡áá¬ááá¹áá¯ááᯠáááºáá®ážáá¯á¶á á¡áᶠ(ááŸá¬ážáá±á¬ - á¡áá¬ááá¹áá¯á¡áá áºáá áºáá¯ááᯠáááºáá®ážáá«áá á á áºááŸááºáá±á¬ - á¡áááºá ááááºá "ááŒáá¯áá»áá±á¬" áá áºáá¯á០á¡áá¬ááá¹áá¯áá áºáá¯ááᯠáááºáá®ážáá«á - "hibernation" áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯á áá¯á¶áá±á¡á¬ážááŒáá·áº ááŸá¬ážáááº)
- áááºááŸáº_ááá¯ááº(str) - hibernation á¡ááœáẠááá¯ááºá¡áááº
áááºážáááºážáá»á¬áž
ááŸá±á¬ááºá¡áááºáááá¯ááº_áááºáá®ážáá«á( áá¬áá¬á áááºážááŒá±á¬ááºáž ) - ááá¯ááºá¡áá áºáá áºáá¯áááºáá®ážáá«á
ááŸá±á¬ááºá¡áááºáfile_rename( áá¬áá¬á áááºážááŒá±á¬ááºážá new_name ) - ááá¯ááºááᯠá¡áááºááŒá±á¬ááºážáá«á
ááŸá±á¬ááºá¡áááºáááá¯ááº_áááºááŸá¬ážáááº( áá¬áá¬á áááºážááŒá±á¬ááºáž) - ááá¯ááºáá áºáá¯ááá¯áá»ááºáá«á
ááŸá±á¬ááºá¡áááºáááœáá·áºááŸá áº( áá¬áá¬á áááºážááŒá±á¬ááºážá mod ) - ááá¯ááºááá¯ááœááºá·
ááŒááºáá¬ááẠfchannel áá«á áá»ááºáááºáá¶áá«ááºá ááá·áºáááºáá»áẠmod - á€áááºááŸá¬ ááá¯ááºááœáá·áºááá·áºáá¯ááºááŒá áºáááº- "wm" - áá®ážááá·áº (read/write), "rs" - read-only, and shared only for other clients, "ws" - read/write, and only for read only. á¡ááŒá¬áž clients áá»á¬ážá
ááŸá±á¬ááºá¡áááºááááẠ(fchannel áá«á) - ááá¯ááºááá¯ááááºáá«á
ááŸá±á¬ááºá¡áááºááá±ážáá¬áž (fchannelá á¡á á áá±áᬠ) â ááá¯ááºáá áºáá¯ááá¯á· byte á á¬ááŒá±á¬ááºážáá áºáá¯áá±ážáá«á
ááŸá±á¬ááºá¡áááºáááẠ(fchannelá á¡á á len_data ) â ááá¯ááºáá áºáá¯á០byte á á¬ááŒá±á¬ááºážááᯠáááºáá«á
ááŸá±á¬ááºá¡áááºáput_pages ( fchannel áá«á ) â ááŒá¯ááŒááºáá¬ážáá±á¬ áááºááŸááºáá¬ážáá±á¬ áá»ááºáááºá á á¬áá»ááºááŸá¬á¡á¬ážáá¯á¶ážááᯠáá¬áá¬ááá¯á· ááŒá¬ážáá¶á០âááœááºážááá¯á·áááºâá áá»ááºáááºáá±á«áºááŸá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá¬áá¬áá±á«áºááŸá ááá¯ááºáá áºáá¯ááœáẠáá¯ááºááá¯ááºážááá¯ááºáᬠááááºážáááºážáá¬ážááŒá±á¬ááºáž áá±áá»á¬á á±ááẠááá¯á¡ááºáá±á¬á¡áá«ááœáẠáááºážááᯠá¡ááºáááá¯áá®áááºááŸá á¡ááá¯áá«á¡áá»ááºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá
ááŸá±á¬ááºá¡áááºápush_all () â ááŒá¯ááŒááºáá¬ážáá±á¬ Cage á¡áá»áá¯ážá¡á á¬ážá á¥ááá¬áá áºáá¯á¡ááœáẠááŒá¬ážáá¶á០áá»ááºáááºá¡á¬ážáá¯á¶ážá á á¬áá»ááºááŸá¬á¡á¬ážáá¯á¶ážá á á¬áá»ááºááŸá¬á¡á¬ážáá¯á¶ážááᯠáá¬áá¬ááá¯á· âááœááºážááá¯á·áááºâá áá»ááºáááºá¡á¬ážáá¯á¶ážááŸá áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá¬áá¬áá±á«áºááœáẠááááºážáááºážáá¬ážááŒá±á¬ááºáž áá±áá»á¬á á±áááºá¡ááœáẠáááºá¡áá¯á¶ážááŒá¯áááºá
source: www.habr.com