V4.3.6
Version information
Release date: March 3, 2026
Version: V4.3.6
RPM version: obproxy-ce-4.3.6.1-2
Version overview
ODP V4.3.6 is the latest long-term support (LTS) release in the ODP 4.3.x series. It focuses on stability improvements and core capability upgrades, and is recommended for POC testing and production on cloud and on-premises workloads. For the SQL proxy, it adds support for the Azure ppv2 protocol to improve cloud compatibility; supports logging user logout events to strengthen auditing and operational observability; optimizes memory management, refines fragmentation handling, supports dynamic adjustment when memory limits are exceeded, and further improves CRASH signal interception—significantly improving SQL proxy stability. For the RPC proxy, it adds a kernel-feedback-based routing optimization mechanism to re-route when routing information is inaccurate; supports the new HBase put protocol to improve write performance; adds RPC request lifecycle control, optimizes retry logic and cross-partition sub-request handling, and comprehensively improves RPC proxy reliability and performance.
Key features
SQL proxy
Connection management
Under the Azure ppv2 protocol, PP2_SUBTYPE_AZURE_PRIVATEENDPOINT_LINKID is mapped to tenant information. The new ODP version parses this field to complete the mapping and support the ppv2 protocol on Azure.
Stability improvements
Memory optimization
ODP’s memory management module was reviewed for issues and optimization opportunities; improvements are delivered in this LTS release to improve memory stability, including:
Optimizing PS module memory usage that tends to cause fragmentation, avoiding amplification and slow reclamation due to fragmentation.
When memory exceeds the limit, supporting dynamic increase of ODP’s memory ceiling via signals, avoiding memory alarms and new connection failures when the limit cannot be raised.
Improved CRASH signal interception
The
enable_crash_error_logparameter controls CRASH signal interception. The default isTrue, allowing interception and stack traces in logs. The parameter supports dynamic changes.
Usability improvements
ODP V4.3.6 can log user logout events. ODP already logs login and abnormal disconnections to obproxy_diagnosis.log, but not normal logouts. The new version also logs normal exits (COM_QUIT) and unifies disconnect log formats for complete login/logout auditing.
RPC proxy
Routing improvements
When routing information is inaccurate, ODP V4.3.6 can re-route based on feedback from OceanBase Database. OceanBase supports distributed execution so that RPC may still succeed even if routing is wrong, but ODP previously did not refresh caches without feedback, causing sustained RPC overhead and performance degradation. With distributed routing enabled, tablet_id must be filled and clients must add an option_flag field; OceanBase uses option_flag and tablet_id together to determine whether distributed capability is enabled.
Connection management
ODP V4.3.6 supports the new HBase put protocol. In HBase scenarios, write performance was limited largely by protocol parsing, routing, and conversion between the model layer and TableAPI. HBase put payloads are relatively fixed and simple. The new version adds a fast path in the OBKV stack for put operations, skipping layered conversion so writes proceed immediately after parsing, improving write performance.
Stability improvements
RPC request lifecycle control
An RPC request involves
client_net_handler,request_sm, andserver_net_handler. ODP assigns aSTATEto each; the request is released only when all three satisfy release conditions. If interaction with OceanBase leaves states unsatisfied, requests could wait in memory for a long time until timers fire. The new version adds lifecycle control to address this.Optimized RPC request retry logic
When table schema changes (for example,
TRUNCATE), ODP asynchronously refreshes the location cache and may still use stale cache during refresh, causing excessive retries to OBServer, retries ending before refresh completes, or sub-request retries that blocktablet_idrecalculation. The new version improves the retry flow to mitigate these stale-cache issues.Improved handling of cross-partition sub-requests in OBKV
ODP may split cross-partition RPC into sub-requests. In error paths, parent work could couple with each sub-request’s
sub_request_sm, harming stability. The new version decouples parent/child and state machines for simpler call chains, better performance and stability, and easier troubleshooting.
Usability improvements
ODP V4.3.6 can control whether sub-requests print Slow RPC Query and obproxy_digest logs. Previously, slow and digest logging ignored sub-requests, though they are full RPC requests and may need slow logging. To avoid excessive logging when there are many sub-requests, rpc_enable_sub_req_log was added.
Compatibility changes
Parameter changes
Parameter |
Change type |
Description |
|---|---|---|
| connection_diagnosis_option | Changed | A third bit controls whether normal login/logout is logged; the default changes from 3 to 7.
NoteUnder heavy short-connection workloads, logging login and logout may reduce performance by up to about 4%. In performance-sensitive short-connection scenarios, set |
| enable_crash_error_log | Changed | Effective mode changes from ODP restart to dynamic. |
| rpc_enable_sub_req_log | New | Controls whether qualifying OBKV sub-requests are printed in obproxy_slow.log and obproxy_digest.log. |
Supported OceanBase Database versions
OceanBase Database 4.x, 3.x, and earlier are supported. Recommendations by database version:
For OceanBase Database 3.x and earlier, use ODP 3.x.
For OceanBase Database 4.x, use the latest ODP V4.3.6 (LTS).
Known issues
Clusters with globally unique client session IDs enabled (client_session_id_version=2) that run stably for more than seven days may experience connection failures. Upgrade to a build that fixes this issue.
Bug fixes
Fixed slow memory release after disconnect when text PS prepare pushed ODP memory above 90%.
Fixed ODP startup failure when
/etc/hostslacked IP hostname entries.Fixed negative
odp_current_sessionwhen logging in withservice_name, causing false OCP connection-limit alarms.Fixed memory leaks during system or user variable synchronization when using
COM_RESET_CONNECTIONorCOM_CHANGE_USER.Fixed array overflow when
getaddrinforeturned more than 64 IPs, leading to abnormal ODP cores.Fixed inaccurate routing for DML when column names contained
#.Fixed ODP core due to stack buffer overrun after changing
digest_sql_length.Fixed client hangs when ODP sent multiple requests slowly while OceanBase returned quickly and ODP mishandled responses.
Fixed ODP core when SQL contained the
statuskeyword.Fixed ODP hang when using
service_namewith SQL payload over 16 MB.Fixed fixed 30s timeout for
show proxymemory objpool;under memory-leak diagnostics, blocking useful output.Fixed stack overflow when parsing
round(9.99,-9.9),round(9.99,-10), andround(99.99,-20).Fixed core when non-partitioned table requests hit
OB_SCHEMA_ERROR, retry treated the table as single-partition, and part info was empty.Fixed ODP core for large requests at buffer limit combined with
xa_startvariable sync.Fixed inability for the
proxysystenant to connect when ODP memory was over limit.Fixed routing errors when partition metadata could not be fetched on multi-column partitioned tables.
Fixed error 4016 when
tablet_idfetch exceeded retry count after partition split.Fixed errors when PS close or reset did not synchronize session state.
Fixed errors when
TRUNCATEchanged routing during request execution but cache was not refreshed before retry completed.Fixed occasional failure to disable distributed routing when thread-local cache was not cleared.
Fixed sub-partition requests not being cleaned when OceanBase could not respond and ODP could not read results due to memory limits, preventing request memory reclamation.
Fixed error
4016for cross-partition requests whenTRUNCATEran mid-execution.Fixed RPC port isolation with
rpc_enable_congestionoff where performance did not recover within 2 minutes.Fixed error
4016for over 2 minutes when a node went offline withrpc_enable_congestionoff.Fixed possible memory leak when
part_numwas 0 while fetchingtable_entryon single-partition routing.Fixed error
4016when PS close synchronized session state but OceanBase returned incorrect transaction-end flags.
