One Million Chessboards
a year ago
- #chess
- #scalability
- #web development
- 网站'百万棋盘'展示了一百万个实时同步更新的棋盘,所有玩家的走棋动作即时全局可见,无需等待回合制
- 该项目灵感来源于'百万复选框',专为高扩展性设计,仅需单台服务器即可运行
- 棋盘数据以6400万个uint64类型二维数组的形式存储在内存中,后端采用Go语言编写
- 系统采用单写入线程+多读取线程架构,通过互斥锁协调对棋盘的访问控制
- 前端采用乐观更新机制即时应用走棋动作,构建依赖关系图,若在服务器确认前出现冲突则自动回滚操作
- 这套乐观更新与回滚机制包含1600行代码,耗费了约7个全天工作量完成开发