rajvarun77 opened a new pull request, #3330:
URL: https://github.com/apache/brpc/pull/3330

   Implements a MySQL client protocol for brpc built on a **clean-room** 
authentication codec (no GPL lineage), addressing #2093.
   
   ### Scope
   - **Clean-room connection-phase auth** — `mysql_native_password` and 
`caching_sha2_password` (fast-auth + full-auth RSA / secure-transport 
cleartext), derived from the public MySQL protocol documentation.
   - **COM_QUERY text protocol** — OK / ERR / EOF / text result-set parsing.
   - **Interactive transactions** via connection affinity (reserve/use a pooled 
connection; SINGLE rejected, auto-rollback on drop).
   - **Prepared statements** (binary protocol) with per-connection `stmt_id` 
caching and transparent re-prepare when a statement lands on a fresh connection.
   
   ### Shared-core footprint (kept redis-like / minimal)
   The only generic `Controller`/`Socket` additions are: a socket reserve/use 
hook and `fd_version` (ABA guard) for transaction/prepared-statement affinity, 
an auth empty-write guard for MySQL's server-greets-first handshake, and 
protocol registration. **No protocol-specific type lives on the shared 
`Controller`** (the prepared-statement pointer rides a generic opaque per-RPC 
slot).
   
   ### Tests
   Clean-room integration tests (transactions, prepared statements, 
pooled-connection concurrency, connection-type boundary) run against a 
self-spawned `mysqld`; **19/19 passing locally**. Concurrency coverage includes 
per-transaction connection pinning under overlap, abort/auto-rollback under 
contention, and prepared re-prepare when a connection is stolen by a 
transaction.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to