<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser/test/test-ingest.cpp, branch webstat-0.5</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.5</id>
<link rel='self' href='http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.5'/>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2026-05-02T17:58:21Z</updated>
<entry>
<title>Ingest log lines in a background thread</title>
<updated>2026-05-02T17:58:21Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-02T17:58:21Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=4675ab65ea5e807e0d457845a0ca84edcf1262c9'/>
<id>urn:sha1:4675ab65ea5e807e0d457845a0ca84edcf1262c9</id>
<content type='text'>
This prevents halting reading input during data insertion.
</content>
</entry>
<entry>
<title>Rename jobIngestParkedLines to jobReadParkedLines</title>
<updated>2026-05-01T16:13:29Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-01T16:13:29Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=5c0206f48dc7f90009629d0a74bdc1dd6b4f67ea'/>
<id>urn:sha1:5c0206f48dc7f90009629d0a74bdc1dd6b4f67ea</id>
<content type='text'>
Actual ingest is performed by the main process, jobReadParkedLines just
reads the park file and adds it to the queue.
</content>
</entry>
<entry>
<title>Append unparked lines to queue in finalise function</title>
<updated>2026-05-01T16:01:56Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-01T15:58:01Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=0e768a00fab74818533458b5b40c84556b2137e0'/>
<id>urn:sha1:0e768a00fab74818533458b5b40c84556b2137e0</id>
<content type='text'>
Fixes issue where queuedLines would be accessed from background thread.
</content>
</entry>
<entry>
<title>Return a callable from jobs</title>
<updated>2026-05-01T14:31:02Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-01T14:31:02Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=ed3598ac6f77f62b0c4fe32d4dab05784e5fa51d'/>
<id>urn:sha1:ed3598ac6f77f62b0c4fe32d4dab05784e5fa51d</id>
<content type='text'>
Allows safely running finalisation code in the main thread if required.
</content>
</entry>
<entry>
<title>Replace use of crc32 for entity id</title>
<updated>2026-04-15T11:05:20Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-04-15T11:03:21Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=5b2166496e5f3ff2c4276e0b5b28f109c70673d5'/>
<id>urn:sha1:5b2166496e5f3ff2c4276e0b5b28f109c70673d5</id>
<content type='text'>
Entity value is MD5 hashed same as DB unique key, but the id itself is
now taken from the DB primary key which is sequence generated.
</content>
</entry>
<entry>
<title>Return path of parked lines log file from parkQueuedLogLines</title>
<updated>2026-04-10T19:22:35Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-04-10T19:22:35Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=72bfa9dd305258789b0d2e80f8af13962e5aac42'/>
<id>urn:sha1:72bfa9dd305258789b0d2e80f8af13962e5aac42</id>
<content type='text'>
Or the last errno on failure.
</content>
</entry>
<entry>
<title>Parse escaping in query strings</title>
<updated>2026-03-27T11:43:18Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-27T11:43:18Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=1e551e618a63c869fde6a4b327566b38696a5f45'/>
<id>urn:sha1:1e551e618a63c869fde6a4b327566b38696a5f45</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revise stats and add signal handlers to log them and reset them</title>
<updated>2026-03-25T18:44:15Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-25T18:44:15Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=426a6a3d9309e3f7cf5fc89d6a687c7895785cc3'/>
<id>urn:sha1:426a6a3d9309e3f7cf5fc89d6a687c7895785cc3</id>
<content type='text'>
Also logs them on main loop exit.
</content>
</entry>
<entry>
<title>Add logging :-o</title>
<updated>2026-03-20T23:48:32Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-20T23:48:32Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=05c47ab65e73b16887b7c7a1eb31acf6d364ef41'/>
<id>urn:sha1:05c47ab65e73b16887b7c7a1eb31acf6d364ef41</id>
<content type='text'>
Adds virtual log function, real implementation writes to syslog.
Test implementation writes to BOOST_TEST_MESSAGE, perf implementation
discards.
Replaces existing prints to stderr and adds logs to all key points.
</content>
</entry>
<entry>
<title>Insert log entries in batches</title>
<updated>2026-03-20T02:23:08Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-20T02:17:04Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=0f5a0a8e2d43774288d4d6ea747278ca6e085a2a'/>
<id>urn:sha1:0f5a0a8e2d43774288d4d6ea747278ca6e085a2a</id>
<content type='text'>
Store log lines in memory until threshold is reach or idle occurs, then
insert all the lines in a single transaction. Save points handle the
case of insertion errors. On success the queue is cleared.
Parked lines also saved in bulk, only necessary if queued lines could
not be inserted on shutdown, else the queue simply grows until ability
to insert is restored. Importing parked lines just adds them to the
queue and the normal process then follows.
</content>
</entry>
</feed>
