Linux Bcache:是把ssd作为hdd缓存的一款linux工具
ref:https://bcache.evilpiepirate.org/BcacheGuide/
写命中 Write-Through 配合写不命中的No-Write Allocation
A Write-Through cache with No-Write Allocation:
写命中Write-Back 配合写不命中的Write Allocation
A Write-Back cache with Write Allocation:
ref:https://markrepo.github.io/maintenance/2018/09/10/bcache/
Token-bucket机制(令牌桶机制)是一种用于流量控制的算法。它通过控制发送或接收数据的速率,以确保在一个确定的时间窗口内,数据传输的平均速率或峰值速率不超过设定的限制。
Token-bucket机制的工作原理如下:
令牌桶(Token Bucket)是一个抽象的桶容器,可以存储一定数量的令牌。
每个令牌代表一个单位的可使用的数据量或传输许可证。
在固定的时间间隔内,令牌以固定的速率被添加到令牌桶中。
当发送或接收数据时,需要从令牌桶中获取令牌。如果有足够的令牌,数据可以被发送或接收。
如果令牌桶为空,意味着暂时没有可用的传输许可证,数据传输会受到限制。
Token-bucket机制可以用于平滑传输速率,避免数据突发量过大而导致的网络拥塞。通过限制发送方的传输速率或接收方的处理速率,可以确保网络中的流量能够在一个合理的范围内进行控制。
Token-bucket机制在计算机网络、流量管理、调度算法和服务质量保证(QoS)等领域有广泛的应用,用于限制和管理网络中的流量,以确保网络资源的合理分配和利用。
ref:https://arxiv.org/abs/2203.13678
In the caching tier, there are mainly two types of I/O requests.One is from host-side servers and the other is generated from prefetching hot data of the storage tier.
缓存层有两个主要的I/O请求来源,1)主机侧任务 2)存储侧的预取
bandwidth control :
在一段时间内,通过主机侧的带宽控制,使得数据块的访问总量不能超过阈值。因此,并不是每个主机侧的I/O请求会进入缓存层,而可能被阻塞在一个网络队列推迟到下一个时间间隔访问缓存。这就产生了tail latency 长尾延时。
flush bandwidth:
另一方面,缓存层的数据可能被破坏或者驱逐,所以也需要带宽控制来管理,叫做flush bandwidth
Cache capacity overloading 缓存容量过载: