-
Notifications
You must be signed in to change notification settings - Fork 94
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Log a bunch more fields to clickhouse Executions (#8036)
The code is a bit clunky because I have to put a bunch of data in `ExecutionAuxiliaryMetadata`, then remove it for most of the code in `execution_server.PublishOperation`, but keep it around so I can pass it to `execution_server.recordExecution`. Some alternatives I considered: 1. Read this data from Redis. This still can't get everything, like `isolation_type`. 2. Pass the data in the gRPC context. Not a fan of this as an API, since it's very hidden. 3. Use the `Operation.metadata.partial_execution_metadata` field instead of `Operation.response.result.execution_metadata`. Then the executor would be passing metadata in 2 different ways, depending on what it thought the app was doing to do with the data. Doesn't seem great. I wrote some [notes for myself](https://docs.google.com/document/d/14pCbYj9ERv4G_8lIngUQcN-9XqDyRRgnRH3sUhOAQEg/edit?tab=t.0) about these tradeoffs. ## Estimated disk write increase I queried clickhouse system tables 2 times, separated by about 24 hours, to find the [daily write throughput for each column in the `Executions` table](https://docs.google.com/spreadsheets/d/13UGAQ79BYCfnytzuWUyvDa51OZra9T98b-I69jl-ZVw/edit?gid=0#gid=0). Related findings: - We write about 8GB per day, which is about 3TB per year. - Estimated task size fields write about 1.5% of the total. I'm adding 10 of these fields. - Boolean fields like `success` write about 0.1% of the total. I'm adding one of these (skip_cache_check). - Small int32 fields like `stage` write about 0.01% of the total. I'm adding one of these (execution_priority). - Low cardinality, small string fields like `branch_name` write about 0.9% of the total. I'm adding one of these (isolation_type). So in total, I think this change would increase write throughput by 16%, with almost all of that coming from the task size fields. ## Other fields I would maybe like to add: - requested timeout and effective timeout - more info about the platform, like OS and architecture - info about the executor pool --------- Co-authored-by: Brandon Duffany <[email protected]>
- Loading branch information
Showing
10 changed files
with
313 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.