Skip to main content

StreamNative Weekly Release Notes v4.1.0.0

General Changes

AoP

Add qpid dependencies Add Jiwei Guo as code owner of AoP Add back qpid-test-utils package Use Github package wildcard repository url [test] fix mock zookeeper change Upgrade artifact github action version Fix SN bom version Fix build script Use SN bom remove useless check in tests Fix the publish latency unit

MoP

Fix MQTT message error handling and improve connection responses Add support MQTT5 features related doc Add Cong to the codeowners Fix subscription authorization PREFIX mode Fix listener error fix topic authentication issue Fix connection event error Fix user properties lost when enable authorization Remove jacoco upload jobs Use Github package wildcard repository url Fix proxy conn multi broker Fix mock zookeeper change Upgrade artifact github action version Fix build script Use SN bom Remove yahoo dependency MoP accept ws proxy connections Add mop proxy admin part Fix mop producer publish metric Make the proxy adapter worker thread configrable Fix the auth data is NPE error Fix broker enable dedup cause client publish failed Seperate proxy and broker a single module Refactor MoP to prepare for split Proxy to seperate module

KoP

Fix Kafka Connect’s topic replay loop might be stuck when all messages have been compacted out Pin avro version to 1.12.0 for tests Fix possible deadlock of system topic access due to blocking call when holding the lock Fix incorrect ListOffsets result on a compacted topic Add partition name to error logs in PartitionLog and UrsaPartitionLog classes Fix retention.ms may overflow when converting to the Pulsar retention policy Adapt TopicCompactionService interface changes Auth SN github maven repo before claude review Do not set setReplicationClusters on createTopicIfNotExist Fix consumer close might be stuck when SyncGroup is in progress Fix topic name reference in AlterPartitionReassignments Ignore proxy module in CI Add support for checking schema compatibility against specific versions Remove key distribution verification from PulsarNonBatchedFormatTester Increase timeout for testTwoTopicsGroupState to improve reliability Disable context7 mcp server in Claude github actions Fix message consumption count in BasicEndToEndPulsarTest Add Claude Code GitHub Workflow Support configurable separator for topic Use a scheduler to handle the KafkaClientPool expired key removal Fix broken master due to upstream change Add lookup cache for transaction marker channel manager Don’t replay topic for producer state when the topic is empty Fix invalid negative timestamp when fetch offset and timestamp [Ursa] Support unload topic via rest api Fix flaky UrsaPartitionLogTest.testClosingWithPendingProduce [test] Remove ignore annotation for compaction test Enhance AdminProxyTest to wait for topic policy updates before alter configs Fix wrong content length when getting schemas containing non-ASCII text Remove kafka tenant and kafka namespace config Add developers and project name Fix Schema Registry returns internal error if the request body is an invalid JSON Remove migration service Support registering the same schema with different subjects for Oxia schema registry Support consume message via rest api Fix consume failure caused by duplicate entry recycling Support a custom managed ledger that extends ManagedLedgerImpl Add namespace filter in dashboard Fix InitProducerId could always fail for the same transactional id Update dispatchable position after update KSN transaction max read position [Ursa] Support unload all zones when the zone is not specified in the clientId Fix ClientIdBasedLookupTest flaky test Disable automatic group metadata migration in setup to fix flaky test Migrate nexus staging to maven central Improve logs for topic lookup Improve KSN Metrics Dashboard Update to Oxia 0.6.0 and use new group-id Add Swagger Maven plugin for REST API documentation generation Fix get topic by name in KsnRestServlet and update related tests Reduce unnecessary time-consuming topic replay for producer state recovery [refactor] Create PartitionLog only after ProducerStateManager#recover is done Change the default value of the kopAllowedNamespaces Support topic retention policy configuration Update build script to copy kafka-rest-servlet as a jar instead of nar Remove unnecessary dependencies for rest api Bump Pulsar to 4.1.0-SNAPSHOT Add kafka-rest-servlet to asset directory in build script Support produce message via rest api Unified metrics topic scope format Exclude netty-codec from test Support schema registry RBAC verification at cluster level Fix UrsaPartitionLog not taking snapshot during shutdown [schema-registry] Fix get schema by subject and id behavior Fix test compatibility request [Ursa] Reduce unnecessary time-consuming topic replay for producer state recovery Support Scram with JWT token Sasl Return timestamp for the ListOffset request Fixed NPE when removing partition log [Ursa] Skip producer state recovery for consumers and non-idempotent producers Add kafka-common jar to build script assets Avoid replaying topics when handling ListOffsets requests Fix InitProducerID request transaction operation Support configuring default compatibility level Change log level from error to info for successful authorization in SimpleAclAuthorizer [schema-registry] Use the dot for all subject related requests Add KSN rest admin servlet Fix flaky testProducerStateRecovery [Ursa] Add per-topic partition storage size metrics for ursa Filter system topic when list kafka topic Remove the log when the EventManager receives events after shutdown Use try load group and offsets to avoid print scheduling loading log Improve error logging for topic deletion failures Remove unused jaxb-api dependency from pom.xml Add namespace label to metrics Fix ServiceConfiguration cast to KafkaServiceConfiguration Fix pulsar-kafka-schema-registry compilation failure: Compilation failure Schedule load group metadata on owner broker [Ursa] Fix namespace bundle for topic not served by this instance [Ursa] Support unload ursa partition log Support KSN RBAC part3 Support handle DESCRIBE_LOG_DIRS request Bump Pulsar to 4.1.0-SNAPSHOT [Ursa] Support idempotent producer Remove error logs if a response completes with a known Kafka exception Support KSN RBAC Part2 Add a separated config to specify number of worker threads [ursa] Fix messages might be skipped for a consumer that subscribes multiple partitions Fix NPE when Accept Header is empty in SchemaRegistry request [proxy] Fix memory leak for requests that are not forwarded to brokers In the pulsar_non_batched entry format a single batched message is encoded as a non-batched message Only take snapshot for producer state except when the topic is unloaded Exclude lz4-java dependency due to CVE Don’t block requests for unknown request field Fix pulsar_non_batched out of order sequence number error Fix lookup reference schema Fix DeadLock issue when resolving the reference schema SNIP-143: Fallback to base64 encoding only when the byte array is not a valid UTF-8 string Fix OxiaSchemaStorage use the wrong range scan start key Add new PulsarNonBatchedEntryFormatter class to encode batched messages to non-batched messages Support content negotiation for schema registry HTTP service [ursa] Support configuring consistent hashing virtual nodes Fix dead group might not be removed when storing group metadata in metadata store Retry loading a partition of transaction metadata if it failed to load last time Disable geo-replication for system topics Fix memory leak due to temporary buffers are not released in decode [ursa] Update default load balance strategy to CONSISTENT_HASHING Remove nexus staging repository Fix connections will always be disconnected when RbacAuthorizationProvider is not configured Use Github package wildcard repository url Remove the override updateRates method since it’s removed from PersistentMessageExpiryMonitor Change the ConsumerGroupMetricsCollector error log to warn Support RBAC authorization validation - Part1 Don’t print error logs when creating a topic that already exists Don’t print error logs when receiving GET_TELEMETRY_SUBSCRIPTION requests [CI] Run smoke-tests on CI Do not modify the Entry’s data when decode Cherry pick PRs from branch-4.0 to master branch Avoid blocking I/O threads when lookup due to unstable DNS Refactor the Ursa partition log cache to make fields immutable as much as possible Support independent schema registry service [test] Update SimpleLoadBalanceTest’s load manager config to use ServiceUnitStateMetadataStoreTableViewImpl [ursa] Re-balance the topic when broker up Fix UrsaStorageTest.testListOffsetsFromClosedManagedLedger Remove the mixed_kafka format and simplify ProducerAppendInfo Fix failed to generate schemaId/version if the schema-id-gen/version-gen nodes are empty Fix testIdempotentProduce will fail when running individually Support wildcard characters for kopAllowedNamespaces [test] fix mock zookeeper change [ursa] Move the consume logic to use managed cursor directly Support import mode for oxia schema registry Fix get schema to return the correct Protobuf type instead of Avro for Protobuf schemas Fix DescribeConfigs compatibility with Sarama 1.42.1 or earlier Add a simple consistent hashing based load balancer implementation Remove the complicated multi-tenant metadata feature and enable transaction by default Change LEO outdated log to Debug log Catch the TooLongFrameException as warn log Invalidate UrsaPartitionLog from cache if it’s failed Use slf4j-log4j2-impl as the logger in tests Fix the ConsumerGroupMetricsCollector admin client url Revert “Revert using sn-bom (#957)” Add a simple partition index based load balancer implementation Update Pulsar stats for Ursa Upgrade the kafka-clients dependency to 3.9.0 for new requests [ursa] Fix shadow managed ledgers’ metadata nodes not deleted Revert using sn-bom Fix group metadata inconsistency after loading from the metadata store Update pulsar consumer stats from ksn Fix flaky OffsetTopicWriteTimeoutTest.testSyncGroup Fix possible thread safety issue when accessing GroupMetadata Update the default offset retention time from 3 days to 7 days Handle schema registry authorization compatibility issue Fix system topics not filtered for billing metrics Add pulsar-kafka-schema-registry jar to image Support schema registry RBAC Use SN bom Delete the corresponding shadow topics when the source topic is deleted Add metric for consumer lag Fix possible deadlock cause by NamespaceBundleFactory.getBundle Close the topic during ListOffsets if ML is already closed Remove the unnecessary asyncMarkDelete call after reading from the cursor Add more logs for empty assignment Update clientId format to allow including both zone id and additional information from users Update the shadow namespace name format [Ursa] Don’t fail with OFFSET_OUT_OF_RANGE when LEO is less than the fetch offset Unload topic when fail to create cursor Retain only the value associated with the valid topic name key when fetching offsets Fix data_in_bytes is always 0 when Ursa is enabled Fix managed ledger config not respected for Ursa producers Fix Ursa might not be able to produce after the topic is unloaded Handle Kafka multi-tenant format topic name in schema registry Remove producer state snapshot when topic deleted Filter the pulsar.dedup cursor z-node on the topic deletion event handler Fix memory leak for producers when Ursa is enabled Ignore all compaction tests when entryFormat is pulsar Disable bundle ownership transferring for bundles in shadow namespaces Remove useless log for the PulsarSchemaStorage Fix UrsaPartitionLog initialization Introduce DelayedRemovalCache to cleanup ManagedLedger when Ursa is enabled Add metrics for Ursa topic initialization Fix Kafka headers are not converted correctly when entryFormat is pulsar Return a user-friendly error when the Fetch requests are not supported or topic is blank Add message duplication tests when Ursa is disabled Support billing metrics for SN cloud Support handling produce requests from non-owner brokers [fix] Filter duplicated topic when fetch offsets Adopt a more efficient and reliable approach for compacted topic replay Enable geo replication test Support librdkafka’s PARTITION_EOF feature Re-implement the EventManager Avoid creating transaction related systems topics when enabling ursa engine Remove all coordinator epoch usages Change the default entryFormat to kafka Refactor the transaction implementation to make it align with Kafka Fix response status code for Schema Registry

