{"push_id":1241714641,"size":10,"distinct_size":1,"ref":"refs/heads/master","head":"4af3d03a975c73b341535d40a628c023f6eb0f29","before":"9163673d330c8575996c65c1cc469bd6dc3f4bb4","commits":[{"sha":"f0786b32f2c0ede67ca025dc3a29b3604f4e2744","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"logmsg: move handle fixup code to a module of its own\n\nInstead of fixing up the handles in an NVTable in functions pretty close\nto the NVTable deserialization code, do that in a clearly LogMessage\nspecific module.\n\nWe were depending on LogMessage concepts a lot (stuff like how an .SDATA\nname-value pair looks like and the fact that there are structured\ndata name-value pairs where we keep the ordering), so it makes sense\nto put this at a higher layer. It still pokes into NVTable internals a\nlot, so clearly it is pretty tightly coupled with both LogMessage and\nNVTable.\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/f0786b32f2c0ede67ca025dc3a29b3604f4e2744"},{"sha":"7b769695a0e67709ed0dc1e3a8bcd8407e9ac333","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"nvtable: handle unknown handles in nv_registry_get_handle_flags\n\nThis is needed because in subsequent patches, we add looking up handles that\nhave not yet been registered during deserialization, whereas this function\nhas only been called with registered handles before.\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/7b769695a0e67709ed0dc1e3a8bcd8407e9ac333"},{"sha":"17686f1e8dd2c3118043e04297720dadd5347880","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"logmsg-serialize-fixup: try to reuse the same NVHandle when fixing up handles\n\nIn the deserialization path, we always looked up the new handle for the\nname being deserialized. This is not always needed, especially when the\nsame syslog-ng instance is reading back the message (which often happens\nin the case of a disk queue).\n\nThis patch whether the old handle still references the same name, which\nwe can do without going through the NVRegistry hash table. (e.g.\nO(1) instead of O(logN)). Seems to increase deserialization speed from\n150k to 180k/sec, at least with -O2. Interestingly it gets slower\nwithout O2.\n\nBut now as we do have information about wheter any of the handles changed\nat all, we can also remove a lot of processing, namely:\n  - updating of the SDATA array\n  - sorting the index\n\nThis boosts performance from 180k to 270k/sec.\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/17686f1e8dd2c3118043e04297720dadd5347880"},{"sha":"3c3ed35f45620d75fb2533e095de16ca3b4c4fc6","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"serialize: make typed read/write functions to be inline\n\nSome of the serialize read/write functions are called a lot and by\nhiding them in the .c file, the compiler has to embed real call\ninstructions, which clearly shows in the profile. With this change\nI could increase LogMessage deserialization speed from 270k to 330k with\n-O2.\n\nI decided to keep the error handling parts private, those would bloat\nthe call-sites a lot and are rarely executed anyway (and\nintroduce intrusive dependencies in the header).\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/3c3ed35f45620d75fb2533e095de16ca3b4c4fc6"},{"sha":"ef63c6ebdf0afe35c0d7c7a694c8a850eefa1b06","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"logmsg-serialize: don't zero initialize the sdata array\n\nThe entire array is initialized right after the allocation, no need\nto initialize it to zero.\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/ef63c6ebdf0afe35c0d7c7a694c8a850eefa1b06"},{"sha":"15e3da123dfbc1162918b73cd0facc324e403144","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"logmsg: make log_msg_get_value_name() inline\n\nThis function is called a lot during deserialization and the call overhead\nwas actually visible from the profile.\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/15e3da123dfbc1162918b73cd0facc324e403144"},{"sha":"8972f32f751a8dd999c492526924c5acfadcf375","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"tags-serialize: use scratch buffers in tags deserialization\n\nTags are serialized as strings and when reading them back, we used\nserialize_read_cstring() which in turn allocates a buffer for each\nstring read. If a message has a couple of tags (which it does by default),\nthis can add to the malloc load. By using scratch buffers here we eliminate\nthat.\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/8972f32f751a8dd999c492526924c5acfadcf375"},{"sha":"107d554e91b4f00b748ae5ce71d9beba55512d74","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"serialize: introduce array read/write functions for uint32\n\nTo amortize the call overhead of serialize_archive_read_bytes() to these\nin one chunk and then convert the byte order later.\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/107d554e91b4f00b748ae5ce71d9beba55512d74"},{"sha":"2f040c854efe6f7c4c3f6b81ada7a8beb6144014","author":{"name":"Balazs Scheidler","email":"dcdbeec593d63c312787688b932aee771682ec3e@balabit.com"},"message":"logmsg: use array serialization functions to improve performance\n\nSigned-off-by: Balazs Scheidler <balazs.scheidler@balabit.com>","distinct":false,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/2f040c854efe6f7c4c3f6b81ada7a8beb6144014"},{"sha":"4af3d03a975c73b341535d40a628c023f6eb0f29","author":{"name":"Budai Laszlo","email":"4fc05848b45c2f4d99dd8f90cc81a7f3b06fdcb3@balabit.com"},"message":"Merge pull request #1133 from balabit/f/logmsg-serialize-performance\n\nF/logmsg serialize performance","distinct":true,"url":"https://api.github.com/repos/balabit/syslog-ng/commits/4af3d03a975c73b341535d40a628c023f6eb0f29"}]}
{"actor":{"display_login":"lbudai"}}