Hasty Briefsbeta

双语

Canva uses S3 for logged-in session management

10 hours ago
  • Canva使用加密的浏览器cookie存储用户会话详细信息,从而实现快速身份验证,无需每次请求都查询数据库。
  • 会话撤销(例如,在注销或权限更改后)存储在内存缓存中,以实现近乎实时的更新和可靠性。
  • 在规模扩展时,部署期间填充内存缓存导致MySQL出现‘惊群’效应,因此需要一种更具可扩展性的解决方案。
  • 该解决方案用S3对象存储替代了直接数据库负载,将撤销信息分区为30分钟的数据块,并以紧凑的排序二进制数组形式存储。
  • 每个网关在启动时仅下载相关的近期S3数据块,并使用二分查找进行快速撤销检查,从而将内存占用减少87.5%。
  • 一个异步工作进程通过扫描数据库并使用条件PUT请求来更新S3数据块,以避免丢失更新并确保一致性。
  • 该系统提高了部署速度,减少了对MySQL只读副本的需求,并且随着写入吞吐量和站点流量的增加而可预测地扩展。