我正在研究 mongo db 中可扩展会话表(自定义身份验证)的架构设计。我知道 Mongo DB 的可扩展性是从设计继承而来的,也有要求。我的用户案例很简单,
- 当用户登录时,会生成一个随机令牌并授予用户,然后使用令牌作为主键将记录插入会话表,这是可分片的。如果存在旧令牌记录将被删除。
- 使用令牌的用户访问服务
我的问题是,如果系统继续删除过期的会话密钥,会话集合的大小(考虑到我需要在令牌字段上分区的分片情况)可能会增长到非常大并且包括很多过期会话的“间隙”,如何优雅地处理这个问题(或任何更好的设计)?
提前致谢。
编辑:我的问题是关于存储级别。如果经常删除和插入记录,mongodb如何管理磁盘空间?它应该是一种(自动)收缩机制。希望不会阻止对集合的读取。