Skip to content
Open
Changes from 1 commit
Commits
Show all changes
812 commits
Select commit Hold shift + click to select a range
1687244
[improve][offload] Extend the offload policies to allow specifying mo…
zymap Jul 18, 2023
f5553a2
[fix][build] Upgrade PyYaml version to 6.0.1 (#20831)
yaalsn Jul 20, 2023
5d0aa56
[improve] [ws] add cryptoKeyReaderFactoryClassName into the file webs…
poorbarcode Jul 20, 2023
514fa60
[fix][sec] Suppress addressed CVE-2023-2976 in clickhouse-jdbc-0.4.6-…
JooHyukKim Jul 20, 2023
aa4fef2
[fix][broker] Fix direct memory leak by delayed index OutOfDirectMemo…
mattisonchao Jul 20, 2023
ac94296
[improve][broker] Follow up #4196 use `PulsarByteBufAllocator` handle…
mattisonchao Jul 20, 2023
d5f97bf
[improve][broker] Add broker interceptor conf (#20719)
crossoverJie Jul 21, 2023
9b6a123
[fix][broker] Inconsistent behaviour for topic auto_creation (#20843)
mattisonchao Jul 21, 2023
b8e6948
[fix][broker] Broker failed to load v1 namespace resources cache (#20…
rdhabalia Jul 21, 2023
9ccc562
[fix][broker] Pass `bytesToRead` when reading compacted entries (#20850)
coderzc Jul 22, 2023
ebfef6d
[optimize][admin]Enhancing Transaction Buffer Stats and Introducing T…
liangyepianzhou Jul 22, 2023
54f0ca1
[cleanup][io] Cleanup Kafka connector (#20721)
cbornet Jul 22, 2023
e7ae9e2
[fix][broker] Fix potential OOM due to client use sasl authentication…
315157973 Jul 23, 2023
3c82d27
[fix][broker] Fix the built-in admin failed to delete a topic with a …
BewareMyPower Jul 23, 2023
9256407
[improve][broker] Avoid print redirect exception log when get list fr…
Demogorgon314 Jul 23, 2023
4ccb5bb
[improve][broker] Add the MessageExpirer interface to make code clear…
BewareMyPower Jul 23, 2023
69d7a2b
[improve][broker] Add broker filter sync method back to guarantee the…
Demogorgon314 Jul 24, 2023
563f929
[fix][broker] Fix inconsensus namespace policies by `getPoliciesIfCac…
mattisonchao Jul 25, 2023
3f63768
[fix][broker] Avoid infinite bundle unloading (#20822)
Demogorgon314 Jul 25, 2023
b12dbe7
[improve][cli] Better error message for pulsar-admin schema upload (#…
tisonkun Jul 26, 2023
e55ed58
[improve][broker] Add annotation for topic compaction strategy (#20858)
Demogorgon314 Jul 26, 2023
362c4f4
[fix][broker] Gracefully shutdown does not work with admin cli in sta…
JooHyukKim Jul 26, 2023
ee47b92
[improve][ci] Add "pip" into the scope of the pull request title chec…
poorbarcode Jul 26, 2023
ffb9d30
[fix][doc] Fix links to find older PIPs (#20882)
asafm Jul 26, 2023
a0372f4
[fix][broker] Fix IndexOutOfBoundsException in the CompactedTopicUtil…
coderzc Jul 26, 2023
5d72615
[pip][design] PIP-279: Reformat property in generateResponseWithEntry…
StevenLuMT Jul 28, 2023
9be0b52
[fix][broker] In replication scenario, remote consumer could not be r…
poorbarcode Jul 28, 2023
ca01447
[improve][txn]Add log when can't send TcClientConnectRequest to broke…
liangyepianzhou Jul 31, 2023
001b134
[improve][sql] Fix the wrong format of the logs (#20907)
crossoverJie Jul 31, 2023
4349e9f
[fix][broker] fix MessageDeduplication throw NPE when enable broker d…
lifepuzzlefun Aug 1, 2023
782e91f
[fix] [ml] fix discontinuous ledger deletion (#20898)
poorbarcode Aug 1, 2023
c0f23eb
[fix][build] Fix generating javadoc issue (#20922)
Technoboy- Aug 3, 2023
69298da
[fix][client] Fix perf-producer get OOM with high publish latency (#2…
codelipenghui Aug 3, 2023
2ab184e
[improve][doc] improve the wiki Pulsar Improvement Proposal (PIP) (#2…
poorbarcode Aug 4, 2023
9862884
[fix][test] Fix flaky test `testCloseTransactionBufferWhenTimeout` an…
Technoboy- Aug 11, 2023
e41883e
[fix][broker]Check that the super user role is in the MultiRolesToken…
tuteng Aug 11, 2023
d9538ea
[improve][broker] Improve performance of `StatsOutputStream` by using…
JooHyukKim Aug 12, 2023
64cd753
[improve][bk] Improve getIsolationGroup by avoid creating arrayList (…
AnonHxy Aug 12, 2023
499eef6
[feat][build] Use git-archive to generate source release (#20981)
tisonkun Aug 13, 2023
980dfc8
[improve][cli] Add some checks for topic-level `setOffloadPolicies` (…
Technoboy- Aug 14, 2023
bafc827
[fix][broker] Fix http error message of Bookie rack placement config …
1Jack2 Aug 14, 2023
75d4d82
[cleanup][admin] Do not print full stacktrace when get partitioned me…
Demogorgon314 Aug 14, 2023
63d9eaf
[fix][broker] Fix incorrect number of read compacted entries (#20978)
coderzc Aug 14, 2023
3ab420c
[fix][broker] Fix message loss during topic compaction (#20980)
coderzc Aug 14, 2023
9127d89
[pip][design] PIP-281: Add notifyError method on PushSource (#20807)
shibd Aug 15, 2023
d6734b7
[fix][io] Update test certs for Elasticsearch (#21001)
michaeljmarshall Aug 16, 2023
d014713
[pip][design] PIP 289: Secure Pulsar Connector Configuration (#20903)
michaeljmarshall Aug 16, 2023
bfde0de
[feat][io] Support configuration secret interpolation (#20901)
michaeljmarshall Aug 16, 2023
0cb1c78
[fix][broker] Fix get outdated compactedTopicContext after compaction…
coderzc Aug 16, 2023
4a9fec6
[fix][broker] Fix consumers are not redirected to migrated cluster (#…
vineeth1995 Aug 18, 2023
3160b76
[fix][test] fix flaky testSplitBundleAdminApi (#21019)
heesung-sohn Aug 18, 2023
4facdad
[fix][broker] Fix incorrect unack msk count when dup ack a message (#…
Technoboy- Aug 18, 2023
0daa46d
[fix][build] Lombok 1.8.28 (#21007)
merlimat Aug 19, 2023
d06cda6
[improve][proxy] Support disabling metrics endpoint (#21031)
michaeljmarshall Aug 19, 2023
00ca6aa
[fix][client] Fix RawReader hasMessageAvailable returns true when no …
Technoboy- Aug 20, 2023
7c96a36
[fix] [admin] Fix get topic stats fail if a subscription catch up con…
poorbarcode Aug 20, 2023
deeb8a2
[fix][meta] Fix deadlock in AutoRecovery. (#21010)
horizonzy Aug 21, 2023
976a580
[improve][meta] Improve fault tolerance of blocking calls by supporti…
mattisonchao Aug 21, 2023
f2f0bf4
[fix][broker] fix ModularLoadManagerImpl always delete active bundle-…
lifepuzzlefun Aug 21, 2023
dbbaddb
[improve][pip] PIP-293: Delete config `disableBrokerInterceptors` (#2…
Technoboy- Aug 21, 2023
43cd86d
[fix][broker] Fix compaction subscription delete by inactive subscrip…
lifepuzzlefun Aug 21, 2023
3eb9610
[fix] [doc] Update BookKeeper metadataServiceUri doc (#20909)
hangc0276 Aug 21, 2023
0d25e9a
[improve][broker] PIP-293: Delete config disableBrokerInterceptors (…
Technoboy- Aug 21, 2023
ee91edc
[improve][client] Add backoff for `seek` (#20963)
Technoboy- Aug 21, 2023
4634311
[improve][io] Improve kinesis connector config. (#21004)
shibd Aug 22, 2023
9e2195c
[fix][broker] Fix can't stop phase-two of compaction even though mess…
coderzc Aug 22, 2023
d3a6df3
[fix][broker] Fix potential case cause retention policy not working o…
Technoboy- Aug 22, 2023
c1b0454
[fix][broker]Delete subscription and disconnect replicators after top…
vineeth1995 Aug 22, 2023
e951cd0
[improve][broker] Removing webURL check null (#21043)
AnonHxy Aug 23, 2023
4f9b199
[refactor][cli] [PIP-280] Create new pulsar-cli-utils module (#20782)
JooHyukKim Aug 23, 2023
faa2d3d
[improve] [pip] PIP-290 Provide a way to implement WSS E2E encryption…
poorbarcode Aug 23, 2023
30073db
[fix] [broker] Producer is blocked on creation because backlog exceed…
heesung-sohn Aug 24, 2023
c05954e
[fix][broker] Use MessageDigest.isEqual when comparing digests (#21061)
Crispy-fried-chicken Aug 24, 2023
07eef59
[feat][ws] PIP-290 Make WSS support E2E encryption (#20958)
poorbarcode Aug 25, 2023
db20035
[fix] [bk] Correctct the bookie info after ZK client is reconnected (…
poorbarcode Aug 25, 2023
e0c481e
[fix][broker] Fix typos lister -> listener (#21068)
Aug 25, 2023
bb9c9b4
[fix][broker] Make sure all inflight writes have finished before com…
coderzc Aug 28, 2023
671cfb4
[fix][misc] Bump broker okio version to 3.4.0 (#21064)
mattisonchao Aug 28, 2023
d099ac4
[improve] [broker] Improve cache handling for partitioned topic metad…
poorbarcode Aug 28, 2023
6ff83b6
[fix][misc] Bump GRPC version to 1.55.3 to fix CVE (#21057)
mattisonchao Aug 29, 2023
eb2e3a2
[fix][client] Fix consumer can't consume resent chunked messages (#21…
RobertIndie Aug 29, 2023
eded9f1
[improve][doc] Add stronger Security Policy Language to README (#21066)
dave2wave Aug 30, 2023
dab5b2f
[fix][build] Upgrade Guava to 32.1.2-jre (#21090)
Aug 30, 2023
53ffe81
[refactor][cli] PIP-280 Add pulsar-cli-utils to core-modules profile …
JooHyukKim Aug 30, 2023
99e3fea
[fix][client] Fix cannot retry chunk messages and send to DLQ (#21048)
RobertIndie Aug 30, 2023
4a87c64
[fix] [broker] remove bundle-data in local metadata store. (#21078)
thetumbled Aug 31, 2023
b0b13bc
[fix][broker]Fix chunked messages will be filtered by duplicating (#2…
liangyepianzhou Aug 31, 2023
f1c8684
[fix][io] Allow setting sourceType in config file (#19836)
alpreu Aug 31, 2023
ba0f2ba
[fix][auto-recovery] Improve to the ReplicaitonWorker performance by …
horizonzy Aug 31, 2023
f35d3e0
[fix] [broker] consider iowait as idle. (#19110)
thetumbled Aug 31, 2023
eedbdb1
[fix][client] Fix logging problem in pulsar client (#21094)
Shawyeok Aug 31, 2023
7ecb93c
[fix][io] Fix --retain[-key]-ordering not working error for sink (#21…
jiangpengcheng Aug 31, 2023
64d006b
[fix][fn] Fix ProducerConfig cannot update error (#21037)
jiangpengcheng Aug 31, 2023
843b830
[improve] [ml] Persist mark deleted ops to ZK if create cursor ledger…
poorbarcode Aug 31, 2023
0956def
[improve][pip] PIP-264: Enhanced OTel-based metric system (#21080)
asafm Sep 1, 2023
835e9b6
[improve][broker] Make read compacted entries support maxReadSizeByte…
coderzc Sep 1, 2023
a25125d
[improve][pip] Implement getLastMessageIds API for Reader (#21052)
liangyepianzhou Sep 1, 2023
927d1b2
[fix][broker] Fix unsubscribe non-durable subscription error (#21099)
Technoboy- Sep 1, 2023
a1405ea
[fix][broker] Fix deleting topic not delete the related topic policy …
Technoboy- Sep 1, 2023
cb24ab0
[improve][pip] Replace reader with table view in the topic policy ser…
mattisonchao Sep 3, 2023
59a8e72
[fix][client] Avoid ack hole for chunk message (#21101)
liangyepianzhou Sep 4, 2023
e59c850
[fix][broker] Avoid splitting one batch message into two entries in S…
Demogorgon314 Sep 4, 2023
2921a41
[fix][broker] Fix write duplicate entries into the compacted ledger a…
coderzc Sep 4, 2023
b26ee8a
[fix][broker] Cleanup correctly heartbeat bundle ownership when handl…
Demogorgon314 Sep 4, 2023
abd7bfa
[fix] [broker] Fix isolated group not work problem. (#21096)
horizonzy Sep 5, 2023
35bb021
[fix][client] Fix repeat consume when using n-ack and batched message…
poorbarcode Sep 5, 2023
29addaa
[fix][fn] Fix the --batch-builder not working error for functions (#2…
jiangpengcheng Sep 5, 2023
c675a3d
[fix][broker] revert remove duplicate topics name when deleteNamespac…
TakaHiR07 Sep 5, 2023
674c52a
[fix][proxy] Fix Proxy 502 gateway error when it is configured with K…
Apurva007 Sep 5, 2023
209f222
[cleanup][misc] Delete .github/ISSUE_TEMPLATE/pip.md (#21120)
asafm Sep 6, 2023
88231f7
[improve][pip] PIP-297: Support terminating Function & Connector with…
RobertIndie Sep 6, 2023
dfc7bac
[improve] [broker] Improve logs for troubleshooting (#21141)
poorbarcode Sep 6, 2023
3bbd5a3
[fix][broker] Fix web tls url null cause NPE (#21137)
Technoboy- Sep 7, 2023
d890432
[improve][pip] PIP-277: Add `current` option in the Clusters list cmd…
Technoboy- Sep 7, 2023
3cb7926
[fix][test]Flaky test testMaxPendingChunkMessages (#21103)
liangyepianzhou Sep 7, 2023
d1f8f96
[improve][cli] Add current option in the Clusters list cmd (#21139)
Technoboy- Sep 7, 2023
e5cf216
[cleanup][build] Bumped version to 3.2.0-SNAPSHOT (#21147)
Technoboy- Sep 8, 2023
e9d1d99
[improve] [doc] Add doc for customized util class (#21110)
thetumbled Sep 9, 2023
9f12ace
[improve][broker] Upgrade bookkeeper to 4.16.3 (#21146)
zymap Sep 11, 2023
6e8bf93
[fix][broker] Fix unack count when mixing non batch index and batch i…
erobot Sep 11, 2023
550476f
[improve] [bookie] Enable forceAllowCompaction by default (#21130)
hangc0276 Sep 11, 2023
f2b9a3f
[fix] [client] fix same producer/consumer use more than one connectio…
poorbarcode Sep 11, 2023
fc86f3b
[fix][broker] fix UniformLoadShedder seleet wrong overloadbroker and …
aloyszhang Sep 12, 2023
d00a35e
[improve][client] Implement getLastMessageIds API for Reader (#21051)
liangyepianzhou Sep 12, 2023
b13407d
[cleanup][monitor] Remove metric `topic_load_times` (#21167)
Technoboy- Sep 12, 2023
65706c6
[improve] [broker] improve read entry error log for troubleshooting (…
poorbarcode Sep 13, 2023
af20a8a
[fix] [bookie] Fix RocksDB configuration (#21157)
hangc0276 Sep 13, 2023
bda16b6
[fix] [broker] Make specified producer could override the previous on…
poorbarcode Sep 13, 2023
5918efd
[fix][broker] Fix missing generate some metrics in BrokerOperabilityM…
Technoboy- Sep 14, 2023
39f2d1d
[improve] [bk] Update the document of diskUsageWarnThreshold (#21142)
hangc0276 Sep 14, 2023
1ac19fc
[improve][io] PIP-297: Support terminating Function & Connector with …
RobertIndie Sep 14, 2023
b10eed6
[improve] [broker] disable balancing based on DirectMemory. (#21168)
thetumbled Sep 14, 2023
b8ebfe3
[improve][ci] Protect branch-3.1 (#21185)
Technoboy- Sep 15, 2023
2aa8c3b
[fix][broker] fix bug caused by optimistic locking (#18390)
thetumbled Sep 15, 2023
97723eb
[fix][auto-recovery] Fix metadata store deadlock due to BookkeeperInt…
horizonzy Sep 17, 2023
4fb5203
[improve] [bookie] Change flushEntrylogBytes default value from 256MB…
hangc0276 Sep 17, 2023
62a88f9
[fix][doc] fix doc comment for subscriptionType (#20987)
chenhongSZ Sep 17, 2023
1363777
[fix][broker] Fix PulsarService.getLookupServiceAddress returns wron…
Technoboy- Sep 18, 2023
8ff51eb
[fix] [auto-recovery] Fix PulsarLedgerUnderreplicationManager notify …
horizonzy Sep 18, 2023
eefc517
[fix] [auto-recovery] Fix pulsar ledger auditor dead lock problem. (#…
horizonzy Sep 19, 2023
1b7084b
[fix][broker] Delete unused param (#20866)
zhanghaou Sep 20, 2023
e5b0f17
[improve][proxy] When adding new brokers resolve the DNS name more qu…
frankjkelly Sep 20, 2023
66271e3
[fix][broker] replicator leak when removeReplicator in NonPersistentT…
hanmz Sep 21, 2023
d6c3fa4
[improve] [proxy] Not close the socket if lookup failed caused by too…
poorbarcode Sep 21, 2023
be4ab66
[improve] [client] Merge lookup requests for the same topic (#21232)
poorbarcode Sep 22, 2023
be4bcac
[fix] [broker] fix flaky test PatternTopicsConsumerImplTest (#21222)
poorbarcode Sep 23, 2023
c632431
[fix][broker] Fixed reset for AggregatedNamespaceStats (#21225)
asafm Sep 24, 2023
2a27e7b
[fix][broker]Fixed produce and consume when anonymousUserRole enabled…
tuteng Sep 24, 2023
5c9b72a
[improve][pip] PIP-301: Introduce LoadBalanceResources to unify the l…
AnonHxy Sep 25, 2023
944c9a0
[fix][fn] fix functions_log4j2.xml delete strategy config (#21215)
hanmz Sep 25, 2023
dcf1ea1
[improve][io] Use `SinkContext.fatal` in elastic search connector (#2…
RobertIndie Sep 25, 2023
48d5b9d
[improve][pip] PIP-286: Make the TopicCompactionService to support fi…
coderzc Sep 26, 2023
afc9244
[fix][broker] Fix inconsistent topic policy (#21231)
mattisonchao Sep 26, 2023
7a3f304
[fix][broker] Miss headersAndPayload and messageIdData in MessagePubl…
kecona Sep 27, 2023
0b32b17
[fix][txn] fix the consumer stuck due to deduplicated messages in pen…
hrzzzz Sep 27, 2023
09a1720
[improve] [broker] Not close the socket if lookup failed caused by bu…
poorbarcode Sep 27, 2023
9061d8b
[improve] [auto-recovery] Migrate the replication testing from BookKe…
horizonzy Sep 28, 2023
6d82b09
[fix] [client] fix reader.hasMessageAvailable return false when incom…
poorbarcode Sep 28, 2023
8485d68
[improve] [broker] Print warn log if ssl handshake error & print ledg…
poorbarcode Sep 28, 2023
1bf7371
[fix][sec] Add OWASP Dependency Check suppressions (#21281)
lhotari Sep 30, 2023
682eb36
[fix][build] Upgrade Lombok to 1.18.30 to support compiling with JDK2…
lhotari Sep 30, 2023
6bdcfeb
[fix][sec] Upgrade Jetty to address CVEs (#21279)
lhotari Oct 3, 2023
07f4eb3
[improve][misc] Upgrade Netty to 4.1.99.Final (#21277)
lhotari Oct 3, 2023
643428b
[fix][sec] Upgrade snappy-java to 1.1.10.5 (#21280)
lhotari Oct 3, 2023
70d086f
[fix][ml] Fix thread safe issue with RangeCache.put and RangeCache.cl…
lhotari Oct 7, 2023
dbb1577
[fix][test]Fix flaky test because the too short receive time (#21273)
liangyepianzhou Oct 7, 2023
d9ebaf5
[fix][broker] rackaware policy is ineffective when delete zk rack inf…
TakaHiR07 Oct 7, 2023
f85e0dc
[fix][broker] Fix lookup heartbeat and sla namespace bundle when usin…
Demogorgon314 Oct 8, 2023
4ee5cd7
[fix] [ml] Reader can set read-pos to a deleted ledger (#21248)
poorbarcode Oct 8, 2023
9ab7417
[fix] [metadata] Fix zookeeper related flacky test (#21310)
horizonzy Oct 8, 2023
bbdc173
[refactor][broker] PIP-301 Part-1: Add BundleDataResources (#21119)
AnonHxy Oct 8, 2023
ca77982
[fix] [ml] fix wrong msg backlog of non-durable cursor after trim led…
poorbarcode Oct 8, 2023
8c70943
[feat][sql] Support UUID for json and avro (#21267)
liangyepianzhou Oct 9, 2023
8438e43
[fix][test] Move NarUnpackerTest to flaky group (#21316)
nodece Oct 9, 2023
e76a86e
[fix][test] Fix flaky test NarUnpackerTest (#21328)
lhotari Oct 9, 2023
66c5e1f
Revert "[fix][broker] Miss headersAndPayload and messageIdData in Mes…
codelipenghui Oct 9, 2023
c883f50
[fix][test] Fix flaky CompactionTest.testDispatcherMaxReadSizeBytes (…
lhotari Oct 9, 2023
16199d2
[fix][test] Fix flaky OneWayReplicatorTest.testReplicatorProducerStat…
lhotari Oct 9, 2023
fcc123d
[fix][bk] Fix the var name for IsolationGroups (#21320)
AnonHxy Oct 9, 2023
9449ae4
[improve][offload] Avoid implementation details leak on getOffloadPol…
tisonkun Oct 10, 2023
c35524d
[fix][test] Fix flaky AdminApiMaxUnackedMessagesTest.testMaxUnackedMe…
lhotari Oct 10, 2023
903e223
[feat][cli] Add command line option for configuring the memory limit …
JooHyukKim Oct 10, 2023
8420420
[fix][sec] Fix MultiRoles token provider when using anonymous clients…
merlimat Oct 10, 2023
61a7adf
[fix] [bk-client] Fix bk client MinNumRacksPerWriteQuorum and Enforc…
horizonzy Oct 11, 2023
eb9fa63
[fix][ml] Make mlOwnershipChecker asynchronous so that it doesn't blo…
lhotari Oct 11, 2023
aecdb03
[improve][broker] use ConcurrentHashMap in ServiceUnitStateChannel an…
heesung-sohn Oct 11, 2023
1a352f1
[improve] [pip] PIP-299: Stop dispatch messages if the individual ack…
poorbarcode Oct 12, 2023
421c98a
[fix][ci] Fix docker image building by releasing more disk space befo…
lhotari Oct 14, 2023
d6a56ad
[improve][broker] Optimize and clean up aggregation of topic stats (#…
lhotari Oct 14, 2023
c8183e7
[feat] [broker] PIP-188 Add support to auto create topic resources in…
rdhabalia Oct 14, 2023
a5f4c1e
[fix][broker] make closing producer thread-safe while updating recent…
rdhabalia Oct 14, 2023
d09642c
[fix][client] fix producer/consumer perform lookup for migrated topic…
rdhabalia Oct 14, 2023
a10564d
[fix][broker]Support to migrate topics from blue to green cluster pe…
vraulji567 Oct 16, 2023
a7acdf6
[refactor][cli][PIP-280] Refactor `pulsar-client-tools` module (#20764)
JooHyukKim Oct 16, 2023
39235ed
[fix][test] Fix a resource leak in ClusterMigrationTest (#21366)
lhotari Oct 16, 2023
e088411
[fix][broker] Fix avoid creating new topic after migration is started…
rdhabalia Oct 16, 2023
689976b
[fix][broker] Fix race condition of replication cluster connection du…
rdhabalia Oct 16, 2023
f5222d6
[fix][sec] Bump avro version to 1.11.3 for CVE-2023-39410 (#21341)
tisonkun Oct 17, 2023
e6cd11f
[fix][test] Fix some resource leaks in compaction tests (#21374)
lhotari Oct 17, 2023
ffc083b
[fix][test] Fix resource leaks with Pulsar Functions tests (#21378)
lhotari Oct 17, 2023
cb7c98a
[fix][test] Fix resource leak in TransactionCoordinatorClientTest (#2…
lhotari Oct 17, 2023
de8f543
[fix][test] Fix resource leak in PulsarServiceTest (#21386)
lhotari Oct 18, 2023
da7e545
[fix][test] Cleanup cached executors in tests (#21383)
lhotari Oct 18, 2023
602478f
[fix][test] Cleanup test resources in pulsar-client module (#21382)
lhotari Oct 18, 2023
271906d
[improve][ci] Upgrade Gradle Enterprise Maven extension (#21384)
lhotari Oct 18, 2023
6681d33
[fix][test] Fix resource leak in AdminApiTenantTest (#21387)
lhotari Oct 18, 2023
59422be
[improve][pip]PIP-307: Optimize Bundle Unload(Transfer) Protocol for …
heesung-sohn Oct 18, 2023
1b2a991
[improve][client] Add `REAL_SUBSCRIPTION` when produces msg to DLQ (#…
Technoboy- Oct 18, 2023
187e0cf
[fix][fn] Make python install dependencies from requirements.txt (#20…
jiangpengcheng Oct 18, 2023
2ff1b8c
[improve][pip] PIP-302 Introduce refreshAsync API for TableView (#21271)
liangyepianzhou Oct 18, 2023
03915eb
[fix][doc] Fix typos in doc for Validator class (#21323)
hanmz Oct 18, 2023
9b643c8
[fix][doc] Fix typos in doc for broker.conf (#21322)
hanmz Oct 18, 2023
b1bca56
[improve][broker][PIP-286] Make the TopicCompactionService to support…
coderzc Oct 18, 2023
a9d5d25
[improve][build] Upgrade Jacoco version to 0.8.11 to support Java 21 …
lhotari Oct 18, 2023
e2c6c08
[improve][ci] Add new CI unit test group "Broker Group 4" with cluste…
lhotari Oct 18, 2023
5af821d
[improve][build] Upgrade spotbugs maven plugin version for Java 21 co…
lhotari Oct 18, 2023
c8a2f49
[fix][broker] Fix heartbeat namespace create transaction internal top…
TakaHiR07 Oct 19, 2023
8315bf8
[improve][test] Upgrade Mockito to 5.6.0 for Java 21 compatibility (#…
lhotari Oct 19, 2023
700a29d
[fix][broker] Fix heartbeat namespace create event topic and cannot d…
TakaHiR07 Oct 19, 2023
ecd40e4
[fix][broker] Fix unload operation stuck when use ExtensibleLoadManag…
Demogorgon314 Oct 19, 2023
22fd8c2
[fix][sec] Upgrade Jetty to 9.4.53 to address CVE-2023-44487 (#21395)
lhotari Oct 19, 2023
aae6c71
[fix][sec] Upgrade Netty to 4.1.100 to address CVE-2023-44487 (#21397)
lhotari Oct 19, 2023
e5120ec
[fix][sec] Upgrade Zookeeper to 3.8.3 to address CVE-2023-44981 (#21398)
lhotari Oct 19, 2023
b6a593c
[fix][broker] Fix typos in Subscription interface (#21321)
hanmz Oct 19, 2023
772f16c
[improve][ci] Parameterize CI build so that Java 21 can be selected f…
lhotari Oct 20, 2023
0e9bb8a
[improve][ci] Schedule daily Pulsar CI build with Java 21 (#21410)
lhotari Oct 21, 2023
30d59e3
[refactor][broker ] PIP-301 Part-2: Add BrokerTimeAverageDataResource…
AnonHxy Oct 23, 2023
e3debb9
[fix][client] Fix typos in AuthenticationDataProvider interface (#21404)
hanmz Oct 23, 2023
e16671f
[fix][doc] Fix typos in TransactionBuilderImpl class (#21405)
hanmz Oct 23, 2023
a0f8b0d
[fix][test] Fix LocalBookkeeperEnsemble resource leak in tests (#21407)
lhotari Oct 23, 2023
bcfc388
[fix][test] Close admin clients before replacing in tests (#21424)
lhotari Oct 24, 2023
6518e4f
[improve][test] Fix test retries for tests that don't call internalSe…
lhotari Oct 24, 2023
cad4e75
[fix][test] Fix thread leaks in tests by closing executors properly (…
lhotari Oct 24, 2023
618aede
[improve] [pip] PIP-298 Consumer supports specifying consumption isol…
hzh0425 Oct 24, 2023
c702be1
[improve][pip] PIP-307: Support subscribing multi topics for WebSocke…
Technoboy- Oct 24, 2023
c6704df
[fix][test] Fix thread leaks in Managed Ledger tests and remove dupli…
lhotari Oct 24, 2023
fe2d61d
[fix][proxy] Move status endpoint out of auth coverage (#21428)
mattisonchao Oct 24, 2023
defeaed
[fix][test] Close metadata stores in MultiBrokerTestZKBaseTests (#21436)
lhotari Oct 24, 2023
6947b7f
[improve][pip] PIP-305: Customize DNS servers to use for Pulsar Clien…
diegosalvi Oct 24, 2023
25c662d
[improve][client] Add a way to configure which DNS use (#21227)
diegosalvi Oct 24, 2023
789d284
[fix][broker] Allow broker deployment in heterogeneous hw config clus…
rdhabalia Oct 24, 2023
9a369be
[improve][broker] Improve error messages when updating partition coun…
alpreu Oct 25, 2023
3ebb855
[improve][pip] Add title in PIP template (#21437)
tisonkun Oct 25, 2023
04d1225
[feat] [broker] PIP-188 Fix cluster migration state store into local …
rdhabalia Oct 25, 2023
d3216d2
[fix][broker] Ignore individual acknowledgment for CompactorSubscript…
coderzc Oct 25, 2023
bd3de15
[fix][broker] Intercept REDELIVER_UNACKNOWLEDGED_MESSAGES command (#2…
kecona Oct 25, 2023
8056987
[fix][broker] Fix MultiRoles token provider NPE when using anonymous …
Technoboy- Oct 25, 2023
3a9f99f
[feat] [broker] PIP-188 Fix cluster migration state store into local …
rdhabalia Oct 25, 2023
5e16ecf
[fix][test] Fix resource leaks in LoadBalancerTest (#21443)
lhotari Oct 26, 2023
867c6ef
Merge branch 'master' into issue/20753/gracefulshutdown
labuladong Oct 26, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[improve] [pip] PIP-299: Stop dispatch messages if the individual ack…
  • Loading branch information
poorbarcode authored Oct 12, 2023
commit 1a352f178590a210a9200dfee135089155c2f168
81 changes: 81 additions & 0 deletions pip/pip-299.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Background knowledge

The config `managedLedgerMaxUnackedRangesToPersist`

Indicates the number of `acknowledgment holes` that are going to be persistently stored. When acknowledging out of order, a consumer will leave holes that are supposed to be quickly filled by acking all the messages. The information of which messages are acknowledged is persisted by compressing in `ranges` of messages that were acknowledged. After the maximum number of ranges is reached, the information will only be tracked in memory, and messages will be redelivered in case of crashes.

The cursor metadata contains the following three data:
- Subscription properties(Usually, this is small); this data part only persists to the ZK node.
- The last sequence ID of each producer. It only exists for the cursor `pulsar.dedup`. If a topic has many, many producers, this part of the data will be large. See [PIP-6:-Guaranteed-Message-Deduplication](https://github.com/apache/pulsar/wiki/PIP-6:-Guaranteed-Message-Deduplication) for more details.
- Individual Deleted Messages(including the acknowledgment of batched messages). This part of the data occupies most of the cursor metadata's space, which is the focus of this proposal.

Differ with Kafka: Pulsar supports [individual acknowledgment](https://pulsar.apache.org/docs/2.11.x/concepts-messaging/#acknowledgment) (just like ack `{pos-1, pos-3, pos-5}`), so instead of a pointer(acknowledged on the left and un-acknowledged on the right), Pulsar needs to persist the acknowledgment state of each message, we call these records `Individual Deleted Messages.`

The current persistence mechanism of the cursor metadata(including `Individual Deleted Messages`) works like this:
1. Write the data of cursor metadata(including `Individual Deleted Messages`) to BK in one Entry; by default, the maximum size of the Entry is 5MB.
2. Write the data of cursor metadata(optional to include `Individual Deleted Messages`) to the Metadata Store(such as ZK) if BK-Write fails; data of a Metadata Store Node that is less than 10MB is recommended. Since writing large chunks of data to the Metadata Store frequently makes the Metadata Store work unstable, this is only a backstop measure.

Is 5MB enough? `Individual Deleted Messages` consists of Position_Rang(each Position_Rang occupies 32 bytes; the implementation will not be explained in this proposal). This means that the Broker can persist `5m / 32bytes` number of Position_Rang for each Subscription, and there is an additional compression mechanism at work, so it is sufficient for almost all scenarios except the following three scenarios:
- Client Miss Acknowledges: Clients receive many messages, and ack some of them, the rest still need to be acknowledged due to errors or other reasons. As time goes on, more and more records will be staying there.
- Delay Messages: Long-delayed and short-delayed messages are mixed, with only the short-delayed message successfully consumed and the long-delayed message not delivered. As time goes on, more and more records will be staying there.
- Large Number of Consumers: If the number of consumers is large and each has some discrete ack records, all add up to a large number.
- Large Number of Producers: If the number of producers is large, there might be a large data of Last Sequence ID to persist. This scenario only exists on the `pulsar.dedup` cursor.

The config `managedLedgerMaxUnackedRangesToPersist`
If the cursor metadata is too large to persist, the Broker will persist only part of the data according to the following priorities.
- Subscription Properties. This part can't be split up; persist will fail if this part is too large to persist.
- Last sequence ID of producers. This part can't be split up; persist will fail if this part is too large to persist.
- Individual Deleted Message. If it is too large, only one part persists, and then the other part is maintained only in memory

# Motivation

Since the frequent persistence of `Individual Deleted Messages` will magnify the amount of BK Written and increase the latency of ack-response, the Broker does not immediately persist it when receiving a consumer's acknowledgment but persists it regularly.

The data of cursor metadata is recommended to be less than 5MB; if a subscription's `Individual Deleted Messages` data is too large to persist, as the program grows for a long time, there will be more and more non-persistent data. Eventually, there will be an unacceptable amount of repeated consumption of messages when the Broker restarts.

# Goal

## In Scope

To avoid repeated consumption due to the cursor metadata being too large to persist.

## Out of Scope

This proposal will not care about this scenario: if so many producers make the metadata of cursor `pulsar.dedup` cannot persist, the task `Take Deduplication Snapshot` will be in vain due to the inability to persist.

# High-Level Design

Provide a new config named `dispatcherPauseOnAckStatePersistentEnabled`(default value is `false`) for a new feature: stop dispatch messages to clients when reaching the limitation `managedLedgerMaxUnackedRangesToPersist`.
- If the user does not care about that Individual Deleted Messages can not be fully persistent, resulting in a large number of repeated message consumption, then it can be set to `false`.
- If the user cares about repeated consumption, at can accept a decline in consumption speed when cursor metadata is too large to persist, it can be set to `true`.


# Detailed Design
### Public API

**broker.conf**
```
/**
* After enabling this feature, Pulsar will stop delivery messages to clients if the cursor metadata is too large to persist, it will help to reduce the duplicates caused by the ack state that can not be fully persistent. Default "false".
*/
boolean dispatcherPauseOnAckStatePersistentEnabled;
```

**SubscriptionStats**
```java
/**
* After enabling the feature "dispatcherPauseOnAckStatePersistentEnabled", return "true" if the cursor metadata is too large to persist, else return "false".
* Always return "false" if disabled the feature "dispatcherPauseOnAckStatePersistentEnabled".
*/
boolean isBlockedOnAckStatePersistent();
```

## Design & Implementation Details

Cache the range count of the Individual Deleted Messages in the memory when doing persist cursor metadata to BK. Stuck delivery messages to clients if reaching the limitation `managedLedgerMaxUnackedRangesToPersist`.

Since the cache will not be updated in time, the actual count will decrease when clients acknowledge messages(but it does not persist immediately, so the cached value does not update immediately), the cached value is an estimated value.

# Metrics & Alert

Nothing.