THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Versions Compared
compared with
Key
- This line was added.
- This line was removed.
- Formatting was changed.
...
LRU缺点:有类型写入很快、有类型很慢,则抖动太厉害(慢速的加入池中,会踢出快类型的,然后还没被复用,就又被踢走了);LFU:负载变化时适应太慢;2Q。
细节:为什么当SG的info变化超过一定阈值才向Sys汇报?细节:为什么当SG的info变化超过一定阈值才向SystemInfo汇报?
解法:为了减少全局锁。假设Sys预留1GB出来,有n个SG,那么每个SG info每增长1/n GB数据时,才需要跟全局同步一次。GB数据时,才需要跟全局同步一次,减少contention。
细节:String/byte[] 不需要buffer池的原因。
...
在该方案中,只有图中红色部分是全局锁(ArrayPool, SysInfo,reject信号量)SystemInfo,reject信号量)
详细计算公式:
- WAL buffer: 一个存储组固定大小的buffer:b(永久)
- PrimitiveArrayPool 原始类型数组缓存(永久)
- memtable 写入数据使用
- memtable 排序使用
- String数组每次会清空(现状)。
- TVListAllocator 中 TVList 对象头缓存(永久)
- MemtablePool 中 Memtable 对象头缓存(永久)
- flush 之后在内存中积累的 ChunkMetadata 缓存大小为 K(临时)
- flush编码后的字节数组:一个Chunk编码后的大小(临时)
...