Skip to content

Commit

Permalink
[Enhancement] avoid redundant directory creation when create file blo…
Browse files Browse the repository at this point in the history
…ck (#55716)

Signed-off-by: luohaha <[email protected]>
  • Loading branch information
luohaha authored Feb 13, 2025
1 parent 1920151 commit 9c1f813
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
5 changes: 4 additions & 1 deletion be/src/exec/spill/file_block_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,10 @@ StatusOr<FileBlockContainerPtr> FileBlockManager::get_or_create_container(const
<< plan_node_name;
uint64_t id = _next_container_id++;
std::string container_dir = dir->dir() + "/" + print_id(_query_id);
RETURN_IF_ERROR(dir->fs()->create_dir_if_missing(container_dir));
if (_last_created_container_dir != container_dir) {
RETURN_IF_ERROR(dir->fs()->create_dir_if_missing(container_dir));
_last_created_container_dir = container_dir;
}
ASSIGN_OR_RETURN(auto block_container, FileBlockContainer::create(dir, _query_id, fragment_instance_id,
plan_node_id, plan_node_name, id, block_size));
RETURN_IF_ERROR(block_container->open());
Expand Down
1 change: 1 addition & 0 deletions be/src/exec/spill/file_block_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class FileBlockManager : public BlockManager {

TUniqueId _query_id;
std::atomic<uint64_t> _next_container_id = 0;
std::string _last_created_container_dir;

DirManager* _dir_mgr = nullptr;
};
Expand Down

0 comments on commit 9c1f813

Please sign in to comment.