Hi Giannis,

Thanks a lot for your clear and detailed reply! It helps me fully
understand
the root causes of the stability issues we met in Fluss 0.9.1. I will apply
your
recommended solutions on our 0.9.1 test cluster immediately. I'm looking
forward to the 1.0 release with the related PR fixes.

I really appreciate the community’s efficient problem solving and technical
support!
During the follow-up testing and optimization process, if I encounter any
new problems or have relevant verification results, I will actively
synchronize
with the community in a timely manner.Thanks again for your great help!

Best regards,

Zuo Wei
Email: [email protected]



Giannis Polyzos <[email protected]> 于2026年7月24日周五 13:52写道:

> Hi Zuo,
>
> Thank you for the detailed report. Let me see if I can provide a breakdown
> here.
>
> 1. NotifyLeaderAndIsrRequest and UpdateMetadataRequest from the Coordinator
> are both handled directly on the Netty/RPC worker thread pool in
> TabletService. The becomeLeaderOrFollower path inside those handlers can be
> slow (opening RocksDB, replaying logs, updating metadata cache), which
> causes the worker thread to block. Because the worker pool is shared, all
> concurrent RPC requests, including subsequent metadata updates, queue
> behind it. Under leader-election storms (e.g., rolling restarts, failover),
> this can stall the entire tablet server.
> This PR should help with this: https://github.com/apache/fluss/pull/3647
> along with: https://github.com/apache/fluss/pull/3654 .. Until a new
> release is cut, maybe increasing *rpc.worker.threads* helps with this
> issue.
>
> 2. This is most likely a metadata propagation timing issue. When
> auto-partition creates a new partition in ZooKeeper, there is a window
> before the TabletServer's in-memory metadata cache receives the
> UpdateMetadata from the Coordinator. If the client resolves the partition
> and attempts to write during that window, the client's retry logic does not
> always recover cleanly. This PR probably helps with this:
> https://github.com/apache/fluss/pull/3511 .
> Some other configuration options that might help:
> - Increase *auto-partition.num-precreate* so partitions are pre-created
> ahead of time, reducing the race window.
> - Add retry logic in your producer application, for example, a transient
> PartitionNotExistException during auto-partition creation should be
> retried; the partition will eventually appear.
> - Ensure your auto-partition *time-interval *is not too aggressive relative
> to the time it takes for metadata to propagate.
>
> 3. When a TabletServer restarts abnormally, the Coordinator triggers leader
> elections for all KV buckets that were on that node. Each
> NotifyLeaderAndIsrRequest results in becomeLeaderOrFollower → RocksDB
> open() call (which acquires the LOCK file, reads SST files, replays WAL).
> This is inherently slow and happens on the RPC worker thread in 0.9.1,
> serializing all subsequent RPCs. PR #3654 should probably help with this
> issue as well, and PR https://github.com/apache/fluss/pull/3651 further
> reduces shutdown time so restarts are faster overall.
>
> So I believe the fixes are most likely there and targeted for the upcoming
> 1.0 release. So if your timeline allows, the safest path is to for the 1.0
> release. PRs #3647, #3654, #3511, and #3651 will all be included.
>
> The goal is to release within the next month.
>
> Let me know if the above helps.
>
> Best,
> Giannis
>
> On Thu, Jul 23, 2026 at 3:22 PM zuo wei <[email protected]> wrote:
>
> > Dear Apache Fluss Community Developers,
> >
> > I’m a R&D engineer from Xiaomi. We’re currently testing *Apache Fluss
> > 0.9.1*
> > for our internal business scenarios, and ran into several severe unstable
> > issues during our tests. I’d like to share these problems and ask for
> your
> > guidance.
> >
> > Here are the some main issues we encountered:
> > *1. RPC stuck issue*: RPC requests (e.g. update metadata request) from
> > Coordinator Server to Tablet Server often get stuck for a long time,
> > causing service blocking.
> > *2. Partition not exist error*: Data writing throws partition-not-exist
> > exceptions even when the target partitions exist normally.
> > *3. RocksDB lock blocking issue*: After abnormal restart of Tablet Server
> > nodes, a lot of KV buckets leader switching occurs. The RocksDB open
> > process holds locks for a long time, seriously blocking other worker
> > threads.
> >
> > I'm not sure whether these problems are caused by our improper usage,
> > configuration mistakes, or existing known bugs of Fluss 0.9.1. And I’d
> like
> > to consult the community whether Fluss 0.9.1 currently is recommended for
> > production environment deployment?
> > We really want to adopt Fluss in our business environment. Thanks a lot
> for
> > your help! Looking forward to your reply.
> >
> > Best regards,
> >
> > Zuo Wei
> > Email: [email protected]
> >
>

Reply via email to