JingsongLi opened a new pull request, #10689:
URL: https://github.com/apache/paimon/pull/10689

   ## What changes
   
   Reduce the shared REST fixture shutdown overhead used throughout Native 
planning, reading, writing, updating and committing tests.
   
   `HTTPServer.serve_forever` uses a 0.5-second default poll interval. Each 
function-scoped `RESTCatalogServer.shutdown()` therefore waited almost half a 
second after its final request. Keep the same HTTP server and 
shutdown/close/join sequence, but run the test server with a 10ms poll interval.
   
   - Preserve per-test server, table path, metadata and authorization 
isolation. Existing fixtures and test coverage stay intact.
   - Add real lifecycle regressions covering isolated server state, the final 
REST response, in-flight request completion, stopped threads, closed sockets 
and reusable ports. They assert behavior with Events, without wall-clock 
performance thresholds.
   - Print pytest's 20 slowest setup/call/teardown phases in the main Native CI 
step so future bottlenecks remain visible.
   - No dependency, Native extension build, backend, instrumentation or 
test-selection change.
   
   ## Measurement
   
   The same 133 node IDs from `native_mod_bucket_write_test.py`, 
`native_partition_blob_read_test.py` and 
`native_timestamp_bucket_write_test.py` produced the same **110 passed, 23 
Native skipped** results before and after:
   
   | Phase | Before | After |
   | --- | ---: | ---: |
   | Setup total | 0.177s | 0.143s |
   | Call total | 0.673s | 0.827s |
   | Teardown total | 11.939s | 0.144s |
   | Pytest total | 13.34s | 1.71s |
   
   This representative local group is **7.8x faster**. The Native extension is 
unavailable locally, so this measures its shared REST fixture using the 
existing Pure variants; it does not claim a full Native CI wall-time result.
   
   Eight real start/catalog-create/list/shutdown cycles separately measured 
mean shutdown **0.500989s -> 0.010837s**, with setup approximately 5ms in both 
runs.
   
   ## Verification
   
   - New lifecycle tests also passed on the original implementation, 
establishing preserved cleanup/request/isolation contracts.
   - Lifecycle and REST permission tests: **37 passed**.
   - Additional REST catalog, branch, commit-snapshot and representative 
Native/Pure regressions: **214 passed, 23 Native skipped, 1 deselected**. The 
deselected Lance-format test requires the optional `lance` package, absent 
locally; the initial broader run reached the same passing results and failed 
only on that missing dependency.
   - Repository Flake8, Python 3.6 syntax and diff checks pass. No extension 
was rebuilt or installed.
   


-- 
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]

Reply via email to