Comments
Description
Transcript
分散コンピューティングシステム コンピューティングシステム コンピューテ
情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-OS-115 No.16 2010/8/4 1. pfm PaaS pfm Pfm : new architecture for online game development environment on distribute computing system Ruby Takehiro Iyatomi on Rails In recent online game industry, it is very important to decrease the cost for development, service maintenance and infrastructure because this region become more and more competitive. To solve these problems, we need to decrease the difficulty of programing on distribute computing system and enable to share infrastructure with other online games. In this paper, I explain new online game development environment called 'pfm' which is designed as programmable distribute key value store and run as PaaS, and show it can solve above problems. 1 ⓒ 2010 Information Processing Society of Japan 情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-OS-115 No.16 2010/8/4 (2) PaaS 2 3 pfm 4 pfm PaaS 5 PaaS 6 PaaS yue pfm 7 6 8 pfm pfm pfm yue pfm 9 KVS pfm KVS 2. KVS pfm KVS [b ] pfm batched RPC[a] pfm RPC pfm (1) 100 200ms [c ] (2) pfm 3-10qps/client (3) (1) b) c) 100ms 100ms a 200ms )RPC 2 ⓒ 2010 Information Processing Society of Japan 情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-OS-115 No.16 2010/8/4 byte (4) 50ms ms 100ms 3. Pfm 1ms (5) 3.1 (1) (2) (2) PaaS http PaaS http ms (1) keepalive http (2) lazy keepalive (3) KVS [d ] http pfm consistent hash http lazy PaaS (4),(5) MySQL persistent http RDBMS IO DB sharding pfm persistent pfm d) KVS memcached 3 ⓒ 2010 Information Processing Society of Japan 情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-OS-115 No.16 2010/8/4 KVS 3.3 pfm RPC RPC OS 3.3 RPC persistent RPC pfm RPC KVS pfm RPC 2 RPC RPC (2) PaaS (1) (1) KVS (2) 3.2 RPC (3) (4) (5) RPC 4 ⓒ 2010 Information Processing Society of Japan 情報処理学会研究報告 IPSJ SIG Technical Report (6) pfm Vol.2010-OS-115 No.16 2010/8/4 consistent hash KVS consistent hash RPC Player Team Team Node2 consistent hash RPC Node1 Player:create_team() Team:new(self) Team RPC belong_to self.belong_to self.belong_to.vote_kick(...) vote_kick belong_to consistent hash 1 pfm 4. pfm RPC Team Team belong_to vote_kick RPC PaaS 4.1 pfm UDP = RPC KVS 2 pfm RPC 3.2 5 ⓒ 2010 Information Processing Society of Japan 情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-OS-115 No.16 2010/8/4 1 4.2 RPC pfm batched RPC pfm UDP (2) DBM Barkley Db persistent PaaS tokyocabinet DBM (3) Connector Nio 6 pfm RPC RPC (4) Serializer BISON MessagePack RPC RPC lua[1] lua (5) UUID 4.3 KVS 4.3 3.1 pfm mac address KVS pfm KVS (6) Fiber 3.1 mac address KVS pfm pfm RPC Fiber 3.3 RPC pfm pfm RPC RPC RPC pfm (7) LL Nio, Connector, Serializer, DBM, UUID, Fiber, Lua, ruby, (8) Object LL 5. pfm pfm LL, Object, World, (1) Nio libev nbr 3 squirrel LL DBM Linux Nio Windows (9) World pfm OS pfm IO RPC consistent hash 6 ⓒ 2010 Information Processing Society of Japan 情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-OS-115 No.16 2010/8/4 6. pfm 7. pfm tokyocabinet[3], yue LL Serializer Msgpack[2], DBM libnbr.a yue linux yuem, yues, yuec lua, libyuec.a 7.1 Nio yuem pfm yues KVS 6.1 libnbr.a 7.2 yue libnbr.a 4.1 yuem yues yuem UDP yuem yues yuem epoll persistent batched RPC 7.3 (1) (2) RPC RPC yuem (3) 1000 TCP 32byte (4) (3) yuem yues yues 100000 6.2 yue KVS RPC yuem pfm yues https yues pfm (4) yuem yues (1) RPC libyuec.a C++ yue yuec libyuec.a 8. yue PaaS 8.1 Amazon EC2(TM) 7 10 5 ⓒ 2010 Information Processing Society of Japan 情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-OS-115 No.16 2010/8/4 5 5 yuem 1ms yues, 20ms pfm yues 5 yuec 8.2 Amazon EC2(TM) pfm 2 A B A UI 1000 1000 TCP lua 128byte yue 100 B 1 A B 1) 2) DBM 3) 8.3 B A 1 B msgpack ,http://msgpck.org tokyocabinet, http://1978th.net/tokyocabinet/ lua, http://www.lua.org 6.23qps 22.79ms 3000 5000 yue 9. KVS RPC yue pfm PaaS RPC 8 ⓒ 2010 Information Processing Society of Japan