New output buffering #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "new_output_buffering"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Using varnishevent to output udp datagrams as with ...
... I ran into an issue with partial strings being received. The reason is that each UDP datagram is independent and data contained within cannot be continued in subsequent datagrams (and even if it was, that could get lost). So, for use with UDP, any datagram must contain complete records, which, in the case of varnishevent, are lines, and, consequently, records must not span
write()system calls.Initially I thought that setting
output.bufsizlower than the effective UDP unfragmented maximum packet size (output.bufsiz=1428) would help, but it turns out that, asvarnisheventwas based on stdio buffered output, that didn't help: except whensetlinebuf()/setvbuf(..., _IOLBF, ...)was used, stdio (at least for glibc) always fills the buffer completely before issuing a systemwrite(). (see https://sourceware.org/git/?p=glibc.git;a=blob;f=libio/genops.c;h=2fec221b99729718d27cef453db2d3e0c2c56233;hb=HEAD#l379 https://sourceware.org/git/?p=glibc.git;a=blob;f=libio/iofwrite.c;h=800341b7da546e5b7fd2005c5536f4c90037f50d;hb=HEAD#l39 )As line buffering would lead to a significantly higher system call rate, I bit the bullet and implemented simple output buffering for varnishevent which never splits any records.
Reassigned to @geoff
added 2 commits
21e14e69- 1 commit from branchmastere0e3eb7d- Merge branch 'master' into new_output_bufferingCompare with previous version
added 2 commits
a6ac776e- 1 commit from branchmaster08a624ee- Merge branch 'master' into new_output_bufferingCompare with previous version
added 4 commits
mastera2c4b91e- Merge branch 'master' into new_output_bufferingCompare with previous version
added 3 commits
5b00968b- 1 commit from branchmaster2fbceeb8- add a lightweight output buffering implementationd040d901- use our own output bufferCompare with previous version
added 3 commits
d7dc0556- 1 commit from branchmaster1f44b3f8- add a lightweight output buffering implementation02674327- use our own output bufferCompare with previous version
added 3 commits
eb95c8bd- 1 commit from branchmasterf103b4f6- add a lightweight output buffering implementation2832c5b6- use our own output bufferCompare with previous version
added 3 commits
6892f91c- 1 commit from branchmastera131ea98- add a lightweight output buffering implementation3bb6b086- use our own output bufferCompare with previous version
added 1 commit
f5a911ee- Standardize LICENSECompare with previous version
added 4 commits
mastera894808b- add a lightweight output buffering implementation6cbceb1b- use our own output bufferCompare with previous version
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.