Important notice
- Upgrade the RocksDB version to 7.9.2 to keep sync with BookKeeper's RocksDB dependency in #20072
- Introduce consistent hash ring to distribute the load of multiple topics subscription in #19502
- Remove default 30s ackTimeout when setting DLQ policy on java consumer in #19486
- Require authRole is proxyRole to set originalPrincipal in #19455
- Update Elasticsearch sink idle cnx timeout to 30s in #19377
- Move checked exception into builder when newTransaction. in #19356
- TokenAuthenticationState: authenticate token only once in #19314
- OneStageAuth State: move authn out of constructor in #19295
- Update AuthenticationProvider to simplify HTTP Authn in #19197
- Remove AuthorizationProvider methods deprecated in 2.7 and 2.9 in #19182
- Deprecate blocking AuthorizationService, AuthorizationProvider methods in #19180
- Reject create non existent persistent partitions. in #19086
- Omit making a copy of CommandAck when there are no broker interceptors in #18997
- Use correct file path for tls trust certificates in #18712
- Enable certificate refresh for Quorum and Netty Servers in #18097
- Remove timestamp from Prometheus metrics in #17419
- Revert 5895: fix redeliveryCount in #17060
- Fix producer/consume permission can’t get v1/schema in #16018
- Autorecovery default reppDnsResolverClass to ZkBookieRackAffinityMapping in #15640
- Allow to build and push multi-arch Docker images in #19432
PIPs
- PIP-160 Metrics stats of Transaction buffered writer #15370
- PIP-167 Make it Configurable to Require Subscription Permission #15576
- PIP-169 Support split bundle by flow or qps #16782
- PIP-188: Cluster migration or Blue-Green cluster deployment support in Pulsar #16551
- PIP-192: New Pulsar Broker Load Balancer #16691
- PIP-214: Add broker level metrics statistics and expose to prometheus #18056
- PIP-218: Consumer batchReceive() single partition every receive #18182
- PIP-229: Add a common interface to get fields of the MessageIdData #18950(#18950)
- PIP-250: Add proxyVersion to CommandConnect #19623(#19623)
- PIP-257: Add Open ID Connect Support to Server Components #19771
Broker
- [Broker] incomplete PIP-97: Asynchronous Authentication Provider #12105
- Implement for ServerCnx by @michaeljmarshall in #19409
- Implement for ProxyConnection by @michaeljmarshall in #19292
- [Broker] incomplete PIP-180: Shadow Topic, an alternative way to support readonly topic ownership. #16153
- [Broker] PIP-192: New Pulsar Broker Load Balancer #16691
- Fix getLastMessageId for compressed payload(And add compression and maxBatchSize for the load balance system topic) by @heesung-sn in #20087
- Improve TransferSheder for overload outlier for large clusters by @heesung-sn in #20059
- Update the lookup data path to support deployment and rollback by @Demogorgon314 in #19999
- Filter the transfer dest broker by @Demogorgon314 in #19958
- Updated metrics and cleanup broker selector by @heesung-sn in #19945
- Support delete namespace bundle admin API by @Demogorgon314 in #19851
- Improved Auto Unload Logic by @heesung-sn in #19813
- Support broker isolation policy by @Demogorgon314 in #19592
- Add large topic count filter by @Demogorgon314 in #19613
- Added VersionId in ServiceUnitStateData by @heesung-sn in #19620
- Added Deleted and Init states in ServiceUnitState by @heesung-sn in #19546
- Added broker and top-bundles load reporters by @heesung-sn in #19471
- Added TransferShedder by @heesung-sn in #18865
- Added ServiceUnitStateCompactionStrategy by @heesung-sn in #19045
- Added TopicCompactionStrategy for StrategicTwoPhaseCompactor and TableView. by @heesung-sn in #18195
- Implement load data store by @Demogorgon314 in #18777
- Implement broker registry for new load manager by @Demogorgon314 in #18810
- Added ServiceUnitStateChannelImpl by @heesung-sn in #18489
- [Broker] Pip-257: Add AuthenticationProviderOpenID by @michaeljmarshall in #19849
- [Broker] Make
LeastResourceUsageWithWeight
thread safe by @lifepuzzlefun in #20159 - [Broker] Support disabling delayed bucket merging. by @mattisonchao in #20155
- [Broker] Supply download auth params when provided for k8s runtime by @michaeljmarshall in #20144
- [Broker] AuthenticationProviderOpenID k8s error logs by @michaeljmarshall in #20135
- [Broker] Implement authenticateAsync for AuthenticationProviderList by @michaeljmarshall in #20132
- [Broker] Fix broker restart logic by @wolfstudy in #20113
- [Broker] Ensure previous delayed index be removed from snapshotSegmentLastIndexTable & Make load operate asynchronous by @coderzc in #20086
- [Broker] Fix avoid future of clear delayed message can't complete by @coderzc in #20075
- [Broker] Refresh auth data if ProxyLookupRequests by @michaeljmarshall in #20067
- [Broker] Fix flaky testCreateTopicWithZombieReplicatorCursor by @BewareMyPower in #20037
- [Broker] Prevent range conflicts with Key Shared sticky consumers when TCP/IP connections get orphaned by @lhotari in #20026
- [Broker] Fix leader broker log by @nicoloboschi in #19987
- [Broker] Make LedgerOffloaderFactory can load the old nar. by @horizonzy in #19913
- [Broker] Ignore and remove the replicator cursor when the remote cluster is absent by @BewareMyPower in #19972
- [Broker] Fix DeadLetterProducer creation callback blocking client io thread. by @lifepuzzlefun in #19930
- [Broker] Merge multiple buckets at once by @coderzc in #19927
- [Broker] Fix the loss of bundle stats data reported to zookeeper, when the updateStats method is executed by @lordcheng10 in #19887
- [Broker] Clear delayed message when unsubscribe & Make clear operation asynchronous by @coderzc in #19901
- [Broker] Fix can't send ErrorCommand when message is null value by @coderzc in #19899
- [Broker] PIP-240: new public method unloadSubscription in PersistentTopic by @poorbarcode in #19737
- [Broker] PIP-250: Add proxyVersion to CommandConnect by @michaeljmarshall in #19618
- [Broker] Make bucket merge operation asynchronous by @coderzc in #19873
- [Broker] Suppress error logging when message expiration fails by @massakam in #19778
- [Broker] Allow proxy to pass same role for authRole and originalRole by @michaeljmarshall in #19557
- [Broker] Make authentication refresh threadsafe by @michaeljmarshall in #19506
- [Broker] Fix RetentionPolicies constructor by @nodece in #19777
- [Broker] Add metrics for bucket delayed message tracker by @coderzc in #19716
- [Broker] Add topicName and cursorName for ledger metadata of bucket snapshot by @coderzc in #19802
- [Broker] Don't clean up BucketDelayedDeliveryTracker when all consumer disconnect by @coderzc in #19801
- [Broker] Fix create cluster with empty url by @nodece in #19762
- [Broker] Fix potential exception cause the policy service init fail. by @Technoboy- in #19746
- [Broker] Validate originalPrincipal earlier in ServerCnx by @michaeljmarshall in #19270
- [Broker] Fix issue where msgRateExpired may not refresh forever by @massakam in #19759
- [Broker] Fix index generator is not rollback after entries are failed added. by @gaozhangmin in #19727
- [Broker] Cut off snapshot segment according to maxIndexesPerBucketSnapshotSegment by @coderzc in #19706
- [Broker] Change type of
allowAutoTopicCreationType
to TopicType by @yuruguo in #18814 - [Broker] Store the original authentication data by @nodece in #19519
- [Broker] GetLastMessageId returns a wrong batch index of last message if enabled read compacted by @poorbarcode in #18877
- [Broker] PIP-188 support blue-green cluster migration [part-1] by @rdhabalia in #17962
- [Broker] Embed stringified exception in placeholder in log message by @massakam in #19633
- [Broker] Fix BucketDelayedDeliveryTracker merge issues by @coderzc in #19615
- [Broker] Make BucketDelayedDeliveryTracker can retry snapshot operation & improve logs by @coderzc in #19577
- [Broker] Transaction buffer recover blocked by readNext by @poorbarcode in #18833
- [Broker] Fix geo-replication admin by @nodece in #19548
- [Broker] Counter of pending send messages in Replicator incorrect if schema future not complete by @poorbarcode in #19242
- [Broker] Export
pulsar_delayed_message_index_size_bytes
in subscription level by @coderzc in #19595 - [Broker] Store nonBlank clientVersions that have spaces by @michaeljmarshall in #19616
- [Broker] Require authRole is proxyRole to set originalPrincipal by @michaeljmarshall in #19455
- [Broker] Print stack trace when getting exception in ServerCnx by @wangjialing218 in #19593
- [Broker] Make the service name resolver cache of PulsarWebResource expire after access by @poorbarcode in #19532
- [Broker] OneStageAuth State: move authn out of constructor by @michaeljmarshall in #19295
- [Broker] Forbid uploading BYTES schema with admin API by @labuladong in #18995
- [Broker] Add test to verify authRole cannot change by @michaeljmarshall in #19430
- [Broker] Topic load fail by ledger lost by @poorbarcode in #19444
- [Broker] Terminate the async call chain when the condition isn't met for resetCursor by @lhotari in #19541
- [Broker] Make ServerCnx#originalAuthData volatile by @michaeljmarshall in #19507
- [Broker] Cleanup finalPosition null-check in asyncFindPosition by @AnonHxy in #19497
- [Broker] ServerCnx: go to Failed state when auth fails by @michaeljmarshall in #19312
- [Broker] Refactor update topic partitions endpoint. by @mattisonchao in #19166
- [Broker] Fix mutex never released when trimming by @315157973 in #17911
- [Broker] PIP-214 Add broker level metrics statistics and expose to prometheus by @yyj8 in #19047
- [Broker] Fix delete system topic clean topic policy by @liangyepianzhou in #18823
- [Broker] Support zookeeper read-only config. by @horizonzy in #19156
- [Broker] Modify check waitingForPingResponse with volatile (#12615)" by @michaeljmarshall in #19439
- [Broker] Expect msgs after server initiated CloseProducer by @michaeljmarshall in #19446
- [Broker] Close transactionBuffer after MessageDeduplication#checkStatus failed by @tjiuming in #19157
- [Broker] Topic could be in fenced state forever if deletion fails by @nicoloboschi in #19129
- [Broker] Implement BucketDelayedDeliveryTrackerFactory and load BucketDelayedDeliveryTracker - part6 by @coderzc in #17756
- [Broker] Fix the incorrect total size if use ML interceptor by @poorbarcode in #19404
- [Broker] Fix currency bug in BucketDelayedDeliveryTracker#recoverBucketSnapshot by @lhotari in #19394
- [Broker] Added isActive in ManagedCursorImpl by @heesung-sn in #19341
- [Broker] Replace sync method in async call chain of internalSetBacklogQuota by @lhotari in #19398
- [Broker] Replace sync call in async call chain of AdminResource#internalCreatePartitionedTopic by @lhotari in #19399
- [Broker] Reduce calls on metadata store / ZK event thread & Netty threads in PersistentTopic by @lhotari in #19388
- [Broker] Release Netty buffer in finally block in ServerCnx#handleLastMessageIdFromCompactedLedger by @lhotari in #19395
- [Broker] Replace sync method in NamespacesBase#internalDeleteNamespaceBundleAsync by @lhotari in #19391
- [Broker] Fix concurrency bug in PersistentTopicsBase#internalGetReplicatedSubscriptionStatus by @lhotari in #19389
- [Broker] Remove synchronous method call in async call chain in PersistentTopicsBase by @lhotari in #19387
- [Broker] Update interceptor handler exception by @tuteng in #18940
- [Broker] Add lowerBoundarySheddingEnabled conf by @crossoverJie in #19351
- [Broker] Fix uncompleted future when getting the topic policies of a deleted topic by @liangyepianzhou in #18824
- [Broker] Simplify extract entryMetadata code in filterEntriesForConsumer by @lifepuzzlefun in #18729
- [Broker] Catch exception for brokerInterceptor by @aloyszhang in #19147
- [Broker] Fix RetentionPolicies types mismatch. by @Technoboy- in #18114
- [Broker] Make Consumer#equals more effective by @Shawyeok in #18662
- [Broker] TokenAuthenticationState: authenticate token only once by @michaeljmarshall in #19314
- [Broker] Fix namespace deletion if __change_events topic has not been created yet by @nicoloboschi in #18804
- [Broker] Fix can not delete namespace by force by @liangyepianzhou in #18307
- [Broker] Replace PulsarService Mockito spy solution for overriding getters in tests by @lhotari in #19323
- [Broker] Fix issue where leader broker information isn't available after 10 minutes by @lhotari in #17401
- [Broker] Add UncaughtExceptionHandler for every thread pool by @315157973 in #18211
- [Broker] Replace authenticate with authenticateAsync by @michaeljmarshall in #19313
- [Broker] Topics stats shows msgBacklog but there reality no backlog by @poorbarcode in #19275
- [Broker] Only create extended partitions when updating partition number by @AnonHxy in #17349
- [Broker] Let TokenAuthState update authenticationDataSource by @michaeljmarshall in #19282
- [Broker] Eagerly Delete Offloaded Segments On Topic Deletion by @dlg99 in #17915
- [Broker] Documentation for AuthenticationState contract by @michaeljmarshall in #19283
- [Broker] Allow to use io_uring instead of epoll by @coderzc in #18385
- [Broker] Using TopicName instead of String as the parameter for
getTopic
. by @Technoboy- in #17416 - [Broker] Skip creating a subscription replication snapshot if no messages have been published after the topic gets activated on a broker by @lhotari in #16618
- [Broker] Avoid bundle unload destination broker be set as an inactive broker. by @Nicklee007 in #19244
- [Broker] Update AuthenticationProvider to simplify HTTP Authn by @michaeljmarshall in #19197
- [Broker] Reduce GetReplicatedSubscriptionStatus local REST call by @AnonHxy in #16946
- [Broker] Improve tls config on replication client and cluster cli by @nodece in #17295
- [Broker] Persist correct markDeletePosition to prevent message loss by @michaeljmarshall in #18237
- [Broker] Implement delayed message index bucket snapshot(merge/delete) - part8 by @coderzc in #19138
- [Broker] Deprecate blocking AuthorizationService, AuthorizationProvider methods by @michaeljmarshall in #19180
- [Broker] Allow user lookup topic name with
-partition-
but no metadata by @mattisonchao in #19171 - [Broker] Add ref count for sticky hash to optimize the performance of Key_Shared subscription by @codelipenghui in #19167
- [Broker] Copy proto command fields into final variables in ServerCnx by @michaeljmarshall in #18987
- [Broker] Add parameter check for create/update cluster. by @mattisonchao in #19151
- [Broker] In the trimDeletedEntries method, release the removed entry by @lordcheng10 in #18305
- [Broker] Remove locallyAcquiredLock when removeOwnership by @leizhiyuan in #18197
- [Broker] Support setting
forceDeleteTenantAllowed
dynamically by @Technoboy- in #18192 - [Broker] Use ChannelVoidPromise to avoid useless promise objects creation by @nicoloboschi in #19141
- [Broker] Fix ClusterDataImpl#clone and add test by @michaeljmarshall in #19126
- [Broker] Fix invalid metric type "gauge " by @coderzc in #18129
- [Broker] Fix ttl expiration block due to no-recoverable exception even if autoSkipNonRecoverableData=true by @aloyszhang in #19132
- [Broker] Update the log print content of createSubscriptions by @Pomelongan in #18024
- [Broker] Fix the order of resource close in the InMemoryDelayedDeliveryTracker by @coderzc in #18000
- [Broker] Fix incorrect bundle split count metric by @Shawyeok in #17970
- [Broker] Update authentication failed metrics report by @tuteng in #17787
- [Broker] ManagedLedger: move to FENCED state in case of BadVersionException by @eolivelli in #17736
- [Broker] Do not print error log with stacktrace for 404 by @codelipenghui in #19130
- [Broker] Fix executeWithRetry result is null by @coderzc in #17694
- [Broker] Fix cursor skip read by @coderzc in #19124
- [Broker] Fix can not revoke permission after update topic partition by @TakaHiR07 in #17393
- [Broker] Add oshi library to help control OS resources. by @mattisonchao in #18990
- [Broker] Implement Filter out all delayed messages and skip them when reading messages from bookies - part7 by @coderzc in #19035
- [Broker] Fix missing return when internalGetReplicatedSubscriptionStatus by @HQebupt in #19054
- [Broker] Throw AlreadyClosedException while request to a closed metadata store by @codelipenghui in #19055
- [Broker] Fix thread safety issue in info-internal admin api for partitioned topics by @lhotari in #19021
- [Broker] Only get consumer future when interceptor not null by @michaeljmarshall in #19022
- [Broker] Use validateTopicOperationAsync methods in all cases by @lhotari in #19016
- [Broker] Fix deadlock in PendingAckHandleImpl by @nicoloboschi in #18989
- [Broker] Add javadoc for PulsarDecoder handle* method parameter lifecycle by @lhotari in #18998
- [Broker] Fix direct memory leak in RawReaderImpl by @lhotari in #18928
- [Broker] Make it Configurable to Require Subscription Permission by @michaeljmarshall in #15576
- [Broker] Add config
fsyncEnable
forRocksdbMetadataStore
by @coderzc in #18801 - [Broker] Implement delayed message bucket snapshot recover - part5 by @coderzc in #18420
- [Broker] Remove the unused method internalGetList from PersistentTopicsBase by @codelipenghui in #18775
- [Broker] Fix duplicated schemas creation by @codelipenghui in #18701
- [Broker] Use correct file path for tls trust certificates by @michaeljmarshall in #18712
- [Broker] The interval of scheduled task should be greater than 0 by @yuruguo in #18728
- [Broker] Improve shadow topic error message by @labuladong in #18709
- [Broker] Combination of autocreate + forced delete of partitioned topic with active consumer leaves topic metadata inconsistent. by @dlg99 in #18193
- [Broker] System topic writer/reader connection not counted by @yuruguo in #18603
- [Broker] First judge whether config is null when standalone start by @yuruguo in #18681
- [Broker] Fix thread-safety issue with currentLedgerEntries and currentLedgerSize fields by @lhotari in #17868
- [Broker] Fix namespace not found will cause request timeout by @labuladong in #18512
- [Broker] Avoid sharing the same random in multi-threads due to a performance issue by @Shawyeok in #18660
- [Broker] System topic writer/reader connection not counted. by @Technoboy- in #18369
- [Broker] Implement BookkeeperBucketSnapshotStorage - part3 by @coderzc in #17677
- [Broker] Support internal cursor properties - part4 by @coderzc in #17712
- [Broker] Avoid unnecessary creation of BitSetRecyclable objects by @lordcheng10 in #17998
- [Broker] Fix broker cache eviction of entries read by active cursors by @lhotari in #17273
- [Broker] Add return for PersistentMessageExpiryMonitor#findEntryFailed by @Pomelongan in #17816
- [Broker] Fix create ns by @nodece in #17864
- [Broker] DnsResolverUtil.TTL should be greater than zero by @Technoboy- in #18565
- [Broker] Make managedLedgerOffloadedReadPriority compatible with broker property by @ethqunzhong in #17803
- [Broker] Remove legacy code by @aloyszhang in #18330
- [Broker] Remove duplicate code to improve delete subscription by @nodece in #15347
- [Broker] Fix issue where logs get truncated when Runtime.halt is used to terminate the process by @lhotari in #17589
- [Broker] Add missing @test annotation by @michaeljmarshall in #18528
- [Broker] Unreasonable AuthenticationException reference by @zzccctv in #18502
- [Broker] Remove useless argument for PersistentTopicBase.internalSkipAllMessagesForNonPartitionedTopicAsync by @poorbarcode in #18473
- [Broker] Using
handle
instead ofhandleAsync
to avoid using common pool thread by @Technoboy- in #17403 - [Broker] In OverloadShedder, repeatedly filter local bundles by @lordcheng10 in #18463
- [Broker] Fix OutOfDirectMemoryError in standalone with zk by @labuladong in #18337
- [Broker] ENABLE_IO_URING property name by @coderzc in #18402
- [Broker] Provide readable consumer stats time by @rdhabalia in #14251
- [Broker] Fix delete_when_subscriptions_caught_up doesn't work while have active consumers by @codelipenghui in #18283
- [Broker] Support
autoSubscriptionCreation
on topic level by @yuruguo in #17720 - [Broker] Avoid object create in
RedeliveryTracker.getRedeliveryCount
by @lifepuzzlefun in #18352 - [Broker] Remove check ack.getMessageIdsCount() == 1 for cumulative ack by @AnonHxy in #18333
- [Broker] Fix repeated messages of shared streaming dispatcher by @poorbarcode in #18289
- [Broker] Cleanup unused method: isSlowestReader by @lordcheng10 in #18306
- [Broker] Get lowest PositionImpl from NavigableSet by @lifepuzzlefun in #18278
- [Broker] Remove duplicate sendSuccess and sendError in PulsarCommandSender by @lifepuzzlefun in #18250
- [Broker] Cleanup localStore from NamespaceResources by @AnonHxy in #18258
- [Broker] Cleanup NamespaceService by @AnonHxy in #18259
- [Broker] Make CompactedTopicImpl.findStartPointLoop work more efficiently by @poorbarcode in #17976
- [Broker] Do not serialize field bundleStats by @thetumbled in #18150
- [Broker] Implement delayed message index bucket snapshot (create/load) - part2 by @coderzc in #17611
- [Broker] Fix flaky test: PrometheusMetricsTest.testDuplicateMetricTypeDefinitions by @nicoloboschi in #18077
- [Broker] Avoid runtime check hasFilter in EntryFilterSupport by @AnonHxy in #18066
- [Broker] Remove methods no longer used in AdminResource #7 by @Pomelongan in #17969
- [Broker] Delete unused metrics of zk_write_latency and zk_read_latency by @liangyuanpeng in #17505
- [Broker] ServerCnx: log at warning level when topic not found by @michaeljmarshall in #16225
- [Broker] Set log level to
warn
when topic policy reader occurs AlreadyClosedException by @Technoboy- in #17841 - [Broker] Add config to count filtered entries towards rate limits by @michaeljmarshall in #17686
- [Broker] Fix unexpected subscription deletion caused by the cursor last active time not updated in time by @dragonls in #17573
- [Broker] Remove unnecessary variable in PersistentTopic by @poorbarcode in #17511
- [Broker] Make cursor properties support modify single value concurrently. by @coderzc in #17164
- [Broker] Do not log stacktrace for 'Failed to flush mark-delete position' case by @eolivelli in #17432
- [Broker] New bucket based delayed message tracker - interface&config&proto -part 1 by @coderzc in #17344
- [Broker] Refactor reflection method in delayed and service module by @HQebupt in #17347
- [Broker] Remove unnecessary parameters(reusefuture) and related logic by @Pomelongan in #17378
- [Broker] Fix NPE when updating topic properties by @Flowermin in #17352
- [Broker] Refactor reflection method in loadbalance module by @HQebupt in #17313
- [Broker] Make deletePersistence method async in Namespaces by @Pomelongan in #17206
- [Broker] PIP-169: Support split bundle by flow or qps by @lordcheng10 in #16557
- [Broker] Add Maven Modernizer plugin in pulsar-broker and fix violation in
test: broker/admin
by @youzipi in #16993 - [Broker] Remove unused code by @lordcheng10 in #17036
Pulsar IO and Pulsar Functions
- [Functions] Supply download auth params when provided for k8s runtime by @michaeljmarshall in #20144
- [Functions] Make /version return correct version by @michaeljmarshall in #20047
- [Functions] Use AuthorizationServer more in Function Worker API by @michaeljmarshall in #19975
- [Functions] Allow download link with basic auth by @vanhtuan0409 in #19750
- [Functions] Fix k8s merge runtime opts bug by @michaeljmarshall in #19481
- [Functions] Support .nar files without explicit directory entries by @lhotari in #19304
- [Functions] Fix TLS configuration for fn worker to broker if auth disabled by @nicoloboschi in #19290
- [Functions] Support reading config options from file in Function Python Runner by @tpiperatgod in #18951
- [Functions] Support processingGuarantees "EFFECTIVELY_ONCE" in python function by @tpiperatgod in #18929
- [Functions] Typo in method name by @tisonkun in #18844
- [Functions] Support e2e cryption in python instance by @jiangpengcheng in #18738
- [Functions] Support schema in python instance by @jiangpengcheng in #18432
- [Functions] Support SubscriptionPosition in python instance by @jiangpengcheng in #18431
- [Functions] KCA connectors: fix missing runtime dependencies by @nicoloboschi in #18370
- [Functions] Fix function failed to start if no
typeClassName
provided inFunctionDetails
by @freeznet in #18111 - [Functions] Do not delete managed package when deleting function by @jiangpengcheng in #18030
- [Functions] Fix builtin sink transformation on k8s by @cbornet in #18019
- [Functions] JDBC Sink: add a flag to exclude non-declared fields by @nicoloboschi in #18008
- [Functions] Fix the download of builtin Functions by @cbornet in #17877
- [Functions] Fix K8S download function method with auth enabled by @nicoloboschi in #17597
- [Functions] Add admin CLI command to get available built-in functions by @cbornet in #16822
- [Functions] Remove unused code by @cbornet in #16472
- [Connectors] Remove kafka-connect-avro-converter-shaded by @tisonkun in #19468
- [Connectors] Keep new inputSpecs when updating sink configs by @aymkhalil in #19082
- [Connectors] Upgrade Kafka client, connect runtime to 2.8.2 and Confluent version to 6.2.8 by @lhotari in #19010
- [Connectors] Reduce dependencies of pulsar-io-common module by @nicoloboschi in #19000
- [Connectors] Elasticsearch sink: Support loading config from secrets by @alpreu in #18986
- [Connectors] KCA connectors: fix missing runtime dependencies by @nicoloboschi in #18370
- [Connectors] JDBC sinks: implement JDBC Batch API by @nicoloboschi in #18017
- [Connectors] Add option to copy Kafka headers to Pulsar properties by @aymkhalil in #17829
- [Connectors] Upgrade hadoop client to 3.3.3 and 2.10.2 by @codelipenghui in #17727
- [Connectors] Support Transform Function with LocalRunner by @cbornet in #17445
- [Connectors] Fix OutputRecordSinkRecord getValue and getSchema by @cbornet in #17434
- [Connectors] ElasticSearch Sink: add an option to copy key fields into the value by @nicoloboschi in #17117
- [Connectors] Add support for a transform Function in Sinks by @cbornet in #16740
- [Connectors] KCA: handle kafka's logical schemas by @dlg99 in #16485
- [Connectors] Add support for full message synchronization by @shink in #16003
Observability
- [Metrics] Fix the partitioned publisher topic stat aggregation bug by @heesung-sn in #18807
- [Metrics] Fix reporting pulsar_subscription_blocked_on_unacked_messages metric by @aymkhalil in #18621
- [Metrics] Correctly set byte and message out totals per subscription by @pgier in #18451
- [Metrics] Wrong metrics text generated when label_cluster specified by @poorbarcode in #17704
- [Metrics] Remove timestamp from Prometheus metrics by @michaeljmarshall in #17419
- [Metrics] Add metrics for BatchMetadataStore by @tjiuming in #17072
- [Metrics] Add metadata store metrics by @tjiuming in #17041
- [Metrics] PIP-160 Metrics stats of Transaction buffered writer by @poorbarcode in #16758
- [Metrics] Add limitStatsLogging configuration when enabling bookkeeperClientExposeStatsToPrometheus by @TakaHiR07 in #16734
- [Metrics] Ensure prometheus metrics are grouped by type (#8407, #13865) by @marksilcox in #15558
- [Metrics] Add metrics for transaction by @tjiuming in #15140
CLI
- [Pulsar Admin] Use AuthenticationParameters for rest producer by @michaeljmarshall in #20046
- [Pulsar Admin] Use AuthorizationServer more in Function Worker API by @michaeljmarshall in #19975
- [Pulsar Admin] Fix incorrect state replication.connected on API partitioned-topic stat by @poorbarcode in #19942
- [Pulsar Admin] Fix delete tenant by @nodece in #19925
- [Pulsar Admin] Filter pending ack topic while deleting the namespace by @gaoran10 in #19719
- [Pulsar Admin] Fix create-subscription command --subscription description by @yangl in #19591
- [Pulsar Admin] Allow proxy to pass same role for authRole and originalRole by @michaeljmarshall in #19557
- [Pulsar Admin] Fix async method composition in admin client's NamespacesImpl by @lhotari in #19397
- [Pulsar Admin] Make the default value of param --get-subscription-backlog-size of admin API topics stats true by @poorbarcode in #19302
- [Pulsar Admin] Fix race condition while updating partition number by @mattisonchao in #19199
- [Pulsar Admin] Improve partitioned-topic condition evaluation by @gaozhangmin in #19015
- [Pulsar Admin] InternalGetMessageById shouldn't be allowed on partitioned topic by @gaozhangmin in #19013
- [Pulsar Admin] Optimize the logic of internalCreatePartitionedTopic by @Pomelongan in #18666
- [Pulsar Admin] Set authentication when using loadConf in client and admin client by @onobc in #18358
- [Pulsar Admin] Add offload managedLedgerOffloadThreshold RestAPI and CLI tools by @tjiuming in #18218
- [Pulsar Admin] Passing
force
parameter todeleteNamespaceBundle
when deleting namespaces by @coderzc in #18153 - [Pulsar Admin] Returns 4xx error when pulsar-worker-service is disabled and trying to access it by @heesung-sn in #17901
- [Pulsar Admin] Add command to list transaction coordinators by @nicoloboschi in #17522
- [Pulsar Admin] Namespace CLI set-offload-policy's thresholdBytes support negative and 0 by @ethqunzhong in #17502
- [Pulsar Admin] Make setPersistence method async in Namespaces by @Pomelongan in #17421
- [Pulsar Admin] Make
getBundleRange
async by @Technoboy- in #17402 - [Pulsar Admin] Improve
backlogQuota
endpoint to pure async. by @mattisonchao in #17383 - [Pulsar Admin] Improve
replicatorDispacherRate
endpoint to pure async. by @mattisonchao in #17377 - [Pulsar Admin] PulsarAdminBuilderImpl overrides timeout properties passed through config map by @Technoboy- in #17375
- [Pulsar Admin] Fix Npe thrown by splitBundle by @gaozhangmin in #17370
- [Pulsar Admin] Add cmd to remove topic properties by @yuruguo in #17337
- [Pulsar Admin] Add api for update topic properties by @AnonHxy in #17238
- [Pulsar Admin] Make deleteNamesapce api async by @gaozhangmin in #17230
- [Pulsar Admin] Cleanup unused param in provisionPartitionedTopicPath by @AnonHxy in #17156
- [Pulsar Admin] Reduce code duplication in admin client by @andrasbeni in #16377
- [Pulsar Admin] Pulsar Admin: reduce code duplication - part 4 by @eolivelli in #13086
- [Pulsar CLI] Fix Pulsar admin tool is ignoring tls-trust-cert path arg by @rdhabalia in #19696
- [Pulsar CLI] Add read command to pulsar-client-tools by @massakam in #19298
- [Pulsar CLI] Pulsar cli: use return code 1 for general error by @pgier in #18946
- [Pulsar CLI] Pulsar-perf fails on jdk17 by @nicoloboschi in #18806
- [Pulsar CLI] Fix timeout behavior of reader perf by @labuladong in #17882
- [Pulsar CLI] Using separate TLS config on the compactor by @nodece in #17426
- [Client Tool] Pulsar shell: ensure admin client is recycled or disposed by @nicoloboschi in #17619
- [Client Tool] Pulsar-perf produce add possibility to set eventTime on messages by @eolivelli in #17189
- [Client Tool] Pulsar-perf consume, do not fail in case of reading data older than 10 days by @eolivelli in #17160
Others
- [Proxy] Refresh auth data if ProxyLookupRequests by @michaeljmarshall in #20067
- [Proxy] Only create ConnectionPool when needed by @michaeljmarshall in #20062
- [Proxy] Fix connection read timeout handling in Pulsar Proxy by @lhotari in #20014
- [Proxy] ProxyConnection should not call super.exceptionCaught by @michaeljmarshall in #19990
- [Proxy] Remove unnecessary executor callback; use assert by @michaeljmarshall in #19670
- [Proxy] PIP-250: Add proxyVersion to CommandConnect by @michaeljmarshall in #19618
- [Proxy] ProxyWithAuthorizationTest remove SAN from test certs by @michaeljmarshall in #19594
- [Proxy] Allow proxy to pass same role for authRole and originalRole by @michaeljmarshall in #19557
- [Proxy] Fix using wrong client version in pulsar proxy by @RobertIndie in #19540
- [Proxy] Fix JKS TLS transport by @nodece in #19485
- [Proxy] Modify check waitingForPingResponse with volatile (#12615)" by @michaeljmarshall in #19439
- [Proxy] Only go to connecting state once by @michaeljmarshall in #19331
- [Proxy] PIP 97: Implement for ProxyConnection by @michaeljmarshall in #19292
- [Proxy] Remove unused AuthenticationDataSource variable by @michaeljmarshall in #19278
- [Proxy] Use ChannelVoidPromise to avoid useless promise objects creation by @nicoloboschi in #19141
- [Proxy] Prevent DNS reverse lookup when physical address is an IP address by @lhotari in #19028
- [Proxy] Fix logging in shutdown when proxy shutdown by @coderzc in #18622
- [Proxy] Fix refresh client auth by @nodece in #17831
- [Proxy] Update proxy lookup throw exception type by @tuteng in #17600
- [Proxy] Fix producer info logging fails when proxyLogLevel > 0 by @zengguan in #17175
- [Proxy] Support proxy limit maximum connections per IP by @mattisonchao in #17167
- [Proxy] Remove empty else code block when initializing setMetadataStoreUrl by @aloyszhang in #17122
- [Proxy] Use correct address for HAProxyMessage destination by @michaeljmarshall in #16045
- [Schema] Fix delete schema command doc by @congbobo184 in #19411
- [Schema] Fix schema get value doc problem by @congbobo184 in #17740
- [Schema] Fix producer/consume permission can’t get v1/schema by @yuruguo in #16018
Library updates
- Upgrade the BookKeeper dependency to 4.16.1 by @hangc0276 in #20127
- Upgrade snakeyaml version to 2.0 by @Technoboy- in #20085
- Upgrade the RocksDB version to 7.9.2 to keep sync with BookKeeper's RocksDB dependency by @hangc0276 in #20072
- Upgrade Vertx to match BK's version (otherwise BK does not work) by @dlg99 in #20070
- Upgrade Spring dependency to 5.3.26 to fix OWASP Dependency Check by @lhotari in #20029
- Upgrade lombok to 1.8.26 by @merlimat in #19426
- Upgrade to zk 3.8.1 by @dlg99 in #19425
- Upgrade wildfly-elytron (used by debezium) to fix CVE-2022-3143 by @dlg99 in #19333
- Upgrade Netty to 4.1.87.Final by @lhotari in #19417
- Upgrade Spotbugs to a version with JDK 17 compatibility by @lhotari in #19315
- Upgrade kafka client to 3.4.0 to fix CVE-2023-25194 by @massakam in #19527
- Upgrade dependency-check-maven plugin to fix broken OWASP check by @lhotari in #19170
- Upgrade HBase to 2.4.15 by @sekikn in #19249
- Upgrade ASF Maven parent pom version to 29 by @lhotari in #19165
- Upgrade woodstox to 5.4.0 by @nicoloboschi in #19041
- Upgrade scala-library to get rid of CVE-2022-36944 by @nicoloboschi in #18021
- Upgrade jettison to 1.5.3 by @nicoloboschi in #19038
- Upgrade Debezium to 1.9.7 by @dlg99 in #18465
- Upgrade Confluent version to 6.2.8 by @lhotari in #19010
- Upgrade JacksonXML to 2.13.4 by @nicoloboschi in #18020
- Upgrade commons-text to 1.10.0 in the kinesis-sink by @nicoloboschi in #18093
- Upgrade reload4j in file-system offloader by @nicoloboschi in #17716
- Upgrade OpenSSL to version 1.1.1n by @RobertIndie in #17538
- Upgrade to latest docbot action by @maxsxu in #17266
- Upgrade hadoop client to 3.3.3 and 2.10.2 by @codelipenghui in #17727
- Upgrade PrestoSQL to the first Trino version by @tisonkun in #16683