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

psiphon: test bootstrap with pre-existing cache #1192

Closed
bassosimone opened this issue Jan 19, 2021 · 4 comments
Closed

psiphon: test bootstrap with pre-existing cache #1192

bassosimone opened this issue Jan 19, 2021 · 4 comments
Assignees
Labels
data quality Describes data/measurement quality issues discuss We need to have a conversation effort/S Small effort enhancement New feature or request priority/medium Medium priority research prototype Research required

Comments

@bassosimone
Copy link
Member

bassosimone commented Jan 19, 2021

We always bootstrap from scratch. But this prevents us from understanding whether a pre-existing Psiphon cache could actually allow us to perform measurements. We can do better by keeping a cache on disk and doing both a cache-less and a cache-full bootstrap. This issue is labeled "data quality" because it will probably increase the quality of our data to add this functionality. This issue also requires research to understand the implications of reusing an existing cache.

@bassosimone bassosimone added the enhancement New feature or request label Jan 19, 2021
@bassosimone bassosimone self-assigned this Jan 19, 2021
@bassosimone bassosimone removed this from the Sprint 32 - Tursiops truncatus milestone Jan 28, 2021
@bassosimone bassosimone added priority/medium Medium priority effort/M Medium effort data quality Describes data/measurement quality issues research prototype Research required discuss We need to have a conversation labels Jan 28, 2021
@bassosimone
Copy link
Member Author

I asked to Psiphon developers for clarifications around the implications of killing the cache before running each test.

@bassosimone bassosimone added the triage This issue needs triage label Feb 10, 2021
@bassosimone bassosimone removed the triage This issue needs triage label Feb 15, 2021
@bassosimone bassosimone changed the title Psiphon: test bootstrap with pre-existing cache psiphon: test bootstrap with pre-existing cache Feb 15, 2021
@bassosimone bassosimone added effort/S Small effort and removed effort/M Medium effort labels Feb 15, 2021
@bassosimone
Copy link
Member Author

Okay. I wrote a minimal tool to check what happens with a pre-existing cache. There's no need to reveal the source, since it's just a very stripped down version of the code that we use in ooni/probe-cli. Here's the output of a few runs:

$ ./psitest 
{"Address":"127.0.0.1:36095\n","BootstrapTime":5.174298996,"DirExists":false}

$ ./psitest -keep
{"Address":"127.0.0.1:32921\n","BootstrapTime":5.43916411,"DirExists":false}

$ ./psitest -keep
{"Address":"127.0.0.1:36069\n","BootstrapTime":0.587030723,"DirExists":true}

$ ./psitest -keep
{"Address":"127.0.0.1:44917\n","BootstrapTime":0.595344917,"DirExists":true}

$ ./psitest -keep
{"Address":"127.0.0.1:39079\n","BootstrapTime":2.251123913,"DirExists":true}

$ ./psitest -keep
{"Address":"127.0.0.1:44307\n","BootstrapTime":0.398089054,"DirExists":true}

So, the time to bootstrap is really faster when using a cached directory. We need to better investigate how we're managing the Psiphon cache in OONI because I suspect we're doing something wrong in probe-cli.

@bassosimone
Copy link
Member Author

I also noticed that when OONI is running Psiphon this does not happen. This means that, most likely, there is something wrong in our code such that we are not actually using the Psiphon cache. This explains the slow bootstrap 🤦.

@bassosimone
Copy link
Member Author

We can close this issue now. The investigation is clearly complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data quality Describes data/measurement quality issues discuss We need to have a conversation effort/S Small effort enhancement New feature or request priority/medium Medium priority research prototype Research required
Projects
None yet
Development

No branches or pull requests

1 participant