Mon, 07 Nov 2011 10:43:09 -0800 Retain the CDB struct between lookups, only freeing when reopening the
Mahlon E. Smith <mahlon@martini.nu> [Mon, 07 Nov 2011 10:43:09 -0800] rev 17
Retain the CDB struct between lookups, only freeing when reopening the db. Big, big speed boost.
Mon, 07 Nov 2011 10:43:06 -0800 Ensure that all output is flushed immediately.
Mahlon E. Smith <mahlon@martini.nu> [Mon, 07 Nov 2011 10:43:06 -0800] rev 16
Ensure that all output is flushed immediately. Fix free() bug for non-matching rules. When creating the rules cdb, make the tmpfile in the cwd instead of /tmp. Make regular expression matches case insensitive.
Sat, 05 Nov 2011 12:52:29 -0700 Add whitelisting rules, to negate other matches if they come first in
Mahlon E. Smith <mahlon@martini.nu> [Sat, 05 Nov 2011 12:52:29 -0700] rev 15
Add whitelisting rules, to negate other matches if they come first in the ruleset. Remove the results set array completely, it's faster and requires less memory to do the comparisons inline.
Fri, 04 Nov 2011 20:34:28 -0700 There isn't a fast way to look up ( value exists or null ) for every
Mahlon E. Smith <mahlon@martini.nu> [Fri, 04 Nov 2011 20:34:28 -0700] rev 14
There isn't a fast way to look up ( value exists or null ) for every piece of data that we're handed from squid -- a full table scan must be performed for each request, regardless of any indexing in place. With a decent number of rules, it's much, much slower than I anticipated, making it fairly pointless to even do parsing in ragel for speed. Trading some matching features (IPs, for now) for speed, and aiming at just doing good host/path matching at the moment, using CDB for fast host keying. Ripped out all the SQLite work, replacing it with a first round of CDB lookups. Added a ascii rulefile to cdb converter flag. Churning through the requests again! Also, fixed an off-by-one error with line extending.
Mon, 31 Oct 2011 17:17:07 -0700 1st iteration of volta actually doing something. Process the request,
Mahlon E. Smith <mahlon@laika.com> [Mon, 31 Oct 2011 17:17:07 -0700] rev 13
1st iteration of volta actually doing something. Process the request, find the best matching rule, and rewrite the request. Without the DB queries, volta was parsing over 750k requests a second. Currently, it's down to 129.5 with 1161 rules in place. Yikes. I may need to re-evaluate some design choices here.
Sun, 23 Oct 2011 22:59:59 -0700 Clean up redundant parser actions via preprocessor macros, add a
Mahlon E. Smith <mahlon@martini.nu> [Sun, 23 Oct 2011 22:59:59 -0700] rev 12
Clean up redundant parser actions via preprocessor macros, add a hostname->tld extractor for doing tld "wildcard" queries. Stop tracking 'parser.c' completely.
Mon, 17 Oct 2011 09:12:00 -0700 Carry the amalgamated sqlite3 around with volta, rather than requiring
Mahlon E. Smith <mahlon@martini.nu> [Mon, 17 Oct 2011 09:12:00 -0700] rev 11
Carry the amalgamated sqlite3 around with volta, rather than requiring it to be installed on the system -- making volta a zero dependency compile. Add some more Makefile hacks to get things consistently building across OSX, FreeBSD, and Ubuntu. (There may be more later, but I'll deal with those then.)
Mon, 17 Oct 2011 09:12:00 -0700 Get the ragel line parser properly tokenizing the input lines. Add a
Mahlon E. Smith <mahlon@martini.nu> [Mon, 17 Oct 2011 09:12:00 -0700] rev 10
Get the ragel line parser properly tokenizing the input lines. Add a "lines per second" timer. General cleanup and memory management.
Wed, 28 Sep 2011 09:04:16 -0700 Ansi-fy getopt function and variable declarations.
Mahlon E. Smith <mahlon@martini.nu> [Wed, 28 Sep 2011 09:04:16 -0700] rev 9
Ansi-fy getopt function and variable declarations.
Wed, 28 Sep 2011 09:04:16 -0700 Add common archive files (LICENCE, README, etc) and a 'release' Makefile
Mahlon E. Smith <mahlon@martini.nu> [Wed, 28 Sep 2011 09:04:16 -0700] rev 8
Add common archive files (LICENCE, README, etc) and a 'release' Makefile target.
(0) -10 +10 tip