<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser/src/ingestor.hpp, branch webstat-0.6</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.6</id>
<link rel='self' href='http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.6'/>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2026-06-08T11:31:07Z</updated>
<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>
<entry>
<title>Add support for conditional job execution</title>
<updated>2026-05-07T14:40:11Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-07T14:40:11Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=cbb2035fd33ba84fea56c7a7223c563b925e8649'/>
<id>urn:sha1:cbb2035fd33ba84fea56c7a7223c563b925e8649</id>
<content type='text'>
Performs a check before launching a job thread, rather than just having
it exit immediately.
</content>
</entry>
<entry>
<title>Switch to std::map for existingEntities cache</title>
<updated>2026-05-05T09:00:45Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-05T09:00:45Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=b7346649926b4357b27aa81238eb34cebe39671b'/>
<id>urn:sha1:b7346649926b4357b27aa81238eb34cebe39671b</id>
<content type='text'>
Insertion cost of flat_map too high when map grows large.
</content>
</entry>
<entry>
<title>Start curl operations from any thread</title>
<updated>2026-05-02T22:13:08Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-02T22:13:08Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=af422b45c7fb406dae35dc3f811e50d92e854f58'/>
<id>urn:sha1:af422b45c7fb406dae35dc3f811e50d92e854f58</id>
<content type='text'>
Ingest is now background only, so don't limit where they're started
from. Adds some unfortunate locking around the curl maps.
</content>
</entry>
<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>
</feed>