StreamNative Pulsar Plugins

upgrade avro to 1.12.0 fix export duplicated JVM metrics on AuditLogMetrics Upgrade pulsar placement policy bk dependency to 4.17.2 Upgrade zk version to 3.9.3 to avoid CVE-2024-51504 Bump com.fasterxml.jackson.core:jackson-core from 2.13.0 to 2.15.0 in sn-pulsar-tool Fix the build issue [detector] Print more info when a corrupted value is received by Kafka consumer Return empty when getting global topic policies instead of returning exception Upgrade commons-beanutils version to fix CVE-2025-48734 Add test to verify the sts module [detector] Enable idempotence for Kafka detector Fix the backup tool can not use sts to authenticate [cluster-rollout] add orphan unload job cleanup logic Fix the time ticker leak issue which caused high CPU usage Update Go SDK rbac & oidc dependencies Update x/net and go 1.24 Fix jlink command’s compress argument fix(detector): enable pprof by default feat(detector): support disable pulsar protocol detection. [graceful-rollout] set unload retry max make integration test for all release branch Add environment to e2e pipeline add cloud package integration tests Use Github package wildcard repository url ursa-storage Fix rest api due to producer min compress size 4a25f8bca Update Go toolchain to 1.22.12 Upgrade deps to fix CVEs Fix go x/net cve [fix][cluster-rollout] handle namespace not found greacefully [test] Fix mock zookeeper change Add cert expiration detector feat(detector): support pprof fix: discard superuser flag to avoid deadlock fix(detector): compatible with non-partitioned aliveness topic Change error log to warn when topic closed fix initialize for AuthenticationProviderMTls feat(IdentityPool): Add basic authentication support for identitypool Add AuthenticationProviderMTls for snoidc Fix deploy workflow Fix deploy package workflow Add plugin module deploy workflow fix azure package failed when list non-exists directory Support Topic Level Tracing and LogTraceRecorder Azure Blob Storage backed Package Management Service Exclude commons-io to fix cve Fix license commons plugin jar package Use WebIdentity way when AWS_WEB_IDENTITY_TOKEN_FILE exists fix test in BrokerUnloadJobResourcesTest Just add non fat jar to image Use SN bom Add pulsar-oxia-state-store jar package Change authentication failed log level to warn Upgrade aws sdk dependency version to v2 exlude netty for aws-jdk Reduce pulsar-rollout-plugin nar package size

