-
Notifications
You must be signed in to change notification settings - Fork 1
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
DB Design prevents Concurrency #29
Comments
Some notes and a proposal: Fix the update process so that:
The current update process has the following steps:
Steps 2 to 4 happen in small batches. I.e. a batch of e.g. 1000 elements We propose to change it to:
TablesFor performance reasons, no foreign keys exist in any table.
The Detailed Steps to Update a Bunch of CertificatesKeeping in mind that this "bunch of certificates" could easily be 109 entries,
1. Updating the CertificatesWe will process all the certificates in batches, whose size depends on If we have CSV files, for each one of the batches:
Now we insert the certificates part of the trust chain:
If we instead have in-memory downloads, we do:
We wait until all certificates are inserted into their appropriate rows 2. Updating the SMTThis process is quite straight forward, as done previously, with an SMT updater, The steps done for each batch are:
After all batches have been processed, we can commit the SMT to the DB. |
One thing I'm a bit confused about is the
Btw., here are hists for the #intermediate certs and validity times, which can be useful for performance estimations. |
The update process disallows pushing certificate data directly to the DB,
unless the previous certificates for existing domains are fetched (and transformed together with the new certificate).
This makes concurrency hard, and disallows pushing data from CSV files directly to the DB.
A proposal is to have one record per certificate.
The text was updated successfully, but these errors were encountered: