bobozaur / sqlx-exasol

An Exasol database driver for the Rust SQLx framework
Apache License 2.0
1 stars 0 forks source link

ETL refactor #25

Closed bobozaur closed 5 months ago

bobozaur commented 5 months ago

This PR changes the etl module's one-shot http servers to be handled through hyper. This comes with a huge decrease in complexity compared with the hand-rolled HTTP chunked transfer encoding state machines, as well as seemingly slightly better in terms of performance (from minimal testing).

This also provided the opportunity to properly test the retry behavior of Exasol on IMPORT queries when no data is sent. The result is that, as I initially suspected, Exasol just keeps retrying and sends new HTTP requests after each empty HTTP response. This unfortunately means that the limitation of IMPORT writers still stands: all writers must be used for a graceful data import; otherwise an error will most likely be thrown by the query polling future.