pulsarctl

Upgrade go to 1.24.6 to fix CVE-2025-47907

Cloud Pulsar Plugins

Change to use commons-lang3

Function Mesh Worker Service

b8175ef4 fix build.sh Create a new sub module mesh-worker-common Generate OpenAPI docs for agent-functions Support set agent tools config Make MeshWorker able to run standalone and load additional servlets Support load ConnectorCatalog using label Update error msg in status Implement agent function Set minReplicas to parallelism when HPA is enabled Set default VPA by default when HPA is not enabled Support invalid name Fix resource error during update and get connectors Fix trigger function not support partitioned input topics error Find specified ServiceAccount using oauth2’s client role and use it when exist validate function-mesh v0.24.1 exclude lz4-java for CVE reasons Unified resource scale for all Objects and make it configurable add security schemas to kafka connect openapi better error responses Use Github package wildcard repository url bump function-mesh to 0.24.0 masking the sensitive data in logs support insecure auth secret override Use ConnectRestException for Kafka Connectors Add default liveness probe: Validate k8s secret before creating functions/connectors inferring the tenant and namespace from request if empty Fix update error for functions/sinks/sources with secrets injected Support set log topic from configs for Sinks&Sources Support set resources for kafka connect Use SN bom SNAPSHOT version Do not allow using system topics when creating sink&source Reject request when kafka connect’s name is longer than 29 Use SN bom to reduce artifact size Use large runner to avoid disk full issue Fix free disk job of ubuntu-latest runner bump kafka dep to 3.9.0 Replace the deprecated getZooKeeperSessionTimeoutMillis Add extraDependency field to FunctionMeshConnectorDefinition Support set pod annotations via CustomRuntimeOptions Set processingGuarantee for window functions Bump function-mesh to v0.23.0

