Releases: Ahoo-Wang/CosId
Releases · Ahoo-Wang/CosId
1.3.2
- add
MergedIdSegment
to reduce the number of IdSegment creations. - add
PrefetchWorkerExecutorService
to improve thread utilization ofPrefetchWorker
. - optimize performance, use
CacheClock
to replaceSystem#currentTimeMillis
(too slow!) implementation . - enhance: Numerical overflow check
- optimize the calculation of safety distance
- 增强:新增
MergedIdSegment
合并IdSegment
避免创建过多IdSegment
对象。 - 增强:新增 亲和性预取线程池
PrefetchWorkerExecutorService
(PrefetchWorker
1:nPrefetchJob
),提升PrefetchWorker
利用率,防止因申明过多SegmentChainId
导致的创建过多线程的问题(PrefetchWorker
1:1PrefetchJob
)。 - 增强:使用
CacheClock
替换System.currentTimeMillis
提升获取当前时钟性能。System.currentTimeMillis
: 太慢了,TPS只有7191W+/s
,低于SegmentChainId
能达到的峰值12743W+/s
,当开启IdSegment
的ttl
功能时会影响SegmentChainId
峰值性能。CacheClock
: TPS41765W+/s
,精度1秒,应用需要容忍潜在的1秒精度延迟可能性,在TTL
检查的场景中完全适用。
- 增强:数值计算溢出检查。
- 增强:优化安全间隙(
safeGap
)计算逻辑
1.3.1
1.2.8
1.2.5
- PrefetchWorker supports dynamic expansion and contraction based on
hungerThreshold
- add
cosid-jdbc
for support JdbcIdSegmentDistributor(database segment storage) - change SegmentId default SegmentIdProperties.Mode to CHAIN (recommend)
- change example -> rest-api
1.2.1
1.1.8
- add IdSegmentDistributor.Mock for test
- optimize unit-test
- optimize jmh-test
- add support to enable SegmentChainId through configuration (spring-boot-starter-cosid)
- add RedisIdBenchmark VS RedisChainIdBenchmark TPS to README
- add LifecycleSegmentChainId for shutdown prefetchWorker
- Update performance report
1.1.4
- abstract
IdSegment
interface - enhance
DefaultSegmentId
to prevent back-end storageIdSegment
loss/rollback - enhance
IdSegmentDistributor
to support batch acquisition ofIdSegment
. - optimize the performance of
SegmentChainId
(lock-free), the ultimate performance after optimization is close toAtomicLong