Ticket #39 (closed enhancement: fixed)
Reduce readconnect nodes for owl reading
| Reported by: | arend | Owned by: | arend |
|---|---|---|---|
| Priority: | normal | Milestone: | 3.7.8 |
| Component: | source | Version: | |
| Severity: | normal | Keywords: | speedup |
| Cc: | patch: | yes |
Description (last modified by arend) (diff)
This patch is best explained by quoting it's most relevant part (in string_connect(), same change in disconnet()):
+ connection_node_limit *= pow(1.45, -stackp + get_depth_modification());
The rational is as follows: Number of readconnect nodes per search is controlled directly (by connection_node_limit) and indirectly (by connection_depth2 as reading cutoff). When we enter the reading code at higher stackp (mostly during owl reading), the remaining depth is smaller, hence reading should be faster, but the node limit stays the same. However, we DO want fast readconnect reading in that case, as otherwise the number of readconnect nodes for a single owl search can explode. Hence it makes sense to adjust the connection node limit accordingly.
There is a catch -- the adjustment also has to take into account whether reading depths got adjusted (by increase_depth_values() etc.) Thus a new function get_depth_modification().
I killed the function pair set_temporary_depth_values() and restore_depth_values(), which have been unused at least since 2001.
Breakage: No changed results, node counts: 1651013916 3239469 11908175 (-3%, +0.2%, -10.4%)
For kgs.ts, I measured a speedup of 3.0%.
Attachments
Regression Results
| Attachment | Rev. | PASS | FAIL | Nodes | Status | |
| arend_7_8.4-reduce_readconnect_nodes_for_owl.diff | never tested |
