Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better caching for cucumber #2745

Closed
TheMarex opened this issue Aug 5, 2016 · 4 comments
Closed

Better caching for cucumber #2745

TheMarex opened this issue Aug 5, 2016 · 4 comments
Assignees
Labels

Comments

@TheMarex
Copy link
Member

TheMarex commented Aug 5, 2016

Currently cucumber caches files depending on the hash of osrm-contract, osrm-extract and the pre-processing tools. However this cache is never cleared if the hash of any dependency changes.
This leads to big problems on travis since we cache test/cache and this file just keeps growing util we can't upload it anymore.

Furthermore we put all files in a single directory, which makes path lockups notoriously slow. So we should nest the directories.

@TheMarex TheMarex self-assigned this Aug 5, 2016
@TheMarex
Copy link
Member Author

TheMarex commented Aug 5, 2016

I think a new much simpler caching scheme will work better:

test/cache/{feature_uri}/{FEATURE_FILE_HASH}/{SCENARIO_TOKEN}.osm
test/tmp/{feature_uri}/{SCENARIO_TOKEN}.osrm*

That means we will only cache the osm files not the OSRM files.

@springmeyer
Copy link
Contributor

Furthermore we put all files in a single directory, which makes path lockups notoriously slow.

Just noticed another side effect of this, so 👍 to using some directory structure:

rm -rf test/cache/*
-bash: /Users/dane/.homebrew/opt/coreutils/libexec/gnubin/rm: Argument list too long

@emiltin
Copy link
Contributor

emiltin commented Aug 5, 2016

Good idea to improve this. But why don't you want to cache osrm files? That means you will have to run extraction and contraction again even if the binaries didn't change at all.

@TheMarex
Copy link
Member Author

TheMarex commented Aug 8, 2016

Yes caching OSRM files is desirable but the dependencies are just complicated to track. Maybe the following scheme would also work:

test/cache/{feature_uri}/{FEATURE_FILE_HASH}/{SCENARIO_TOKEN}.osm
test/cache/{feature_uri}/{FEATURE_FILE_HASH}/{OSRM_HASH}/{SCENARIO_TOKEN}.osrm*

I realized just caching the OSM files will not give us a big speed-up since we need to generate them anyway internally (to fill the lookup tables for translating names).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants