github apache/pulsar v3.0.0

latest releases: v4.0.0, v4.0.0-candidate-1, v3.3.2...
18 months ago

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
  • [Broker] incomplete PIP-180: Shadow Topic, an alternative way to support readonly topic ownership. #16153
  • [Broker] PIP-192: New Pulsar Broker Load Balancer #16691
  • [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 for RocksdbMetadataStore 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 of handleAsync 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 in FunctionDetails 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 to deleteNamespaceBundle 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

Library updates

Don't miss a new pulsar release

NewReleases is sending notifications on new releases.