Skip to content

Commit 61ca1d8

Browse files
committed
try without pgrowlocks
1 parent 5efafbc commit 61ca1d8

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

lib/model/query/blobs.js

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,32 @@ const getById = (blobId) => ({ maybeOne }) =>
3232
.then(map(construct(Blob)));
3333

3434
const s3CountByStatus = (status) => ({ oneFirst }) => {
35+
const lockCTEs = sql`
36+
notlockeds AS (
37+
SELECT 1 FROM blobs FOR UPDATE SKIP LOCKED
38+
),
39+
locked AS (
40+
SELECT (
41+
(SELECT count(id) FROM blobs)
42+
-
43+
(SELECT count(*) FROM notlockeds)
44+
) as count
45+
)`;
3546
// in_progress is an implicit status
3647
if (status === 'in_progress') {
37-
return oneFirst(sql`SELECT COUNT(*) FROM PGROWLOCKS('blobs')`);
48+
return oneFirst(sql`
49+
WITH ${lockCTEs}
50+
SELECT count FROM locked`
51+
);
52+
// return oneFirst(sql`SELECT COUNT(*) FROM PGROWLOCKS('blobs')`);
3853
} else if (status === 'pending') {
3954
return oneFirst(sql`
4055
WITH
4156
allpending AS (
4257
SELECT COUNT(*) FROM blobs WHERE s3_status='pending'
4358
),
44-
locked AS (
45-
SELECT COUNT(*) FROM PGROWLOCKS('blobs')
46-
)
47-
SELECT allpending.count-locked.count FROM allpending, locked
59+
${lockCTEs}
60+
SELECT allpending.count-locked.count FROM allpending, locked
4861
`);
4962
} else {
5063
return oneFirst(sql`SELECT COUNT(*) FROM blobs WHERE s3_status=${status}`);

0 commit comments

Comments
 (0)