<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser/src/sql, branch main</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>http://git.randomdan.homeip.net/repo/webstat/atom?h=main</id>
<link rel='self' href='http://git.randomdan.homeip.net/repo/webstat/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2026-06-08T22:36:01Z</updated>
<entry>
<title>Select uninsertable is for update</title>
<updated>2026-06-08T22:36:01Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-06-08T22:36:01Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=856527b65e3c4807cf2bfb9d0e495d9712d56a90'/>
<id>urn:sha1:856527b65e3c4807cf2bfb9d0e495d9712d56a90</id>
<content type='text'>
This prevents other instances acting on the same rows in parallel,
potentially duplicating the rows and effort.
</content>
</entry>
<entry>
<title>Don't order rows when purging</title>
<updated>2026-06-08T10:27:49Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-06-08T10:27:49Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=aa8f64a3e140e74a1f8d0074b606dd1f8560ad0a'/>
<id>urn:sha1:aa8f64a3e140e74a1f8d0074b606dd1f8560ad0a</id>
<content type='text'>
The need to purge rows in request_time order is not necessary (all rows
will be deleted at some point in the process anyway) and is otherwise
extremely expensive. Removing the order by clause is a roughly 300x
speed up.
</content>
</entry>
<entry>
<title>Run the retry uninsertable process batched</title>
<updated>2026-05-18T23:36:50Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-18T23:36:50Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=b298237a297cb70640c85c016b702a35ecafd9b9'/>
<id>urn:sha1:b298237a297cb70640c85c016b702a35ecafd9b9</id>
<content type='text'>
Standard sized batch in a transaction, ordered by entity id.
Includes early exit if terminated.
</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>Only call entity insert handler if detail is null</title>
<updated>2026-05-05T11:24:11Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-05T11:24:11Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=200c3636b600ac2f997316612f1b1321112496cd'/>
<id>urn:sha1:200c3636b600ac2f997316612f1b1321112496cd</id>
<content type='text'>
Improves handling of entity inserts where the entity already exists and
already has detail; does not call the onInsert handler. This avoids
repeatedly fetching UA detail every time the UA is first seen by a
process.
</content>
</entry>
<entry>
<title>Add BRIN index to access_log.request_time and improve purge</title>
<updated>2026-04-23T09:11:13Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-04-23T09:11:13Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=7c59f2b66284b5b561c5368a0c834640ae0e611e'/>
<id>urn:sha1:7c59f2b66284b5b561c5368a0c834640ae0e611e</id>
<content type='text'>
Purge is now fully request_time based and not hacked around id ranges.
</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>Process new field, content-type, in input stream</title>
<updated>2026-01-18T01:36:06Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-01-18T01:36:06Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=04acfa679fd846ac829ded5562093b3766c85154'/>
<id>urn:sha1:04acfa679fd846ac829ded5562093b3766c85154</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pg_format schema.sql and sql/*.sql</title>
<updated>2026-01-17T20:33:37Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-01-17T18:33:56Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=9f1dfacb0f236da5f0413ac20e3376388df7d798'/>
<id>urn:sha1:9f1dfacb0f236da5f0413ac20e3376388df7d798</id>
<content type='text'>
No changes.
</content>
</entry>
<entry>
<title>Add job for puring old access log entries from the database</title>
<updated>2025-12-20T15:16:25Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-12-20T15:16:25Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=30a9d45f5322a63c2adf1de7a248ba3a9a0c3903'/>
<id>urn:sha1:30a9d45f5322a63c2adf1de7a248ba3a9a0c3903</id>
<content type='text'>
</content>
</entry>
</feed>
