pitrou commented on issue #14:
URL: https://github.com/apache/iceberg-cpp/issues/14#issuecomment-2652976790

   As a general data point for this discussion, I would mention the case of the 
Arrow C++ CSV parser. Arrow C++ uses a `Status` class (but `std::expected` 
would be similar) for error reporting. This implies that any 
potentially-failing function should return a `Status` (or, similarly, 
`Result<T>` or `std::expected<T, E>`).
   
   However, a CSV parser is a state machine that must withhold tens or hundreds 
of millions of transitions per second. It turns out that reporting a `Status` 
in such a critical path can reduce performance by 20-30%. The Arrow C++ CSV 
parser tries various tricks to avoid such reporting, which can have other 
consequences on security (see current discussion in 
https://github.com/apache/arrow/pull/45498).
   


-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to