Skip to content

Conversation

holatuwol
Copy link
Member

Recently I ran into a performance issue loading a 100 GB exported_data folder. I waited for a little over an hour and it still hadn't finished, which seemed strange to me because loading 100 GB shouldn't take long at all given that we're just copying files.

Manually running the docker compose up command, I found that copying files to the Docker context was really slow, and so I rewrote the export and import to leverage .tar files, and the import process completed in about 5 minutes since it avoided the slow step of dealing with the large Docker context.

@holatuwol holatuwol changed the title LPD-68592 LPD-68592 Import/export via creating and extracting tar files after image creation to avoid large Docker contexts LPD-68592 Import/export via creating and extracting tar files after image creation to avoid large Docker contexts Oct 15, 2025
@holatuwol
Copy link
Member Author

Sharing a workspace was similarly slow, so I also updated the pull request to use 7z, which gives us a progress bar and support for files greater than 4GB, and LZMA2, which will use more CPU threads to speed up compression.

@drewbrokke
Copy link
Member

@holatuwol I'm looking at this now. The only thing I think we need to tighten up is ensuring that the dev actually has 7z installed. I know it's already there for LiLi, but for others it might be worth considering either a fail-fast or a fallback. Thoughts?

@holatuwol
Copy link
Member Author

Should we update _check_dependencies to look for it?

@holatuwol
Copy link
Member Author

I just noticed the discussion here - https://liferay.slack.com/archives/C08PZA6PD46/p1760986978485309 - where there is a mention that .7z does not preserve file permissions. Maybe a different file format then?

@drewbrokke
Copy link
Member

@holatuwol well in my local testing, I was able to start up a shared workspace no problem, so I think that 7z is capable of preserving file permissions, and it seems that it did with your implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants