自然月分片
流水账之类的表,常常会有“保存至少24个月的交易数据”、“业务的查询以月为单位”之类的需求或情况。在这种情况下,按自然月分片的话,按月对过期数据做数据清理时,不会对业务产生冲击。
该规则按(年,月)二元组进行分片,也就是说“2000-01”和“2001-01”是不同的分片;此外,它可以被设置成两种不同的工作模式:
- 带状模式
在这种模式下,以用户指定的开始时间所在自然月作为第一分片,此后每一个自然月作为一个分片,并且分片的增长不受限制。如果增删改查比开始时间早的记录,该规则在代码层面会返回负数的分片号,应该会因此导致路由失败。该规则不会自动为新增分片指定存储节点,以及,清理历史分片,这些工作需要用户自行实现。
- 环状模式
在这种模式下,分片数量是有限的,这个数量由用户指定。所有分片首尾相接行程成了一个逻辑上的环。但与软件开发技术中的环状缓存(ring buffer)概念不同,在越过最后一个分片而回到第一个分片时,该规则并不会主动地去覆盖或者清空第一个分片中的内容,同理,在从第一个分片退回到最后一个分片时也不会发生覆盖——这个清理机制(月切)需要用户自行实现。
网友评论