| 900 | } |
| 901 | |
| 902 | void CSRNodeGroup::checkpointCSRHeaderColumns(const CSRNodeGroupCheckpointState& csrState) const { |
| 903 | std::vector<ChunkCheckpointState> csrOffsetChunkCheckpointStates; |
| 904 | const auto numNodes = csrState.newHeader->offset->getNumValues(); |
| 905 | DASSERT(numNodes == csrState.newHeader->length->getNumValues()); |
| 906 | csrOffsetChunkCheckpointStates.push_back( |
| 907 | ChunkCheckpointState{std::move(csrState.newHeader->offset), 0, numNodes}); |
| 908 | persistentChunkGroup->cast<ChunkedCSRNodeGroup>().getCSRHeader().offset->checkpoint( |
| 909 | *csrState.csrOffsetColumn, std::move(csrOffsetChunkCheckpointStates), |
| 910 | csrState.pageAllocator); |
| 911 | std::vector<ChunkCheckpointState> csrLengthChunkCheckpointStates; |
| 912 | csrLengthChunkCheckpointStates.push_back( |
| 913 | ChunkCheckpointState{std::move(csrState.newHeader->length), 0, numNodes}); |
| 914 | persistentChunkGroup->cast<ChunkedCSRNodeGroup>().getCSRHeader().length->checkpoint( |
| 915 | *csrState.csrLengthColumn, std::move(csrLengthChunkCheckpointStates), |
| 916 | csrState.pageAllocator); |
| 917 | } |
| 918 | |
| 919 | void CSRNodeGroup::collectRegionChangesAndUpdateHeaderLength(const UniqLock& lock, |
| 920 | CSRRegion& region, const CSRNodeGroupCheckpointState& csrState) const { |
nothing calls this directly
no test coverage detected