Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
cta
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Harbor Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
dCache
cta
Commits
4443bc35
Commit
4443bc35
authored
5 years ago
by
Cedric Caffy
Browse files
Options
Downloads
Patches
Plain Diff
Modified TapeStatisticsUpdater SQL query so that it takes into account
multiple copies of a file in the same tape (rare case)
parent
ff7ed375
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
statistics/TapeStatisticsUpdater.cpp
+31
-24
31 additions, 24 deletions
statistics/TapeStatisticsUpdater.cpp
with
31 additions
and
24 deletions
statistics/TapeStatisticsUpdater.cpp
+
31
−
24
View file @
4443bc35
...
...
@@ -43,36 +43,43 @@ void TapeStatisticsUpdater::updateTapeStatistics() {
"("
"SELECT "
"'0' AS DIRTY,"
"COALESCE(
NON_EMPTY_TAPE_STATS.NB_MASTER_FILES, 0) AS COMPUTED_
NB_MASTER_FILES,"
"COALESCE(
NON_EMPTY_TAPE_STATS.MASTER_DATA
_IN_BYTES,
0) AS
COMPUTED_
MASTER_DATA_IN_BYTES,"
"COALESCE(
NON_EMPTY_TAPE
_STATS.NB_COPY_NB_1,0) AS NB_COPY_NB_1,"
"COALESCE(
NON_EMPTY_TAPE
_STATS.COPY_NB_1_IN_BYTES,0) AS COPY_NB_1_IN_BYTES,"
"COALESCE(
NON_EMPTY_TAPE
_STATS.NB_COPY_NB_GT_1,0) AS NB_COPY_NB_GT_1,"
"COALESCE(
NON_EMPTY_TAPE
_STATS.COPY_NB_GT_1_IN_BYTES,0) AS COPY_NB_GT_1_IN_BYTES "
"COALESCE(
SUM(SUMMARIZED_STATS.NB_COPY_NB_1) + SUM(SUMMARIZED_STATS.NB_COPY_NB_GT_1),0) AS
NB_MASTER_FILES,"
"COALESCE(
SUM(SUMMARIZED_STATS.COPY_NB_1_IN_BYTES) + SUM(SUMMARIZED_STATS.COPY_NB_GT_1
_IN_BYTES
)
,0) AS MASTER_DATA_IN_BYTES,"
"COALESCE(
SUM(SUMMARIZED
_STATS.NB_COPY_NB_1
)
,0) AS NB_COPY_NB_1,"
"COALESCE(
SUM(SUMMARIZED
_STATS.COPY_NB_1_IN_BYTES
)
,0) AS COPY_NB_1_IN_BYTES,"
"COALESCE(
SUM(SUMMARIZED
_STATS.NB_COPY_NB_GT_1
)
,0) AS NB_COPY_NB_GT_1,"
"COALESCE(
SUM(SUMMARIZED
_STATS.COPY_NB_GT_1_IN_BYTES
)
,0) AS COPY_NB_GT_1_IN_BYTES "
"FROM "
"TAPE T "
"LEFT OUTER JOIN "
"("
"SELECT "
"TAPE_FILE.VID,"
"'0' AS DIRTY,"
"COUNT(TAPE_FILE.FSEQ) AS NB_MASTER_FILES,"
"SUM(ARCHIVE_FILE.SIZE_IN_BYTES) AS MASTER_DATA_IN_BYTES,"
"CASE WHEN TAPE_FILE.COPY_NB = 1 THEN COUNT(TAPE_FILE.FSEQ) ELSE 0 END AS NB_COPY_NB_1,"
"CASE WHEN TAPE_FILE.COPY_NB = 1 THEN SUM(ARCHIVE_FILE.SIZE_IN_BYTES) ELSE 0 END AS COPY_NB_1_IN_BYTES,"
"CASE WHEN TAPE_FILE.COPY_NB > 1 THEN COUNT(TAPE_FILE.FSEQ) ELSE 0 END AS NB_COPY_NB_GT_1,"
"CASE WHEN TAPE_FILE.COPY_NB > 1 THEN SUM(ARCHIVE_FILE.SIZE_IN_BYTES) ELSE 0 END AS COPY_NB_GT_1_IN_BYTES "
"STATS.VID AS VID,"
"CASE WHEN COPY_NB = 1 THEN STATS.NB_FILES ELSE 0 END AS NB_COPY_NB_1,"
"CASE WHEN COPY_NB = 1 THEN STATS.DATA_IN_BYTES ELSE 0 END AS COPY_NB_1_IN_BYTES,"
"CASE WHEN COPY_NB > 1 THEN STATS.NB_FILES ELSE 0 END AS NB_COPY_NB_GT_1,"
"CASE WHEN COPY_NB > 1 THEN STATS.DATA_IN_BYTES ELSE 0 END AS COPY_NB_GT_1_IN_BYTES "
"FROM "
"TAPE_FILE "
"INNER JOIN ARCHIVE_FILE ON "
"TAPE_FILE.ARCHIVE_FILE_ID = ARCHIVE_FILE.ARCHIVE_FILE_ID "
"WHERE "
"TAPE_FILE.SUPERSEDED_BY_VID IS NULL AND "
"TAPE_FILE.SUPERSEDED_BY_FSEQ IS NULL "
"GROUP BY TAPE_FILE.VID, TAPE_FILE.COPY_NB"
") NON_EMPTY_TAPE_STATS ON "
"T.VID = NON_EMPTY_TAPE_STATS.VID "
"WHERE T.VID = TAPE_TO_UPDATE.VID"
"("
"SELECT "
"TAPE_FILE.VID AS VID,"
"TAPE_FILE.COPY_NB AS COPY_NB,"
"COUNT(TAPE_FILE.FSEQ) AS NB_FILES,"
"SUM(ARCHIVE_FILE.SIZE_IN_BYTES) AS DATA_IN_BYTES "
"FROM "
"TAPE_FILE "
"INNER JOIN "
"ARCHIVE_FILE "
"ON "
"TAPE_FILE.ARCHIVE_FILE_ID = ARCHIVE_FILE.ARCHIVE_FILE_ID "
"WHERE "
"TAPE_FILE.SUPERSEDED_BY_VID IS NULL AND TAPE_FILE.SUPERSEDED_BY_FSEQ IS NULL AND TAPE_FILE.VID = TAPE_TO_UPDATE.VID "
"GROUP BY TAPE_FILE.VID, TAPE_FILE.COPY_NB"
") STATS "
"GROUP BY STATS.VID, STATS.COPY_NB, STATS.NB_FILES, STATS.DATA_IN_BYTES"
") SUMMARIZED_STATS ON SUMMARIZED_STATS.VID = TAPE_TO_UPDATE.VID "
"WHERE T.VID = TAPE_TO_UPDATE.VID "
"GROUP BY T.VID"
") "
"WHERE TAPE_TO_UPDATE.DIRTY='1'"
;
try
{
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment