bamaer commented on PR #8801:
URL: https://github.com/apache/hop/pull/8801#issuecomment-6066842862

   Nice addition. A few things to tighten:
   
   **Should fix**
   
   1. **The Oracle `CONCAT` NULL claim is wrong.** Oracle treats NULL as an 
empty string, so `CONCAT('a', NULL)` returns `'a'`. Only a row where both 
values are NULL gives NULL, and only that row is left unread. Suggest: 
"`CONCAT` returns `NULL` only when both values are `NULL`, and that row is left 
unread."
   
   2. **"Each copy is a thread with its own database connection"** isn't always 
true. If the local run configuration is *transactional*, or the pipeline 
inherits a connection group from a transactional parent, every copy shares one 
connection (`DatabaseCreatedXp` / `Database.connect()`). The read then doesn't 
run in parallel, and some drivers fail on concurrent open result sets. MySQL's 
streaming result sets are one example. Suggest adding: "Don't use a 
transactional run configuration; it makes all copies share one connection."
   
   3. **Copies don't share a snapshot.** Each copy runs its own query at a 
slightly different moment. On a table that's being written to, a row inserted 
or changed between those queries can be missed or read twice. That cuts against 
"every row lands in exactly one copy." Suggest one sentence: "Each copy reads 
its own snapshot; for a consistent result, read from a table that isn't being 
changed during the run."
   


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