On Tue, 2010-03-02 at 16:59 -0700, Patrick H. wrote:
Followup. I finished adding flush_lines and flush_timeout to the sql driver. They do what you'd expect, a commit after X number of lines or X seconds. I also fixed a bug that was causing a "." (dot) in the table name to be replaced by an underscore (dots are fully valid in oracle as they denote schema-table separation). I'm starting on converting the code over to using bind variables as well. The performance difference between plain text queries and prepared statements is very large. Especially since we'll be doing hundreds of inserts per second.
One of the users in the IRC channel suggested I ask about any licensing issues. Not sure what exactly since the syslog-ng code is GPL, but figured I'd ask anyway. If all is kosher, once all my changes are complete, I can send a patch file.
I'd really love to integrate your patches and until my plugins efforts is not complete we require you to sign a contributory license agreement, just like MySQL did [1]. Once my plugins work will be done, we'd go towards a common core under the GPL, without having to sign the CLA and commercial plugins for our premium edition. This would: 1) be better and easier for contributors because they can retain all their rights 2) be better for us, not having to maintain two independent branches of syslog-ng (which is right now about 6 branches: syslog-ng PE, syslog-ng OSE, syslog-ng Store Box, with 1-3 currently supported versions from each) Hopefully I can finish the plugin support in 3.2, but I'd like to integrate your patches earlier if you are willing to sign the CLA. [1] I don't really know what's up with MySQL these days, after being purchased by Sun and then by Oracle.
Sent: Tuesday, March 02, 2010 12:46:12 PM From: Patrick H. <syslogng@feystorm.net> To: syslog-ng@lists.balabit.hu Subject: [syslog-ng] commit with the oracle sql driver
So, extensive googling has failed me on this. I'm using the sql driver to output to an oracle database, with debugging mode, I can see that the insert queries are indeed being executed, however my tables remain empty. I've been through the source code, and it doesnt look like a commit is being performed anywhere. Though my google efforts, I did find one reference where someone patched the libdbi-drivers oracle driver to do a commit on success after every query, but that is insanely expensive (and ugly).
I have started modifying the code to add the flush_lines and flush_timeout option to the sql driver. But before I got too carried away, I was wondering why this is the way it is the way it is, or if I'm missing something.
____________________________________________________________________
______________________________________________________________________________ Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng FAQ: http://www.campin.net/syslog-ng/faq.html
______________________________________________________________________________ Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng FAQ: http://www.campin.net/syslog-ng/faq.html
-- Bazsi