Hasty Briefsbeta

双语

One Million Chessboards

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