<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser/src/ingestor.hpp, branch webstat-0.7.1</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.7.1</id>
<link rel='self' href='http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.7.1'/>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2026-07-09T12:09:34Z</updated>
<entry>
<title>Include type in existingEntities cache</title>
<updated>2026-07-09T12:09:34Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-07-09T12:09:34Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=fa277f69b14446b47a3dfa63ed7fc1a8a16ef7f8'/>
<id>urn:sha1:fa277f69b14446b47a3dfa63ed7fc1a8a16ef7f8</id>
<content type='text'>
Fixes the issues of entities having the same value (hash) but occurring
in different places. This is most often when the client states the
virtual host name as the referrer.
</content>
</entry>
<entry>
<title>Update parsed type of duration field</title>
<updated>2026-07-05T16:12:53Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-07-05T16:12:53Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=cb47664b464331b88dad62796729fe08f07f30e4'/>
<id>urn:sha1:cb47664b464331b88dad62796729fe08f07f30e4</id>
<content type='text'>
uint32_t doesn't cut it, changed to uint64_t.
</content>
</entry>
<entry>
<title>Insert uninsirtable lines using the hostnameId recorded in the bad_lines table</title>
<updated>2026-07-04T19:19:34Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-07-04T19:19:34Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=870aa90c005f77a73445f5c39f9fd9bbb7604fe8'/>
<id>urn:sha1:870aa90c005f77a73445f5c39f9fd9bbb7604fe8</id>
<content type='text'>
Includes the same fix from the previous commit which stops caching
entities until the inserts are complete.
Updates storeLogLine to take an insert command with the hostnameId
already bound.
</content>
</entry>
<entry>
<title>Include extra details when storing unparsable and uninsertable lines.</title>
<updated>2026-07-04T18:36:30Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-07-04T11:11:38Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=61e106fe6a15f76b73125682e91d5c17ee875be2'/>
<id>urn:sha1:61e106fe6a15f76b73125682e91d5c17ee875be2</id>
<content type='text'>
Now includes the hostnameId, timestamp and optionally error message.
Updates idx_entities_retryinsert to account for details not being NULL.
Also fixes the issue where the entities inserted and rollback would
still be recorded in the entity cache if the access log insert failed.
This would have lead to PK violations later on.
</content>
</entry>
<entry>
<title>Increase size field to 64bit and fix scan types</title>
<updated>2026-06-27T12:05:03Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-06-27T12:05:03Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=22a85bd4e1f6005455b91bb3edff68d4019526a1'/>
<id>urn:sha1:22a85bd4e1f6005455b91bb3edff68d4019526a1</id>
<content type='text'>
2^31 not big enough for large file downloads, bumped to 64bit.
Replace woolly types with specific uintXX_t in scn call.
</content>
</entry>
<entry>
<title>Remove the purge time limit</title>
<updated>2026-06-08T11:31:07Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-06-08T11:31:07Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=ee9517e452376bc4963aa3a43ca90ebb9d710b85'/>
<id>urn:sha1:ee9517e452376bc4963aa3a43ca90ebb9d710b85</id>
<content type='text'>
This is a background job, has been for a while, so we can sanely allow
it to run for as long as is required.
</content>
</entry>
<entry>
<title>Add job to retry insertion of log lines which had previously failed</title>
<updated>2026-05-18T19:43:51Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-18T19:43:51Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=e1a6654bd5e284842ffbc3b93bd390f3bad7a187'/>
<id>urn:sha1:e1a6654bd5e284842ffbc3b93bd390f3bad7a187</id>
<content type='text'>
Entities are reparsed and reinserted, removed on success.
Failure to parse updates the entity type to UnparsableLine.
Failure to insert again updates the detail with the reason.
</content>
</entry>
<entry>
<title>Add ThreadSafeT helper</title>
<updated>2026-05-17T15:18:08Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-17T13:32:11Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=7b1aeee4565fe0a2eed4a4fa8695b2a5fb671e06'/>
<id>urn:sha1:7b1aeee4565fe0a2eed4a4fa8695b2a5fb671e06</id>
<content type='text'>
Wraps a templated value and a templated mutex (defaults to shared_mutex)
and provides safe access, locked with either a shared_lock (const value)
or lock_guard (non-const value).
Applies this to existingEntities.
</content>
</entry>
<entry>
<title>Remove maxBatches</title>
<updated>2026-05-13T14:01:30Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-13T14:01:30Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=868446ad4d8ba33053b048dd4d82b6d4f5328f07'/>
<id>urn:sha1:868446ad4d8ba33053b048dd4d82b6d4f5328f07</id>
<content type='text'>
It's not required; DB insertion occurs only in a background thread now.
</content>
</entry>
<entry>
<title>Handle completed curl operations in a job</title>
<updated>2026-05-07T14:41:19Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-07T14:41:19Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=157614349f5f4c2387e0a970a4ca3ddaeaa23446'/>
<id>urn:sha1:157614349f5f4c2387e0a970a4ca3ddaeaa23446</id>
<content type='text'>
Removes the need to block the main thread from reading stdin while
performing post curl operation actions, such as updating user agent
details.
</content>
</entry>
</feed>
