Skip to content

Commit a512f0c

Browse files
committed
Add NFS-based caching for hived data replays
1 parent d05cb7d commit a512f0c

File tree

4 files changed

+846
-27
lines changed

4 files changed

+846
-27
lines changed

.gitlab-ci.yaml

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ prepare_hived_image:
4444
tags:
4545
- public-runner-docker
4646
- hived-for-tests
47+
- haf-build-mainnet
4748

4849
prepare_hived_data:
4950
extends: .prepare_hived_data_5m
@@ -99,6 +100,7 @@ testnet_node_build:
99100
tags:
100101
- public-runner-docker
101102
- hived-for-tests
103+
- haf-build-testnet
102104

103105
beekeeper_tsc_build:
104106
extends: .npm_build_template
@@ -224,6 +226,7 @@ mirrornet_node_build:
224226
tags:
225227
- public-runner-docker
226228
- hived-for-tests
229+
- haf-build-mirrornet
227230

228231
extended_block_log_creation:
229232
extends: .extended_block_log_creation
@@ -236,8 +239,8 @@ extended_block_log_creation:
236239
IMAGE_TAG: "${CI_COMMIT_SHORT_SHA}"
237240
HIVE_SRC: "${CI_PROJECT_DIR}"
238241
HIVE_COMMIT: "${CI_COMMIT_SHORT_SHA}"
239-
# Use NFS cache path - monolithic mainnet 5M block_log is required for this job
240-
BLOCK_LOG_SOURCE_DIR: "/nfs/ci-cache/hive/block_log_5m_monolithic"
242+
# Use local block_log - all CI runners mount /blockchain read-only via services_volumes
243+
BLOCK_LOG_SOURCE_DIR: "$BLOCK_LOG_SOURCE_DIR_5M"
241244
BINARY_PATH: "${CI_PROJECT_DIR}/hived-mirrornet-binaries"
242245
rules:
243246
- if: $CI_COMMIT_TAG
@@ -293,8 +296,9 @@ mirrornet_replay_test:
293296

294297
variables:
295298
BINARIES_DIR: "hived-mirrornet-binaries"
296-
# Use NFS cache path - mainnet 5M block_log part files are cached here
297-
BLOCK_LOG_SOURCE_DIR: "/nfs/ci-cache/hive/block_log_5m"
299+
SCRIPTS_PATH: "$CI_PROJECT_DIR/scripts"
300+
# Use local block_log - all CI runners mount /blockchain read-only via services_volumes
301+
BLOCK_LOG_SOURCE_DIR: "$BLOCK_LOG_SOURCE_DIR_5M"
298302
NUMBER_OF_BLOCKS: 5000000
299303
MIRRORNET_WORKING_DIR: "$CI_PROJECT_DIR/mirrornet"
300304
MIRRORNET_BLOCKCHAIN_DATA_DIR: "$MIRRORNET_WORKING_DIR/mirrornet_blockchain_data"
@@ -309,15 +313,12 @@ mirrornet_replay_test:
309313
- mkdir -p "$MIRRORNET_BLOCKCHAIN_DATA_DIR"
310314
- mkdir -p "$MIRRORNET_BLOCKCHAIN_DATA_DIR/blockchain"
311315
- cp "$CI_PROJECT_DIR/docker/config_mirrornet_5M.ini" "$MIRRORNET_WORKING_DIR/config.ini"
312-
# Copy mainnet 5M block_log part files from NFS cache
313-
- cp ${BLOCK_LOG_SOURCE_DIR}/block_log_part.* "$MIRRORNET_SOURCE_5M_DATA_DIR/blockchain/"
316+
# Copy monolithic block_log from local mount (no merge step needed)
317+
- cp "${BLOCK_LOG_SOURCE_DIR}/block_log" "$MIRRORNET_SOURCE_5M_DATA_DIR/blockchain/"
318+
- cp "${BLOCK_LOG_SOURCE_DIR}/block_log.artifacts" "$MIRRORNET_SOURCE_5M_DATA_DIR/blockchain/"
314319
- ls -la "$MIRRORNET_SOURCE_5M_DATA_DIR/blockchain/"
315320
- cd "$BINARIES_DIR"
316321
script:
317-
- echo "Generating artifacts file for block_log."
318-
- time ./hived
319-
--block-log-split=-1
320-
-d "$MIRRORNET_SOURCE_5M_DATA_DIR"
321322
- echo "Compressing block log to $NUMBER_OF_BLOCKS blocks with $NUMBER_OF_PROCESSES processes"
322323
- time ./compress_block_log
323324
-i "$MIRRORNET_SOURCE_5M_DATA_DIR/blockchain/block_log"
@@ -345,13 +346,15 @@ mirrornet_replay_test:
345346
--validate-during-replay
346347
--stop-at-block $NUMBER_OF_BLOCKS
347348
--exit-before-sync | tee hived-replay.log
348-
# Push generated mirrornet block_log to NFS cache for HAF CI
349+
# Push generated mirrornet block_log to NFS cache for HAF CI using cache-manager
350+
# Uses tar archive for atomic writes and metadata tracking
349351
- echo "Pushing mirrornet block_log to NFS cache..."
350-
- NFS_CACHE_DIR="/nfs/ci-cache/hive/block_log_5m_mirrornet"
351-
- mkdir -p "$NFS_CACHE_DIR"
352-
- cp "$MIRRORNET_BLOCKCHAIN_DATA_DIR/blockchain/block_log" "$NFS_CACHE_DIR/"
353-
- cp "$MIRRORNET_BLOCKCHAIN_DATA_DIR/blockchain/block_log.artifacts" "$NFS_CACHE_DIR/"
354-
- ls -lAh "$NFS_CACHE_DIR"
352+
- CACHE_MANAGER="$SCRIPTS_PATH/ci-helpers/cache-manager.sh"
353+
- |
354+
if [[ -x "$CACHE_MANAGER" ]]; then
355+
"$CACHE_MANAGER" put hive block_log_5m_mirrornet "$MIRRORNET_BLOCKCHAIN_DATA_DIR/blockchain" || echo "Warning: cache-manager put failed, using direct copy"
356+
fi
357+
- ls -lAh /nfs/ci-cache/hive/
355358
artifacts:
356359
paths:
357360
- "$BINARIES_DIR/*.log"

0 commit comments

Comments
 (0)