...

分散コンピューティングシステム コンピューティングシステム コンピューテ

by user

on
Category: Documents
6

views

Report

Comments

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
Fly UP