Skip to content

Performance and API improvements - #6

Merged
hellais merged 65 commits into
mainfrom
mashumaro
Oct 18, 2022
Merged

hellais merged 65 commits into
mainfrom
mashumaro

Conversation

@hellais

@hellais hellais commented Sep 21, 2022

Copy link
Copy Markdown
Member
  • Switch to using mashumaro and orjson for parsing raw measurements and validating/generating the dataclasses, which gives a ~30x performance boost (see: https://github.com/hellais/oonidata-bench)
  • Consume the measurements from the cans instead of the public JSONL files so as to preserve a valid measurement_uid and avoid producing duplicate measurements (Duplicate data present in some s3 buckets backend#613)
  • Make the API for iterating over measurements better
    • Add more precise progress bar
    • Where possible, yield the measurements while streaming instead of having to decompress and keep the whole can in memory
    • Make the API interface a bit more ergonomic to make it faster to use in live environments like jupyter
    • Native support for parallel processing of measurements
  • Several bug fixes to the parsers and dataformats by having more strict checks on the consistency of data
  • Add support for extracting more metadata related to resolver information
  • Nicer API for generating observations directly from a parsed base measurement
hellais and others added 30 commits August 9, 2022 15:06
* dnscheck:
  Improvements based on feedback from @bassosimone
…servations

* 'more-observations' of github.com:ooni/data:
* Don't lookup the metadata of bogon IPs or non IP DNS answers
* Fix tests for netinfodb

* Update create tables

* Improvements to the oonidata processing logic

* Add historical-geoip submodule for testing netinfodb

* Add timestamp and observation_id to nettest observations

* Update create_tables script

* Make torinfo optional

* Add support for passing in a country code

* black format

* Add fast fail argument

* Write fail log to file

Co-authored-by: Simone Basso <bassosimone@gmail.com>
* Use report_id instead of session_id
* Add input to base observation
* Extract richer resolver metadata
* Add function for generating observations given a WebConnectivity
measurement
* Improve ergonomics of CLI arguments
* Don't parallise on CSV generation
* Use observation generator for web_connectivity
* origin/main:
  fix(dataformat): network_events.transaction_id is Optional[int] (#5)
  More observations (#3)
@hellais

hellais commented Oct 18, 2022

Copy link
Copy Markdown
Member Author

I am moving forward with self merging this so I can work on a integrating the new historical-geoip DB

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

2 participants