mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-18 00:26:11 -04:00
Constantly allocating, reallocating and deallocating 64K TCP send buffers by 'ns_client' instances takes too much CPU time. There is an existing mechanism to reuse the ns_clent_t structure associated with the handle using 'isc_nmhandle_getdata/_setdata' (see ns_client_request()), but it doesn't work with TCP, because every time ns_client_request() is called it gets a new handle even for the same TCP connection, see the comments in streamdns_on_complete_dnsmessage(). To solve the problem, we introduce an array of available (unused) TCP buffers stored in ns_clientmgr_t structure so that a 'client' working via TCP can have a chance to reuse one (if there is one) instead of allocating a new one every time. |
||
|---|---|---|
| .. | ||
| bind9 | ||
| dns | ||
| irs | ||
| isc | ||
| isccc | ||
| isccfg | ||
| ns | ||
| .gitignore | ||
| Makefile.am | ||