VinyStorage网络游戏数据存储的终极解决方案                     周迁 @ 葡萄藤 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
VinyStorage 的极 高性能高     •比 Memcached 快上千倍性     •比 MySQL 快十万倍能      •实时数据热备份      •每服务器支持十万 IOPS        Copyright © 2013 深圳...
对 网游来说 ,好的存储层应该 怎样 ?    • 实时数据访问    • 安全性( safety )    • 健壮性    • 分布式    • API 易用性     Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
对 网游来说 ,好的存储层应该 怎样 ?网页          • 实时数据访问?           差架构          • 安全性?              好MYSQL/CDB            • 健壮性?         ...
对 网游来说 ,好的存储层应该 怎样 ?网页           • 实时数据访问? 以内存为代价架构           • 安全性?             一般 ( 双机热备 )REDIS/CMEM             • 健壮性? ...
对 网游来说 ,好的存储层应该 怎样 ?网游     • 实时数据访问?          好架构     • 安全性?             差梦幻西游       • 健壮性?             一般       • 分布式?   ...
对 网游来说 ,好的存储层应该 怎样 ?viny-    • 实时数据访问?storge         • 安全性?         • 健壮性?         • 分布式?         • API 易用性?         Copyr...
viny-storage       • key-value       • 持久化       • 为游戏定制          Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
viny-storage     底层技术     Scala     Java NIO.2     Commons-continuations     https://github.com/Atry/commons-continuati...
viny-storage     实时数据访问     区分冷热数据     数据以内存为中心辅以持久化的日志       不是持久化的数据库辅以内存缓存     与业务逻辑同进程       90% 以上数据库操作是同进程的内存操作  ...
viny-storage       健壮性       KEY,VALUE 均静态检查         KEY         trait Accessor[Value] extends Serializable {           ...
viny-storage     API 易用性      Accessor      final case class Player(id: UserId) extends BuilderAccessor[         Storage....
viny-storage     API 易用性     Command      final case object GetPlayerCommand        extends Command[Storage.Player.Builde...
viny-storage      API 易用性      API        open,release,add,delete,touch,read,update        flushAll         组合操作 (otrr,at...
viny-storage      安全性      实时写日志 ( 不包含读操作 )         日志内容为 command, 可根据 command 恢复数         据         单独线程,顺序写      提供日...
viny-storage       分布式       LocalStorage       VspServer       VspClient          Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
对 网游来说 ,好的存储层应该 怎样 ?viny-     • 实时数据访问?storage          • 安全性?          • 健壮性?          • 分布式?          • API 易用性?        ...
Thanks!Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
Upcoming SlideShare
Loading in …5
×

Viny storage—网络游戏数据存储的终极解决方案

2,600 views

Published on

by 周迁
sztechparty 20130317

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,600
On SlideShare
0
From Embeds
0
Number of Embeds
380
Actions
Shares
0
Downloads
11
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Viny storage—网络游戏数据存储的终极解决方案

  1. 1. VinyStorage网络游戏数据存储的终极解决方案 周迁 @ 葡萄藤 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  2. 2. VinyStorage 的极 高性能高 •比 Memcached 快上千倍性 •比 MySQL 快十万倍能 •实时数据热备份 •每服务器支持十万 IOPS Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  3. 3. 对 网游来说 ,好的存储层应该 怎样 ? • 实时数据访问 • 安全性( safety ) • 健壮性 • 分布式 • API 易用性 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  4. 4. 对 网游来说 ,好的存储层应该 怎样 ?网页 • 实时数据访问? 差架构 • 安全性? 好MYSQL/CDB • 健壮性? 差 • 分布式? 复杂 ( 分库分表) • API 易用性? 差 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  5. 5. 对 网游来说 ,好的存储层应该 怎样 ?网页 • 实时数据访问? 以内存为代价架构 • 安全性? 一般 ( 双机热备 )REDIS/CMEM • 健壮性? 好 • 分布式? 复杂 ( 需迁移数据 ) • API 易用性? 一般 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  6. 6. 对 网游来说 ,好的存储层应该 怎样 ?网游 • 实时数据访问? 好架构 • 安全性? 差梦幻西游 • 健壮性? 一般 • 分布式? 不支持 • API 易用性? 一般 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  7. 7. 对 网游来说 ,好的存储层应该 怎样 ?viny- • 实时数据访问?storge • 安全性? • 健壮性? • 分布式? • API 易用性? Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  8. 8. viny-storage • key-value • 持久化 • 为游戏定制 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  9. 9. viny-storage 底层技术 Scala Java NIO.2 Commons-continuations https://github.com/Atry/commons-continuations Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  10. 10. viny-storage 实时数据访问 区分冷热数据 数据以内存为中心辅以持久化的日志 不是持久化的数据库辅以内存缓存 与业务逻辑同进程 90% 以上数据库操作是同进程的内存操作 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  11. 11. viny-storage 健壮性 KEY,VALUE 均静态检查 KEY trait Accessor[Value] extends Serializable { def read(inputStream: InputStream): Value def newInstance: Value def write(outputStream: OutputStream, value: Value); def key: Array[Byte] } VALUE message Player { required string nickname = 1; required bool is_male = 2 [default = false]; } Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  12. 12. viny-storage API 易用性  Accessor final case class Player(id: UserId) extends BuilderAccessor[ Storage.Player, Storage.Player.Builder] { override final def key: Array[Byte] = { (id.toHexString + ".Player").getBytes } } Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  13. 13. viny-storage API 易用性 Command final case object GetPlayerCommand extends Command[Storage.Player.Builder, Storage.Player] { def apply(origin: Storage.Player.Builder): Storage.Player = { origin.clone.build } } final case class UpdateSleepTimeCommand(sleepTime: Long) extends Command[Storage.Player.Builder, Unit] { override def apply(origin: Storage.Player.Builder): Unit = { origin.setSleepTime(sleepTime) } } Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  14. 14. viny-storage API 易用性 API open,release,add,delete,touch,read,update flushAll 组合操作 (otrr,atur,otur) Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  15. 15. viny-storage 安全性 实时写日志 ( 不包含读操作 )  日志内容为 command, 可根据 command 恢复数 据  单独线程,顺序写 提供日志查看和数据恢复工具 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  16. 16. viny-storage 分布式 LocalStorage VspServer VspClient Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  17. 17. 对 网游来说 ,好的存储层应该 怎样 ?viny- • 实时数据访问?storage • 安全性? • 健壮性? • 分布式? • API 易用性? Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
  18. 18. Thanks!Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有

×