Skip to main contentStreamNative 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