Skip to content

1.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 08 Oct 02:51
· 670 commits to main since this release
ecb4fc2

What's Changed

  • docs(metrics): refine telemetry README and remove unused components by @SCNieh in #1333
  • fix(issues1334): fix stream reader endless looping by @superhx in #1335
  • fix(perf): increase request timeout of the admin client by @Chillax-0v0 in #1336
  • feat(core): forward stream apis by @ShadowySpirits in #1338
  • chore: set code owners for the whole repo by @Chillax-0v0 in #1340
  • feat(core): add command config by @ShadowySpirits in #1342
  • fix(auto_balancer): fix broker status change by @SCNieh in #1339
  • feat(metadata): add missing tags for the old stream by @superhx in #1346
  • fix(s3stream): refine network rate limiter for better precision by @SCNieh in #1344
  • fix(s3stream): fix variable typo by @yx9o in #1351
  • docs(telemetry): simplify grafana dashboard templates by @SCNieh in #1354
  • feat(shell): remove automq cli by @ShadowySpirits in #1355
  • feat(core): log the block operation in controller event loop by @ShadowySpirits in #1352
  • fix(s3stream): temporarily disable percentile metrics for performance issue by @SCNieh in #1353
  • perf(s3stream/allocator): increase trunk size of the netty allocator by @Chillax-0v0 in #1364
  • fix(issues1357): fix missing deletes when load from snapshot by @superhx in #1358
  • chore(log): fix log by @superhx in #1365
  • fix(s3stream): fix mismatched placeholders by @yx9o in #1369
  • feat(shell): add basic command for automq cli by @ShadowySpirits in #1370
  • fix(issues1367): stream reader prevent adding invalid blocks by @superhx in #1372
  • chore(s3stream): add toString methods to fix logs by @Chillax-0v0 in #1381
  • fix(cache): fix readhead fail when user read fast than readahead by @superhx in #1382
  • fix(core): add tolerance delay when append with non-zero seq number with empty producer snapshot (#1377) by @SCNieh in #1384
  • refactor(s3stream): remove DefaultS3Client's dependency on KafkaConfig by @Chillax-0v0 in #1388
  • fix(issues604): fix response size not match by @superhx in #1392
  • feat(tools/perf): adjust send rate during warmup and catchup by @Chillax-0v0 in #1395
  • feat(s3stream): add new object storage abstract by @superhx in #1396
  • fix(action): fix release action (#1398) by @superhx in #1399
  • feat(core): optimize the block operation log in controller event loop by @ShadowySpirits in #1403
  • fix(auto_balancer): remove unnecessary map copy by @SCNieh in #1404
  • feat(core): make controller builder extensible by @SCNieh in #1406
  • perf(s3stream): reduce lock granularity in StreamMetadataManager by @lifepuzzlefun in #1411
  • fix(TimeIndex): wait for the last append to finish before fetching the stream by @Chillax-0v0 in #1407
  • feat(auto_balancer): opt cluster model interface by @SCNieh in #1414
  • chore(EventQueue): increase EVENT_PROCESS_TIME_THRESHOLD_MICROSECOND to 5ms by @Chillax-0v0 in #1412
  • fix(cache): fix cache reuse for re-created topic by @superhx in #1417
  • perf(metadata): use Timeline for objects image by @superhx in #1419
  • feat(s3stream): add aws s3 rangeRead implementation for object storage by @warr99 in #1416
  • fix(metadata): fix metadata access outdated image by @superhx in #1420
  • fix(core): fix unexpected truncation of file cache by @ShadowySpirits in #1421
  • feat(core): report s3 object number only on active controller by @SCNieh in #1424
  • perf(FileCache): avoid evicting too many blocks at once by @Chillax-0v0 in #1425
  • feat: merge from apache kafka 3.8 0971924 by @superhx in #1427
  • fix(docs): fix contributing guide by @jitokim in #1428
  • chore(examples): remove hardcoded value in TransactionProducer by @jitokim in #1426
  • fix(config): fix default config for auto balancer listener name by @SCNieh in #1429
  • fix(tools/perf): discard invalid latency values by @Chillax-0v0 in #1430
  • test(s3stream): add objectStorage rangeRead test by @warr99 in #1423
  • feat(s3stream): add aws s3 write implementation for object storage by @warr99 in #1434
  • fix(auto_balancer): fix metrics compatibility for version V0 by @SCNieh in #1433
  • fix(auto_balancer): match all endpoints when listener name is not spe… by @SCNieh in #1435
  • feat(s3stream): composite object reader&writer by @superhx in #1432
  • feat(s3stream): add s3 multipart implementation for object storage by @warr99 in #1438
  • feat(s3stream): composite object add object attributes by @superhx in #1437
  • fix(s3stream/wal): check the block size before start by @Chillax-0v0 in #1439
  • feat(tools): fix StorageTool by @ShadowySpirits in #1442
  • feat(s3stream): compact to composite object by @superhx in #1443
  • feat(s3stream): add composite object deletion by @superhx in #1444
  • feat(s3stream): add s3 delete implementation for object storage by @warr99 in #1441
  • perf(s3stream): Avoid non-reuse TimerUtil object creation on write path by @lifepuzzlefun in #1447
  • feat(s3stream): object storage writer by @warr99 in #1445
  • feat(s3stream): add stream object compaction v1 trigger by @superhx in #1448
  • feat(issue1134): prevent trivial scheduling by @SCNieh in #1449
  • feat(auto_balancer): move internal topic partition only when necessary by @SCNieh in #1450
  • feat(s3stream): adapt to new object storage abstraction by @superhx in #1451
  • feat(core): implement broker and cluster level quota by @ShadowySpirits in #1440
  • fix: stream e2e by @superhx in #1453
  • feat: add composite object test by @superhx in #1454
  • feat(s3stream): integrate composite object by @superhx in #1456
  • fix(test): fix e2e by @superhx in #1457
  • test(s3stream): add test case to verify end-of-object read behavior by @warr99 in #1455
  • feat(auto_balancer): refactor cluster load snapshot for better extens… by @SCNieh in #1459
  • chore: update README.md by @wensongz in #1460
  • refactor(license): organize license files together by @KaimingWan in #1458
  • chore: add a readme doc for s3stream by @daniel-y in #1461
  • feat(issue1462): Optimize the Readme. #1462 by @vintagewang in #1463
  • feat(s3stream): implement a prototype for the S3 Write-Ahead Log by @ShadowySpirits in #1465
  • feat(s3stream): remove dependency on stream range offset by @SCNieh in #1466
  • feat(metadata): optimize streamsetobject to support huge cluster by @superhx in #1464
  • fix(test): fix connect e2e task timeout by @superhx in #1467
  • fix(test): skip unsupported test by @superhx in #1468
  • fix(s3stream): ensure wal header shutdown type UNGRACEFULLY when startup by @lifepuzzlefun in #1469
  • chore(all): adapt to java21 by @superhx in #1471
  • feat(s3stream): implement AcknowledgmentService by @ShadowySpirits in #1470
  • feat(core): add extension point for TelemetryManager by @SCNieh in #1472
  • fix(auto_balancer): fix broker status by @SCNieh in #1480
  • fix(auto_balancer): remove partition from cluster model when it has n… by @SCNieh in #1484
  • fix(auto_balancer): fix npe when remove partition from cluster by @SCNieh in #1486
  • fix(api): fix channel isn't switch when encounter NOT_CONTROLLER by @superhx in #1489
  • fix(s3shell): fix object cleanup by @ShadowySpirits in #1491
  • fix(s3stream): Fix IO CompletableFuture not complete forever when goto retry logic by @lifepuzzlefun in #1487
  • build(aws): upgrade aws sdk version to 2.26.10 by @SCNieh in #1494
  • build(netty): upgrade netty version to 4.1.111 by @SCNieh in #1495
  • refactor(s3stream): refactor object storage by @superhx in #1498
  • fix(s3stream): fix lock protect when update liveEpoch in S3ObjectsImage by @lifepuzzlefun in #1493
  • build(gradle): enable Gradle wrapper validation by @sullis in #1496
  • feat(auto_balancer): log broker load change after each optimization by @SCNieh in #1497
  • fix(metadata): prevent duplicate release for constant instance by @SCNieh in #1500
  • refactor(config): extract automq config by @superhx in #1501
  • fix(s3stream): fix s3 readiness check by @superhx in #1502
  • fix(s3stream): use segment-unique id as file cache key by @SCNieh in #1504
  • fix(s3stream): avoid compaction shortly after opening a stream by @Chillax-0v0 in #1505
  • perf(s3stream): use FastThreadLocal in WAL io executor by @lifepuzzlefun in #1507
  • feat(config): new bucket URI config by @superhx in #1506
  • fix(metadata): fix object attributes lost after snapshot by @superhx in #1508
  • chore(test): check object attributes after snapshot by @superhx in #1509
  • feat(s3stream): optimize get objects performance by @SCNieh in #1512
  • perf(s3stream): batch delete object when compact Composite object by @lifepuzzlefun in #1513
  • feat(s3stream): adapt to bucket id by @superhx in #1514
  • fix(s3stream): fix delete composite object exceed S3 API limit by @lifepuzzlefun in #1518
  • fix: Fix typos by @szepeviktor in #1516
  • chore: Introduce EditorConfig by @szepeviktor in #1511
  • fix(s3stream): fix streamsetobject force split fail by @lifepuzzlefun in #1521
  • fix(tool): fix generate s3 url tool region by @lifepuzzlefun in #1522
  • fix(s3stream): optimize retry policy on s3 request exception by @SCNieh in #1524
  • fix(issues1527): fix delete empty list by @superhx in #1528
  • fix(issue1526): avoid completing future before search complete by @SCNieh in #1531
  • fix(s3stream): avoid MAJOR_V1 compact composite object itself by @lifepuzzlefun in #1535
  • feat(s3stream): implement object storage wal by @ShadowySpirits in #1538
  • feat(config): decrease autobalancer default avg deviation ratio to 0.1 by @SCNieh in #1543
  • fix(config): fix gcp bucket parsing issue by @warr99 in #1537
  • fix(s3stream): composite object use retained size by @superhx in #1532
  • fix(s3stream): shutdown all executor in close method by @warr99 in #1529
  • feat(e2e): kafka.py in addition to JVM parameters, additional environment variables added at startup. by @llzcx in #1536
  • fix(issues1539): fix auto-kafka-admin.sh help information. by @mapan1984 in #1541
  • feat(s3stream): refactor configuration s3.wal.path by @ShadowySpirits in #1545
  • feat(s3stream): Implement read-ahead functionality during object WAL recovery by @ShadowySpirits in #1548
  • fix(issue 1547): Add asynchronous callbacks to tryReadahead in afterRead. by @llzcx in #1553
  • feat(ci): update github-release.yml by @ShadowySpirits in #1555
  • refactor(log): introduce async close by @DaniilRoman in #1503
  • feat(s3stream): Modify the memory usage detection interval in ByteBufAlloc through environment variables. by @llzcx in #1557
  • fix(s3stream): fix npe when controller not config wal path by @lifepuzzlefun in #1560
  • feat(s3stream): add random jitter delay time for StreamObjectsCompaction by @lifepuzzlefun in #1561
  • chore: adjust readme file by @KaimingWan in #1549
  • feat(e2e): add timeout for ConsumerPerformanceService. by @llzcx in #1563
  • feat(e2e): kafka.py JVM OPT uses parameter passing instead of fixed values. by @llzcx in #1562
  • test(core): fix broken test by @SCNieh in #1565
  • feat(e2e): Memory occupancy E2E test. by @llzcx in #1564
  • refactor(s3stream): rename newMultiPartWriter to newLargeObjectWriter and change visibility to public by @warr99 in #1559
  • feat: object storage enhancement by @Chillax-0v0 in #1570
  • refactor(s3stream): change NetworkBandwidthLimiter attribute access modifiers by @warr99 in #1569
  • feat: Downgrade argparse4j to 0.7.0 by @Amitbhave in #1566
  • feat(metadata): remove useless s3object fields by @superhx in #1571
  • feat(metadata): remove useless fields from s3streamobject by @superhx in #1573
  • feat(s3stream): introduce fast retry mechanism in ObjectStorage by @ShadowySpirits in #1574
  • feat(s3stream): batch delete in AbstractObjectStorage by @lifepuzzlefun in #1572
  • feat(metadata): use delta list for so & sso by @superhx in #1575
  • feat(metadata): replace deltamap to timelinehashmap by @superhx in #1580
  • fix: use Properties#store to save properties by @Chillax-0v0 in #1581
  • fix(test): fix small timeout cause testHighTrafficBatchDelete fail by @lifepuzzlefun in #1583
  • chore: change the copyright to AutoMQ HK Limited by @daniel-y in #1586
  • feat(core): optimize indexing performance by using sparse index cache by @SCNieh in #1585
  • feat(metadata): clean up sparse index map when empty by @SCNieh in #1587
  • feat(s3stream): build read options when recover s3 wal by @ShadowySpirits in #1589
  • feat(metadata): add sso in-memory index cache by @SCNieh in #1588
  • feat(s3stream): fix buffer leak by @ShadowySpirits in #1591
  • feat(metadata): add version control to sparse index serialization by @SCNieh in #1590
  • feat(wal): graceful shutdown optimization #1578 by @CLFutureX in #1579
  • fix(s3stream): add temp method to get bucketId by @SCNieh in #1594
  • feat(s3stream): limit s3 wal object size by @ShadowySpirits in #1593
  • refactor(s3stream): remove minPartSize parameter from newLargeObjectWriter method by @warr99 in #1598
  • test(s3stream): add waiting for InflightReadaheadCf by @llzcx in #1596
  • feat(s3stream): refactor s3 client by @ShadowySpirits in #1600
  • fix(perf): fix options in "automq-perf-test.sh" by @Chillax-0v0 in #1605
  • feat(s3stream): support config MAJOR_V1 skip compact small object by @lifepuzzlefun in #1584
  • fix(log): fix consumer offsets load missing (#1606) by @superhx in #1607
  • feat(metadata): optimize object lifecycle check by @superhx in #1603
  • fix(metadata): fix buffer leak by @SCNieh in #1609
  • feat(s3stream): change LocalStreamRangeIndexCache to normal instance by @SCNieh in #1597
  • chore: use gif and update badges by @KaimingWan in #1592
  • fix(auto_balancer): fix potential memory leak by @SCNieh in #1612
  • feat(issues1608): clean up useless range metadata by @superhx in #1610
  • fix(metadata): remove duplicated buffer release by @SCNieh in #1614
  • fix(s3stream): metric record zero value when read composite index by @lifepuzzlefun in #1601
  • feat(s3stream): extract uri util methods by @SCNieh in #1615
  • fix(s3stream): parse with raw query string to prevent double decode by @SCNieh in #1617
  • fix(s3stream): fix get the v0 automq version when recover by @superhx in #1618
  • feat(api): add automq node api by @superhx in #1616
  • fix(s3stream): release buffer on exception by @SCNieh in #1622
  • fix(s3stream): add compaction delay metrics by @SCNieh in #1623
  • feat(e2e): jmx.py supports obtaining the maximum average value of all windows by @llzcx in #1595
  • test(e2e): add quota test by @llzcx in #1604
  • feat(controller): add node manager by @superhx in #1627
  • fix(issue1620): fix flaky test by @SCNieh in #1621
  • feat(metadata): use lru cache to control the overall size of node sparse index cache by @SCNieh in #1599
  • fix(s3stream): fix version get npe by change the s3stream load timing by @superhx in #1632
  • feat(core): optimize LoadAwarePartitionLeaderSelector by @SCNieh in #1633
  • fix: update docker-release.yml to fetch tags before determining… by @Gezi-lzq in #1631
  • feat(e2e): JMX tool supports obtaining metrics for each broker by @llzcx in #1626
  • fix(s3stream): fix index out of bound exception by @SCNieh in #1636
  • feat(core): add quota metrics into jmx metrics mapping by @ShadowySpirits in #1637
  • fix(api): fix node metadata by @superhx in #1638
  • fix(s3stream): fix prepared object deletion by @superhx in #1639
  • feat(s3stream): report delta mean values for selected jmx metrics by @SCNieh in #1629
  • feat(metadata): add sanity check of getObjects result by @SCNieh in #1634
  • feat(core): refactor request quota limitation by @ShadowySpirits in #1635
  • feat(admin): add get nodes admin by @superhx in #1641
  • test(s3stream): disable unstable test by @SCNieh in #1640
  • fix(issues1642): fix bucket not match by @superhx in #1643
  • fix(s3stream): release byteBuf before complete readTask by @warr99 in #1644
  • fix(ab): fix partition status update by @SCNieh in #1647
  • feat(s3stream): add new wal config by @superhx in #1646
  • feat(s3stream): IdURI support path substitude by @superhx in #1651
  • chore: get extensions in IdURI by @Chillax-0v0 in #1654
  • fix(e2e): add init.py to ensure proper module import by @llzcx in #1645
  • test(e2e): add autobalancer test by @llzcx in #1653
  • feat(s3stream): id uri encode by @superhx in #1656
  • fix(metadata): avoid throwing exception to crash process by @SCNieh in #1649
  • docs: Correct spelling error in README.md by @jasminaaa20 in #1652
  • chore(s3stream): make failover more extensible by @superhx in #1658
  • feat(s3stream): add configurable retry delay for objectStorage by @warr99 in #1659
  • feat(metrics): use uri to simplify metrics configuration by @SCNieh in #1657
  • feat: convert IdURI to BucketURI by @Chillax-0v0 in #1660
  • perf(s3stream): increase the object overhead of StreamRecordBatch by @Chillax-0v0 in #1661
  • refactor(s3stream): move component initialization to start by @superhx in #1664
  • fix(s3stream): fix startup NPE by @superhx in #1667
  • feat(s3stream): support burst upload for upload WAL task to reduce failover time. by @lifepuzzlefun in #1662
  • feat(metrics): optimize s3 operation metrics interface by @SCNieh in #1673
  • fix(metrics): fix histogram duplicated register by @superhx in #1672
  • fix(metrics): prevent potential NPE by @SCNieh in #1674
  • feat(metrics): upgrade OpenTelemetry dependencies versions by @SCNieh in #1665
  • feat(e2e): add main_kos_test_suite5 and nightly job by @llzcx in #1655
  • fix(metrics): fix duplicated operation name by @SCNieh in #1675
  • refactor(s3stream/wal): allow reset without recover by @Chillax-0v0 in #1676
  • chore: expose streamControlManager in QuorumController by @Chillax-0v0 in #1677
  • chore: expose nodeControlManager and featureControlManager by @Chillax-0v0 in #1679
  • fix(e2e): increase poll timeout to prevent test fail by @SCNieh in #1680
  • fix(e2e): rename method name that is not a test by @SCNieh in #1681
  • perf(core): batch persistent meta when delete large scale segment by @lifepuzzlefun in #1670
  • feat(license): optimize the license, make it clearer for developer by @daniel-y in #1682
  • refactor: data clumps by @compf in #1663
  • feat(s3Stream): fix excessive cache release in concurrent scenarios. by @CLFutureX in #1685
  • fix(e2e): ignore test that's not compatible with AutoMQ by @SCNieh in #1684
  • feat(issues1446): avoid accidentally fence brokers when controller overload by @superhx in #1686
  • feat(s3stream): optimize lock for s3 wal by @ShadowySpirits in #1688
  • feat(metrics): enable ops exporter by default by @SCNieh in #1690
  • feat(auto_balancer): enable AutoBalancer by default by @SCNieh in #1687
  • fix(issues1689): retain image before use by @superhx in #1692
  • feat: get all nodes' metadata by @Chillax-0v0 in #1691
  • fix(core): Fix integer overflow in bytesNeed calculation by @ArickNan in #1694
  • feat(controller): make broker nodeId starts from 1000 by @superhx in #1696
  • fix(s3stream): open RecordAccumulator#unsafeUpload for testing by @ShadowySpirits in #1695
  • refactor: expose methods of NodeRuntimeInfoGetter in NodeControlManager by @Chillax-0v0 in #1698
  • feat(s3stream): fix maven dependency for s3stream e2e by @ShadowySpirits in #1700
  • feat(telemetry): serialize the metrics label to prometheus format by @ShadowySpirits in #1702
  • feat(cli): remove old cluster bootstrap by @superhx in #1703
  • feat(s3stream): stop the timer wheel when shutdown s3 storage by @ShadowySpirits in #1704
  • feat(metrics): remove unnecessary resource attributes by @SCNieh in #1697
  • feat(controller): add has opening streams method by @superhx in #1707
  • chore(cli): rename configs to config by @superhx in #1708
  • chore(logger): suppress object not exist error by @superhx in #1709
  • feat(s3stream): isolate the wal object from previous epoch by @ShadowySpirits in #1699
  • feat(s3stream): test s3 wal in s3stream e2e by @ShadowySpirits in #1705
  • feat(tests): test s3 wal in automq enhanced e2e tests by @ShadowySpirits in #1712
  • feat(tests): implement append method properly for s3 wal by @ShadowySpirits in #1711
  • feat(s3stream): force close streams when WAL is failed by @superhx in #1713
  • feat(s3stream): extract real exception by @CLFutureX in #1710
  • fix(s3stream): fix buffer release by @ShadowySpirits in #1716
  • feat(e2e): add auto-balancer and s3-object logs by @llzcx in #1701
  • fix(log): fix async close not wait by @superhx in #1724
  • fix(controller): npe when cleanup scale in node by @lifepuzzlefun in #1728
  • feat(core): expose more java modules by @lifepuzzlefun in #1732
  • feat(bin): optimise kafka-run-class.sh by @ShadowySpirits in #1733
  • feat(s3stream): handle IOException thrown during recovering data from the WAL by @Chillax-0v0 in #1720
  • feat(metrics): support customize base labels by @SCNieh in #1735
  • docs(bin): optimise kafka-run-class.sh by @Chillax-0v0 in #1736
  • feat(test): only run s3stream e2e after merging pr by @ShadowySpirits in #1734
  • fix(issues1737): log close await append callback complete by @superhx in #1738
  • fix(s3stream): halt when the node is fenced by @superhx in #1739
  • fix(issues1740): fix log close await deadlock by @superhx in #1741
  • fix(s3stream): correct delete object path to use multiPartPath by @warr99 in #1742
  • feat(image): add image get objects endless loop detect by @superhx in #1744
  • fix(s3stream): make ObjectWriter#write synchronized by @Chillax-0v0 in #1745
  • test(e2e): add s3 leakage test by @llzcx in #1719
  • fix(ElasticLogManager): terminate the unending shutdown by completing INIT_FUTURE by @Chillax-0v0 in #1750
  • fix(config): add default metrics reporter only in broker node by @SCNieh in #1751
  • feat(auto_balancer): optimize broker schedule threshold by @SCNieh in #1747
  • feat(cli): describe cluster by @superhx in #1754
  • refactor(s3stream): change access permission by @warr99 in #1755
  • feat(metadata): unregister nodes by @Chillax-0v0 in #1756
  • fix(s3stream): support idempotent delete composite object by @superhx in #1757
  • refactor(s3stream): make maxBatchSize in DeleteObjectsAccumulator configurable by @warr99 in #1758
  • feat(s3stream): remove default read options by @superhx in #1759
  • feat(auto_balancer): preserve out-of-sync broker and partition in cluster model snapshot by @SCNieh in #1760
  • feat(metadata): reject requests to unregister a node with already open streams by @Chillax-0v0 in #1761
  • fix(metadata): refine error handler for cf by @SCNieh in #1763
  • feat(metadata): catch loadStreamSetObjectInfo unexpected exception by @superhx in #1765
  • chore(logger): log composite object load fail by @superhx in #1766
  • feat(s3stream): optimize the error log by @ShadowySpirits in #1768
  • feat(idempotent): update check sequence timeout to 40s by @superhx in #1770
  • feat(s3stream): add strictBathLimit option for s3 wal by @ShadowySpirits in #1769
  • fix(readme): adjust the heading level by @ShadowySpirits in #1775
  • feat(auto_balancer): allow change broker rack on register (#1771) by @SCNieh in #1776
  • fix(metadataimage): fix getObjects not complete cf when throw exception by @lifepuzzlefun in #1764
  • feat(s3stream): change s3 wal object path by @ShadowySpirits in #1777
  • refactor(s3stream): refactor batch delete objects by @warr99 in #1767
  • fix(s3stream): fix exception handling in s3 wal by @ShadowySpirits in #1773
  • chore(s3stream/metadata): more logs during pending fetch by @Chillax-0v0 in #1780
  • fix(issues1774): fix async lru cache ConcurrentModificationException by @superhx in #1781
  • test(e2e): add compaction test. by @llzcx in #1772
  • feat(s3stream): optimize the execution order of the release method for ByteBuf by @CLFutureX in #1779
  • feat(auto_balancer): assign partitions within rack on broker fence (#1778) by @SCNieh in #1783
  • fix(issues1784): fix upload burst cause object index out of order by @superhx in #1785
  • fix(s3stream): fix AsyncLRUCache to support remove by @superhx in #1786
  • fix(metadata): add object header size to cache size estimation by @SCNieh in #1791
  • feat(s3stream): add thread prefix in objectStorage by @lifepuzzlefun in #1789
  • perf: use netty buffer to pool memory by @Chillax-0v0 in #1788
  • feat(s3stream): add missing getter method by @SCNieh in #1793
  • chore(logger): move controller commit sso log to broker by @superhx in #1794
  • feat(metrics): add topic partition distribution metric (#1782) by @SCNieh in #1792
  • feat: add introduction link by @KaimingWan in #1795
  • fix(core): Revert "perf: use netty buffer to pool memory (#1788)" by @ShadowySpirits in #1797
  • perf: use a new GrowableMultiBufferSupplier to avoid memory waste by @Chillax-0v0 in #1800
  • feat(log): add error level log in logSuppressor by @warr99 in #1799
  • fix(issues1798): fix stream reader memory leak by @superhx in #1801
  • fix(metrics): topic partition count metrics should be reported by all brokers by @SCNieh in #1802
  • feat(s3stream): optimize the execution sequence to avoid deep depende… by @CLFutureX in #1790
  • fix(auto_balancer): fix load balancer threshold by @SCNieh in #1805
  • fix(s3stream): fix dead lock issue by @ShadowySpirits in #1810
  • feat(all): merge apache kafka 3.8.0 771b957 by @superhx in #1813
  • fix(metadata): fix sparse index serialization capacity by @SCNieh in #1815
  • fix(e2e): adaptation to pr: #1794 by @llzcx in #1811
  • fix(cli): add cli utils back by @superhx in #1816
  • chore(logger): move trim log to broker by @superhx in #1820
  • chore(config): change quorum default timeout to 5s by @superhx in #1824
  • chore(workflows): e2e support release runner by @superhx in #1826
  • fix(s3strea/wal): handle IOException during flushing WAL header by @Chillax-0v0 in #1828
  • fix(test): cherry-pick #1830 #1835 by @superhx in #1836
  • feat(s3stream): add AsyncLRUCache metric (#1829) by @SCNieh in #1837
  • fix(s3stream): fix storage failure handle deadlock by @superhx in #1839
  • fix(s3stream/wal): fail all IO operations once the WAL is failed by @Chillax-0v0 in #1841
  • feat(metadata): limit the size of sparse index cache by @SCNieh in #1833
  • feat(issues1842): cleanup metastream kv after deleting topic by @superhx in #1844
  • fix(s3stream): error callback by @superhx in #1846
  • fix(revert): error callback by @superhx in #1849
  • feat(metadata): avoid serialize empty index by @SCNieh in #1853
  • feat(metadata): limit sparse index cache update interval by @SCNieh in #1850
  • feat(s3stream): support call #close(force=true) after #close(force=false) by @superhx in #1855
  • feat(metadata): prune invalid sparse index with image on startup by @SCNieh in #1857
  • feat(s3stream): add network rate limiter for s3 wal to export metrics by @ShadowySpirits in #1861
  • feat(e2e): use cloud vms for e2e tests; move wal path by @mooc9988 in #1864
  • fix(e2e): always archive result artifacts by @mooc9988 in #1867
  • fix(storage): regard all produce requests as duplicate whose sequence… by @Chillax-0v0 in #1868
  • revert: enable LocalStreamRangeIndexCacheTest#testEvict by @Chillax-0v0 in #1870
  • fix(metadata): catch exception to prevent unnecessary error log by @SCNieh in #1873
  • perf(s3stream): check the logger level before trace and debug by @Chillax-0v0 in #1876
  • chore(tools/perf): increase the message sending rate during the warmup to accelerate JVM warmup by @Chillax-0v0 in #1881
  • perf(s3stream/wal): reuse the ByteBuf for record headers (#1877) by @Chillax-0v0 in #1878
  • fix(test): fix consumer mode e2e by increase timeout by @superhx in #1886
  • fix(e2e): fix bug by @llzcx in #1887
  • chore(logger): change e2e streams log level to INFO by @superhx in #1890
  • perf(s3stream): optimize the critical section in s3 wal (#1880) by @ShadowySpirits in #1893
  • fix(s3stream/wal): fix memory leak by @Chillax-0v0 in #1897
  • fix(e2e): fix data map format by @mooc9988 in #1899
  • fix(metadata): fix sparse index leak on compaction split by @SCNieh in #1895
  • fix(metadata): fix evict sparse index cache potential endless loop by @SCNieh in #1901
  • feat(metadata): add metrics for sparse index cache monitor by @SCNieh in #1903
  • fix(metadata): prevent concurrent uploading of local sparse index cache by @SCNieh in #1905
  • fix(metadata): fix wrong stream number in serialization by @SCNieh in #1907
  • feat(s3stream): support change checksum algorithm by @ShadowySpirits in #1909
  • feat(s3stream): add docs for checksumAlgorithm configuration by @ShadowySpirits in #1910
  • fix(test): set dev version to 3.8.0 by @superhx in #1911
  • fix(metadata): fix interrupted batch upload by @SCNieh in #1912
  • perf(config): increase the default index interval from 4KiB to 1MiB by @Chillax-0v0 in #1914
  • feat(s3stream): unify object not exist exception by @superhx in #1921
  • fix(e2e): fix bug by @llzcx in #1923
  • feat(s3stream): limit the inflight fast retry request count by @ShadowySpirits in #1924
  • chore(test): set runner to e2e by @superhx in #1928
  • feat(metadata): expire node sparse index cache after write by @SCNieh in #1926
  • feat(auto_balancer): limit the max number of nodes to reassign partit… by @SCNieh in #1934
  • feat(metadata): blocking wait for uploading local index cache on stre… by @SCNieh in #1932
  • feat(s3stream): ensure compaction could be executed by @superhx in #1935
  • feat(s3stream): add checksum for s3 wal by @ShadowySpirits in #1940
  • docs(s3stream/version): statement of features supported by S3Stream V1 by @Chillax-0v0 in #1942
  • fix(s3stream): resolve unintended buffer reuse by @ShadowySpirits in #1946
  • fix(s3stream): fix buffer leak by @ShadowySpirits in #1949
  • fix(s3stream): change reject handler to prevent task lost by @SCNieh in #1957
  • fix(issues1960): allow UNSET attributes for version 1.1 by @superhx in #1961
  • fix(log): use the same view to calculate trim offsets by @Chillax-0v0 in #1972
  • fix(s3stream): fix namespace by @ShadowySpirits in #1978
  • feat(core): default configuration optimization by @SCNieh in #1980
  • fix(auto_balancer): fix string format by @SCNieh in #1988
  • feat(auto_balancer): limit the maximum time to execute actions by @SCNieh in #1990
  • fix(auto_balancer): fix broker status change by @SCNieh in #1992
  • chore: beautify ElasticLogMeta in logs by @Chillax-0v0 in #1996
  • chore(util): implement IdURI#toString by @Chillax-0v0 in #1997
  • fix(issues1999): fix Processor.channelContexts memory leak by @superhx in #2002
  • feat(version): bump to 1.2.0-rc0 by @superhx in #2003
  • fix(issue2004): fix AutoBalancerMetricsReporter cannot process with t… by @SCNieh in #2006
  • fix(core): release all records before delayed fetch by @ShadowySpirits in #2009
  • perf(DelayedFetch): only try to fast read on complete a delayed fetch by @Chillax-0v0 in #2013
  • feat(core): revert rack aware assignment on broker fence by @SCNieh in #2017
  • fix(core): rsp immediately for catch-up read even if rst is not enough by @SCNieh in #2019
  • fix(core): remove offset metrics when expired by @SCNieh in #2022
  • feat(version): bump version to 1.2.0-rc1 by @superhx in #2025
  • fix(metrics): fix potential NPE when exporting metrics by @SCNieh in #2030
  • fix(metadata): fix stream endoffset set back by @superhx in #2042
  • fix(issues2038): fix timestamp to offset not found (#2039) by @superhx in #2041
  • chore(version): bump version to 1.2.0 by @superhx in #2045

New Contributors

Full Changelog: 1.1.0...1.2.0