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

Temporal Log Sharding #353

Closed
dlorenc opened this issue Jul 5, 2021 · 7 comments
Closed

Temporal Log Sharding #353

dlorenc opened this issue Jul 5, 2021 · 7 comments

Comments

@dlorenc
Copy link
Member

dlorenc commented Jul 5, 2021

We need to plan a way to shard out the log by time. CT logs typically start fresh every year, and require users to fetch entries from the correct log by knowing when the certificate was issued.

We could do this easily - but it might be nice to think through an API server that aggregates multiple logs, to allow for querying across a range of them. A frozen log is still useful, artifacts run for many years. It becomes easier to publish the entire year as a frozen merkle tree, and querying can even become easier with multiple verifiable maps built up on different indices.

@dlorenc
Copy link
Member Author

dlorenc commented Jul 5, 2021

Ref #352

@dlorenc
Copy link
Member Author

dlorenc commented Jul 15, 2021

High level ideas:

We could maintain a (signed) shard map, which specifies:

  • The root hash for each log
  • Which index ranges belong to each log

When you query by index, we can easily look up the correct log using these ranges
When you query by UUID, there should be at most one log with the right entry. How can we make sure of this? Should we iterate through all the logs?

@lkatalin
Copy link
Contributor

lkatalin commented Oct 12, 2021

I'm adding @dlorenc 's comments from #433 here to keep it all in one place:

Up next:

  • support starting the server with multiple log IDs, instead of just one.
    • this will probably look like a config file containing a map of index ranges to log ids.
    • only one can be "active"
  • support parsing the UUID during GET calls to determine which log to query (with defaulting for the 0 case here)

Also related: #352
Also related: #255

@dlorenc
Copy link
Member Author

dlorenc commented Nov 12, 2021

Also see: #487

@lkatalin
Copy link
Contributor

  * this will probably look like a config file containing a map of index ranges to log ids.

Do we still want a config file, since we have code in place that does this mapping?

@lkatalin
Copy link
Contributor

Related:
#629 #630 #631 #632

@priyawadhwa priyawadhwa moved this to In Progress in Sigstore GA Jan 31, 2022
@haydentherapper
Copy link
Contributor

Logs are sharded!

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

No branches or pull requests

3 participants