Skip to content

Releases: Ahoo-Wang/CosId

1.3.2

16 Jul 17:39
Compare
Choose a tag to compare
  • add MergedIdSegment to reduce the number of IdSegment creations.
  • add PrefetchWorkerExecutorService to improve thread utilization of PrefetchWorker.
  • optimize performance, use CacheClock to replace System#currentTimeMillis(too slow!)  implementation .
  • enhance: Numerical overflow check
  • optimize the calculation of safety distance

  • 增强:新增 MergedIdSegment 合并 IdSegment 避免创建过多 IdSegment 对象。
  • 增强:新增 亲和性预取线程池 PrefetchWorkerExecutorService(PrefetchWorker 1:n PrefetchJob),提升 PrefetchWorker 利用率,防止因申明过多 SegmentChainId 导致的创建过多线程的问题(PrefetchWorker 1:1 PrefetchJob)。
  • 增强:使用 CacheClock 替换 System.currentTimeMillis提升获取当前时钟性能。
    • System.currentTimeMillis: 太慢了,TPS只有7191W+/s,低于 SegmentChainId 能达到的峰值12743W+/s,当开启IdSegmentttl功能时会影响SegmentChainId峰值性能。
    • CacheClock: TPS 41765W+/s ,精度1秒,应用需要容忍潜在的1秒精度延迟可能性,在 TTL 检查的场景中完全适用。
  • 增强:数值计算溢出检查。
  • 增强:优化安全间隙(safeGap)计算逻辑

1.3.1

12 Jul 14:52
Compare
Choose a tag to compare
  • add cosid-spring-redis support spring-data-redis
  • fix IdSegmentChain performs two prefetch operations when it is first started
  • fix the issue of PrefetchWorker log information output wrong

1.2.8

10 Jul 09:20
Compare
Choose a tag to compare
  • add support IdSegment time to live(default IdSegment#TIME_TO_LIVE_FOREVER)

1.2.5

09 Jul 16:45
Compare
Choose a tag to compare
  • 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

08 Jul 04:45
Compare
Choose a tag to compare
  • optimize SegmentChainId just try set next not ensure success,prevent the problem of ID gap.
  • optimize PrefetchWorker use more friendly thread names .
  • change SegmentChainId.DEFAULT_PREFETCH_PERIOD to 1s
  • optimize add SegmentChainId.forward log

1.1.8

07 Jul 12:55
Compare
Choose a tag to compare
  • 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

06 Jul 16:42
Compare
Choose a tag to compare
  • abstract IdSegment interface
  • enhance DefaultSegmentId to prevent back-end storage IdSegment loss/rollback
  • enhance IdSegmentDistributor to support batch acquisition of IdSegment.
  • optimize the performance of SegmentChainId (lock-free), the ultimate performance after optimization is close to AtomicLong

1.1.2

05 Jul 14:12
Compare
Choose a tag to compare
  • add experimental SegmentId mode enhancement API (SegmentChainId), support IdSegment prefetching.
    SegmentClainId

1.1.0

03 Jul 01:10
Compare
Choose a tag to compare
  • upgrade RedisIdGenerator to SegmentId mode
  • add IdSegmentDistributor api for enhance the scalability of SegmentId mode
  • inject the shared ID generator (key:share) into the IdGeneratorProvider
  • update gradle 7.0 -> 7.1

1.0.4

01 Jul 23:49
Compare
Choose a tag to compare
  • support to enable RedisIdGenerator and SnowflakeId at the same time through configuration (spring-boot-starter-cosid)