-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathCHANGES
385 lines (255 loc) Β· 11.9 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
Revision history for Perl extension Minion::Backend::mysql.
{{ $NEXT }}
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