Revision history for Perl extension Minion::Backend::mysql.
1.006 2024-05-22 12:55:45-05:00 America/Chicago
[Fixed]
- Fixed locking for schema version 16 upgrade. Thanks @GSGpeterjoh and
@GrantStreetGroup for the fix! [Github #46]
1.005 2024-05-06 09:43:27-05:00 America/Chicago
[Fixed]
- Added index to improve performance for deleting old, finished jobs.
Thanks @GSGpeterjoh and @GrantStreetGroup for this fix! [Github #45]
1.004 2023-10-31 12:18:42-05:00 America/Chicago
[Fixed]
- Fixed check for expired parent jobs when dequeuing. Thanks @a-leelan
and @GrantStreetGroup for fixing this bug! [Github #43]
- Dropped useless index on minion_jobs table (now that it has
a primary key). Thanks @a-leelan and @GrantStreetGroup for fixing
this! [Github #43]
1.003 2023-09-21 17:39:03-05:00 America/Chicago
[Fixed]
- Added primary keys to the tables missing them. This improves
performance of the larger tables on distributed MySQL derivatives
like Galera. Thanks Alan Lee of @GrantStreetGroup for providing this
fix!
1.002 2023-09-11 13:37:53-05:00 America/Chicago
[Fixed]
- Improved performance on repair queries to prevent locking up the
jobs table for too long. Thanks @larryl and @GrantStreetGroup for
fixing this! (Github #41)
1.001 2022-10-05 13:34:51-05:00 America/Chicago
[Docs]
- Added ERRORS section for common problems.
- Documented problem with database table not being created. Thanks
@toddbruner for reporting this issue! (Github #39)
1.000 2021-12-21 12:22:50-06:00 America/Chicago
Removed old migrations to improve performance
0.34 2021-12-21 11:49:10-06:00 America/Chicago
*** NOTE ***
This is the last release before v1.00. You will need to upgrade to at
least v0.30 before upgrading to v1.00 or beyond!
[Fixed]
- Fixed running expensive notes migration query every single time the
Minion object is created. This should prevent the need for the index
exclusively on the key column, which was only used by this query.
- Fixed some queries to add table names to column specs so that it
might help an older version of the backend work on a newer version
of the schema (like during the v0.30 migration).
0.33 2021-12-15 15:38:46-06:00 America/Chicago
[Fixed]
- Fixed job dependencies not being removed when a parent job was
deleted. Thanks @larryl of @GrantStreetGroup for reporting this
issue!
0.32 2021-12-11 16:31:50-06:00 America/Chicago
[Fixed]
- Fixed a warning/error when dequeue finds no job to dequeue.
- Removed useless indexes
- Added a new, useful index. Thanks @houndegnonm of @GrantStreetGroup
for finding it!
0.31 2021-12-08 16:48:56-06:00 America/Chicago
[Fixed]
- Fixed quotes in new trigger. Some users may have gotten an error
when trying to upgrade to 0.30. That error is now fixed.
0.30 2021-11-30 13:05:48-06:00 America/Chicago
[Added]
- Added some denormalized columns to the dependencies table to improve
dequeue performance. These optimizations improve performance by 2-3x
on MySQL 5.7 and 5-6x on MySQL 8.
[Fixed]
- Reduced the size of some columns that were entirely too large:
"state" is now an enum, so it takes only one byte.
"task" is now a VARCHAR limited to 50 characters.
0.29 2021-06-07 10:38:25-05:00 America/Chicago
[Fixed]
- Sped up enqueue by only using a transaction when needed. `no_txn`
will still always disable enqueue transactions.
0.28 2021-06-04 17:49:59-05:00 America/Chicago
[Fixed]
- Improved performance of stats function, listing jobs (which also is
used to get a single job's information), and repairing jobs with
missing workers
0.27 2021-06-03 15:08:43-05:00 America/Chicago
[Fixed]
- Improved performance of old job cleanup
0.26 2021-05-27 17:26:48-05:00 America/Chicago
[Fixed]
- Improved performance of the notes table by adding an index. Thanks
@larryl of Grant Street Group for the patch!
- Fixed rudely clobbering a $@ when updating notes
- Fixed missing cleanup queries in reset
- Removed the transaction around the dequeue. This allows the race to
happen between SELECT and UPDATE, but now we check who wins the
race. The loser goes back to try another SELECT. Thanks @larryl for
the SQL.
[Added]
- Added a `no_txn` attribute to disable the transaction around the
`enqueue` queries. I do not recommend using this in production,
but it helps make testing easier: Tests can be performed in
a transaction, and then the transaction rolled back to undo any
changes before the next test.
0.25 2021-05-21 21:32:59-05:00 America/Chicago
[Fixed]
- Fixed compatibility with DBD::MariaDB. Thanks @saintserge for the
patch! [Github #35]
0.24 2021-04-12 19:04:09-04:00 America/Detroit
[NOTE]
This release tries to fix some reported deadlocks from job dequeuing
by moving the dequeue process into a transaction with a `SELECT ...
FOR UPDATE` query. Please make sure to test this release in your
environment before moving it to production, and be prepared to roll
back to v0.23. Please report any issues you have so they can get
fixed!
[Fixed]
- Fix compatibility with Mojolicious 9.0: The tests would fail
because the `delay` helper is no longer available.
- Fix jobs being run before their parents. Thanks @tn-laslov for
reporting this issue and providing the solution! [Github #34]
- Fix slow job dequeue on very large jobs tables. Thanks @znestor
for reporting this issue and providing the solution! [Github #33]
- Trying to fix some reported deadlocks in job dequeueing. Thanks
@srchulo for reporting and help debugging this issue, and Grant
Street Group for additional debugging information. [Github #28]
- Fix note values not accepting UTF-8 characters. Thanks @uralm1 for
reporting this issue and providing a fix! [Github #32]
0.23 2020-12-19 16:56:40-06:00 America/Chicago
[Fixed]
- Fixed backend committing the current transaction whenever it is
instanciated. This was causing problems with tests that use
transactions for isolation and then rollback to restore. Thanks
Grant Street Group for reporting this issue!
0.22 2020-12-17 22:04:50-06:00 America/Chicago
[Fixed]
- Added a primary key to the dependencies table
(`minion_job_depends`). This helps with MySQL cluster systems (like
Percona XtraDB) which need primary keys in order to correctly
propagate writes. Thanks @nickyinhu and Grant Street Group for
submitting this patch! (Github #31)
0.21 2020-07-31 22:55:46-05:00 America/Chicago
[Fixed]
- The mysql backend is now fully-compatible with Minion 10.13,
including:
- Listing jobs by notes
- Expiring jobs (experimental)
- Lax dependencies (experimental)
0.20 2020-04-18 20:24:43-05:00 America/Chicago
[Fixed]
- Fixed error trying to load database on MySQL 8.0: The lock function
did not have the appropriate annotations. Thanks @yahermann for
reporting this issue! [Github #27]
0.19 2020-01-30 23:48:41-06:00 America/Chicago
[Fixed]
- This backend is now (mostly) compatible with Minion 10.04.
Only searching for jobs by notes is not implemented yet.
0.18 2019-09-03 13:28:42-05:00 America/Chicago
[Fixed]
- Fixed an issue with InnoDB index sizing and MySQL strict mode.
Thanks @larryl and Grant Street Group! (Github #24)
0.17 2019-08-27 16:11:57-05:00 America/Chicago
[Fixed]
- Fixed migrations not running when given an existing MySQL
connection. Thanks @larryl and Grant Street Group!
- Improved performance for locks and dequeueing. Thanks @larryl and
Grant Street Group!
- Fixed the statistics to work under MySQL strict mode. Thanks @larryl
and Grant Street Group!
0.16 2019-08-10 21:27:33-05:00 America/Chicago
[Added]
- Added Travis tests for more MySQL and MariaDB versions. Thanks
@paultcochrane for the initial work on this. (Github #1)
- You can now pass in a connected Mojo::mysql instance to the backend
to make it use that (instead of creating its own instance). This can
help make sure that concurrent connections are limited and reused.
Thanks @larryl & @GrantStreetGroup for contributing this!
(Github #22)
[Fixed]
- Fixed SQL errors under MySQL strict mode (Specifically, the SQL
GROUP BY columns need to be specified as SELECTed). Thanks @larryl
& @GrantStreetGroup! (Github #22)
- Fixed backend creating dozens of connections to MySQL. Now basic
operations should be far more efficient. Thanks @larryl
& @GrantStreetGroup! (Github #22)
0.15 2018-11-10 11:46:56-06:00 America/Chicago
[Fixed]
- Fixed warning when pulling history for the Minion admin console.
Thanks @chromedome! [Github #20]
- Fixed tests failing with "DBD::mysql::st execute failed: This
function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its
declaration and binary logging is enabled". MySQL 8 adds some sanity
checks to functions and we need to override them. This might
actually be a problem that we will have to fix later...
0.14 2018-04-30 20:41:08-04:00 America/New_York
[Fixed]
- Fixed backend to work with Minion v9.03. Thanks @pentabion! [Github
#18]
- Fixed an intermittently failing test. Thanks @pentabion! [Github
#19]
[Other]
- Fixed Travis configuration to pass tests on 5.12/5.10 and improve
performance
0.13 2018-02-03 11:28:16-06:00 America/Chicago
[Added]
- Added `list_locks` method so that the Minion admin UI works. Thanks
@pentabion! [Github #17]
0.12 2018-01-14 01:22:07-06:00 America/Chicago
[Fixed]
- Fixed all the missing features from the backend to fully-support
Minion 8.
0.11 2017-11-18 13:43:48-06:00 America/Chicago
[Fixed]
- Upgraded backend to work with Minion 8 and the Minion admin UI
- Allow hashref of options to Mojo::mysql. This lets us pass in a full
DBI connection string to use options not normally available via the
`mysql://` URL string.
0.10 2017-11-05 19:12:38-06:00 America/Chicago
[Fixed]
- Fixed tests to only run on MySQL 5.6.5 or higher. Versions older
than this do not support the `TIMESTAMP` column settings we are
using. Thanks @paultcochrane!
- Fixed tests to report which MySQL version is running so we can more
easily detect why database queries are failing. Thanks
@paultcochrane!
- Fixed travis reporting coverage to coveralls. Thanks @paultcochrane!
- Removed some whitespace-only POD lines which `podchecker` was
complaining about. Thanks @paultcochrane!
0.09 2017-11-02 14:08:31-05:00 America/Chicago
[Added]
- Added initial Travis CI configuration. Thanks @paultcochrane!
(Github #5)
[Fixed]
- Fixed missing test prereqs as requested by CPANTS. Thanks
@paultcochrane! (Github #4)
- Added an explicit Perl version declaration as requested by CPANTS.
Thanks @paultcochrane! (Github #3)
- Fixed links to Travis and Coveralls badges. Thanks @paultcochrane
(Github #2)
0.08 2017-09-01 20:21:11-05:00 America/Chicago
- Fixed contributors showing multiple times in the documentation
0.07 2017-09-01 20:02:45-05:00 America/Chicago
- Increased size of args/result fields to support jobs with more
information.
0.06 2017-09-01
- Partial support for Minion 7.0
- Automatic job retry
- Worker commands
- Missing features: job parents, locking, job notes
This is enough to boot Minion and run basic jobs. Any jobs that
depend on unimplemented features may not work correctly, and may
cause errors.
0.04 After 0.03
- Support Minion 2.0
0.03 After 0.02
- Inital Pub/Sub work
0.02 After 0.01
- Add in complete Mojolicious::Lite example
0.01 Tue Sep 15 19:24:46 2015
- original version; created by h2xs 1.23 with options
-A -X -n Minion::Backend::mysql