StreamNative Tiered storage

Introduce flag to control delta add file stats

StreamNative Ursa storage

Remove failed to deserilize log Add more metrics Run with different commit runner if task properties changed Expose parquet file reader cache config Fix NaN serialization issue in UrsaParquetFileWriter Fix nested enum serialization failed fix: Handle NPE when nested record default value has mismatched field names Refactor the commit process to allow recreate commit runner Pulsar worker support offload to delta Remove tmate in CI USe Hessian2 as the new task serialization. Fix delete package task bug Fix topic medata not found issue. Fix: Use shared static thread pool for PulsarLakehouseReader idle timeout Upgrade iceberg to 1.9.2 Unblock the compact process when encounter task deserialize exception Adapt new changes for TopicCompactionService interface Refresh the catalog instance when using open catalog Make update and delete compactTask async Uniform all places configuration name for the data source type Update the offload flag according to the each ledger state Rename engineType to dataSourceForCompaction Fix publish time Fix committed task delete leak Add engine type configuration Refactor the offload format by adding a util to convert the entry to KafkaMessage Fix deadlock by making getStreamId async in OffloadReadHandler Fix task compability issue Fix resource leak: close IndexFileReader in ParquetFileReader Only publish BlobNotFound exception task to DLQ Exclude OutOfMemoryError for DLQ Support publish commit failed tasks to DLQ Fix oxia lock leak when not acquired Optimize Compaction Service heap memory usage fix[lock]: fixes memory leak on oxia distributed lock Introduce catalog factory for iceberg Add external table protobuf support for Ursa and Pulsar protocol Make the pulsar compaction worker not record column stats. Using bookkeeperStorageApi when configured pulsar client Add compaction leader metric doc Delete committed tasks and update oxia index Fix the error handling Remove unnecessary synchronized lock fix: handle UUID logical type with string base type in AvroToIcebergConverter Fix ConcurrentModificationException in CompactionTaskProvider.getTask Cleanup stream when deleting unloaded topics Add multi catalog user document Add compaction service throguhput rate limiter for reading from BookKeeper Support multiple catalog in namespace and topic level Optimize reset cursor Refactor update iceberg table properties Separate managed and external writer for ursa Add compaction leader metric Add failure reason for the iceberg external writer Fix CI Upgrade delta kernel to 4.0.0 Make the RawReader object pooled to avoid creating each time Delete the compact task if the topic doesn’t exist [refactor] Only open one parquet file for the lakehouse reader Using the GlobalOpenTelemetry to register the reader metrics Fix reader read failed in parallel Delta external table introduce temporary credential Fix the task compatibility issue. Introduce CustomKernelParquetWriter to support put write mode to improve memory usage Fix readIndexes bug Fix the typo for the classname of PreparedCompactStreamTask Introduce the task type to control the compaction handling Add offload cursor to block data expire Send the failed parse messages into a failure topic Fix the metrics tests Load configuration from the pulsar-client.conf file Close the catalog resrouce after using Delete the compaction task if it compacting the expired data Add ML Cloud Storage Developer Guide Reenable the pulsarE2ETest Speed up the CI process from 1 hour to 20mins by separating to the different groups Adapt for unity iceberg rest api Fix the offloaded ledgermetadata is not synced with the offload state chore: Add Claude Code Agents Allow to disable sync UrsaMLMetadata Support delete ledger from pulsar offload handler Add metrics for pulsar read/writer lakehouse path Redirect maven twitter repo to central Fix build script Refactor pulsar external table Support load pulsar client token from file Use the existing resources to init lakehouse reader Renable the pulsar e2e tests Get ledger metadata from Oxia Change default entrySerDeType to PULSAR_BATCHED_RAW_PARQUET support register managedledger meatadata in oxia Pulsar support reading from parquet store messageId into parquet file Store ledger metadata to oxia Use jar instead of nar for offloader Add serialization type in the metadata Revert to use normal file as the index file Support save pulsar entry without parsing batch Support skip system topic and black topics Fix the bookkeeperApi can not get the index by secondary key Using MapFile to speed up the seek performance Support deleting the compacted data Update the offload flag according to the ursa storage state Make pulsar compaction worker enable iceberg external table writer Reuse the pulsar storage configuration for the pulsar offloader Update metadata store ledgers info after checking offloaded flag. Fix the prepare task name compatibility issue [cleanup] remove unused code in the managedLedgerWithTs Support generate the Ursa offset when committing the task Update to Oxia 0.6.0 and use new group-id Make bookkeeperStorageApi implement the StorageApi Pulsar offloader leader support Support write without parse content with schema Support compress the index files Make the tasks in the CommitTaskProvider sorted by the stream id and start offset Pulsar offloader support offload to iceberg format Support read/write index file with hadoop lib to cloud storage Fix pulsar lakehouse reader memory leak issue Integration test for the pulsar protocol compaction process Refactored to allow support for low-latency storage class Using the 4.1.0-SNAPSHOT of pulsar Adapt the comapction process with pulsar related code Fix the NPE when serializing the bytes schema version Use static instances for compression codecs Pin version for commons-lang3 Support bookkeeper entry reader to let compaction service read from bookkeeper Support read and write bookkeeper entries Introduce the api for bookkeeper generate offsets Support trimming topic with the mark-deleted-offset Fail back to normal config when the external config miss. Optimize entry reader read batch Allow to configure the http client used by Azure Fix build script typo Support pulsar entry write into / read from the parquet file process [doc] WAL Cloud Storage Developer Guide Update Metrics.md with accurate and concise descriptions Fix topic quarantine bug Implement new interface for Pulsar Add default timeout for all integration tests External table support wal compact Disable expire Iceberg snapshot by default Support fencing a managed ledger after closing Use nonRetriableQuaratine for task publish Improve the compaction worker handle stream task logic. Flaky test in SimpleStorageImplTest.java [improve] Use ReentrantReadWriteLock in EntryCache Move out the integration test containers to a new module Reduce primitive schema retry times Format compaction service quarantine logic Support configure iceberg table properties with topic properties Throw exception when read empty entries in lakehouse worker. [fix] throw exception upon EntryCache apis calls after EntryCache is closed Move the persistStorageApi initialize in the common place Fix real offset incorrect Fix semaphore not release bug Fix read lock not release bug Fix build failure GCS supports delete with lifecycle Throw exceptions when handle the recursive schema throw exception when hitting non-binary index while processing RAW type Support azure to delete object using lifecycle rules Delete the compact task when compaction worker read compacted wal file. Quarantine topic when get topic failed or get topic metadata failed fix deadlock from EntryIndexCache.invalidate Skip topics in pulsar tenant in compaction service Fix compaction service generates a lot of small parquet files Add Iceberg bigquery metastore catalog support Fix publish thread executor block issue. Skip some tests to speed up integration test Fix s3Table name format Remove sn-bom build in CI [fix] write api support for v2 format Make the entry read instance in compaction not shared betweet the different task Fix the IllegalReferenceCountException by duplicated method execute Fix npe when check lakehouse commit table failed. Do ursa GCS performance and improvement Fix GCS deadlock issue Fix priorityqueue concurrentModification exception Recreate LakehouseStreamCompactWorker when encountered S3Exception Add more metrics for compaction service Use Github package wildcard repository url Support write entry with specified initial offset Support streamnative Delta External table. Add metrics for the read cache size in bytes Fix the aws config socket time not work issue. Add more netty config Fix the NPE when getting the non-exists blob Remove keys from lock when unlock [improve] Ursa Live Entry Index Compaction Improve parquet read prefetch Use SN bom based image Fix taskWriter shared bug Fix avro convert to iceberg npe Format lakehouse exception Fix the memory leak issue in the test. Fix memory leak when write parquet failed Fix the record and schema convert issue for avro to iceberg Fix LakehouseKafkaReader NPE optimize the jvm opts for compact service. Remove serailize failed noise log tmp Do not catch handleRecord exception Fix dockerfile Remove the test jar from the image Revert #615 to avoid the caffine cache performance issue. Enable v3 serialization and deserialization Make compaction service compatible with Confluent schema registry Fix maxPendingAddRequestsUsedBytes integer overflow Fix the map value struct type issue in unity catalog. Fix avro record convert to Iceberg Record failed Fix retry the compact stream task failed issue. Fix parquet row writer issue Introduce delta kernel to replace of delta-standalone. Fix unity catalog schema issue [Fix] Fix the iceberg namespace on s3 table catalog Limit the readcache by bytes Limit the pending add by bytes Support nested protobuf schema for the compaction Move the create table to the writer instead committer Add test case to cover msg payload schema content Remove copied class Remove the ursa-lakehouse dependency from the ursa-ml Add iceberg external table support Support kafka protobuf schema for the compaction Fix BrokerInterceptorTest.testAddBrokerEntryMetadataEntryRef flaky test. Add test unit to cover get wrong streamId issue. Fix CI Fix the json schema convert issue. Fix always use the wrong streamId when publish stream task. Set partitionkey for the rangeScan in the persistStorageApi Add the persistCache size into the meta Improve PersistCache with a simpler and thread-safe implementation Add EntryIndex protobuf feat: move the info log to debug to prevent server keep logging [cleanup] Remove unused api Refactor compaction worker interface Replace guava cache with caffeine cache [cleanup] Move the read cache into a single class Clean up the unused code of ursa-storage-core Remove the unused code Unity Catalog support clientId and clientSecret to authenticate. Use ubuntu-latest to run ci Fix Github Packages publish workflow Remove nexus snapshot distribution Use ____ to replace ’-’ for table name when create unity catalog table. Support publishing to GitHub Packages Fix ManagedCursorTest#testReadEntriesWithSkipDeletedEntries flaky test. Fix StorageWalManagedCursor#internalReadEntries only read one entry at each round. Fix s3 compact flaky test. [TEST] Run integration test with image ksn 3.9.0 Fix parquet prefetch bug Add iceberg azure dependency Use separate thread pool for parquet reading Test master CI Fix default compaction thread bug Support load credential from file Fix flaky test TestCompactionServiceBaseFileStorage#simple fixed flaky test_whenReadAgaint add cloud region 9d6fd76f [Bug] fix duplicated entry id put in PersistCache.index Adjust the compaction default configuration according to the performance test Fix flaky test in TestGarbageCollection Add the ProfileCredentialsProvider into the auth chain Disable nonblocking dns and get rid of request limitation of S3 prefix improvement in dispatch logic Fix the default write buffer segment configuration Unity catalog support config User-agent. Adding stress-ng to CI Fix oxia read failed with small range Improve CI by running S3 and GCS integration tests In parallel Optimize PersistCache serialization to only persist used segments Support disable read cache expire by time Compaction service support GCS Delta table support partition column using topic partition index Compact service support azure blob protocol Parse the storage account name and blob container name from bucket for azure Check the table whether register to the unity catalog when commit action. If not, register the table to unity catalog. Compaction service support Azure storage. Modify delta table mapping name in unity catalog Rename azure to azureblob to make it more precise fix azure make data in heap Quarantine the compact task if it read WAL data fialed. Add the storage metrics for all the file storage type Allow to disable the lakehouse reader in the managedledger Enable ChecksumCRC32C for getting object from S3 Add core and lakehouse jars to image Support unity catalog. Add iceberg support Remove jar with dependencies when release Switch to sn-bom pom dependency [cleanup] Remove the duplicated code Limit the read request from compaction to the storage api Get the compact task in the start offset order Separate the integration tests and ut in workflows Enable all the primitive types tests Grouping pending add requests by stream id Add read request limitation for the persistStorageApi read Guarantee managed ledger’s stream id is always valid and never modified Add Yunze and Zike as code owner Avoid concurrently update metadata for ShadowManagedLedger Provided storage endpoint for azure storage [WIP] Add primitive type support Fix the null filed value can’t decode issue. Introduce lakehouse read prefetch cache manager Speed up get all task Separte the maxRequest config and write buffer segment config Fix the commit runner race condition issue. Update streamId if Shadow Managed Ledger stream ID is invalid Trigger the metadata update when calling getLastConfirmed entry [improve][tests] covered Pulsar protocol retention and backlog quota [improve][tests] covers Pulsar protocol encryption and compression tests Remove awssdk bundle dependency Avoiding the risk of pending add buffer release fix netty and json cve Fix the stream id is duplicated Do not reject the entries bigger than write buffer Support the azure file storage [improve][tests] enabled ExtensibleLoadBalancer in integ tests and added delayed messaging test [improve][tests] enabled concurrent tests in integ and enabled new load balancer Support creating the managedLedger in different brokers Add GCS FileStorage implementation Introduce task manager to avoid acquire lock between threads (Re-Commit) LakehouseKafkaReader add prefetch cache support [fix][ml] fixed npe in getLastIndividualDeletedRange Improve the WAL catch up read throughput by prefetching cache [improve][tests] cover Pulsar messaging tests [fix][tests] Enable ursa-storage-test tests Fix trivy downloading db rate limitation Make mockito test scope (#401))) Revert “Introduce compaction task provider to avoid acquire lock between multiple threads Fix the integer key leak issue Introduce compaction task provider to avoid acquire lock between multiple threads Fix aws credential not match issue Reduce package size Upgrade aws sdk version to fix cve Fix CVE-2024-7254 Trigger publish task by self, not wait all the topics. Add error log when put entry failed in the managedLedgder Update the Docker resource and readme to the latest stat Add json support check in publish task Bump org.scala-lang:scala-library from 2.13.0 to 2.13.9 CompactService support json schema Optimize quarantine logs in publish tasks Bump project version and pulsar version to 4.1.0-SNAPSHOT [metrics] Add metrics for the write buffer Use ConcurrentHashMap to reduce risks [cleanup] move the write cache out of the storage impl Bump org.apache.hadoop:hadoop-common from 3.3.6 to 3.4.0 Support write entry for the StorageApi Filter topics with not support schema Optimize logs in compaction service Refactor compaction metrics Optimize compaction service default configurations Make the stream map evict by time. [cleanup]Remove the unused code in the persistStorageApi Fix the flaky test testOperationRejection Fix wrong metadata updates for first and last entry headers Increase commit runner concurrency Fix som cve feat(distributed-lock): use metadata oxia client as distributed lock client Use concurrent map for the cache strings in storageApi [cleanup] Move the metrics part out of the implementation Make the maxPendingAddRequest dynamic Correct the dockerfile used file location Make the sync method call the async method to get result Fix the request rejection of SimpleStorageImpl Fix the missed exception handling for getting the next read index Fix prepared publish task may failed issue. Fix the ledger deletion for PersistCache Parquet read perfomance improvement Delay metadata update task for managedLedger Introduce compact cordinator. Fix flaky test testReadAfterTrimmed Decrease s3OpsRateLimitPerSecond to 100 Enable the CI on all branches Fix delete topic failed when not load Fix compaction otel paramter