[GOBBLIN-1853] Reduce # of Hive calls during schema related updates in metadata registration#3716
Merged
ZihanLi58 merged 1 commit intoapache:masterfrom Jul 18, 2023
Conversation
2024fa0 to
d7daa83
Compare
d7daa83 to
b8b5c87
Compare
homatthew
commented
Jul 18, 2023
| import com.google.common.io.Closer; | ||
| import com.google.common.util.concurrent.ListenableFuture; | ||
|
|
||
| import javax.annotation.Nullable; |
Contributor
Author
There was a problem hiding this comment.
original import ordering did not comply with Apache Gobblin OSS style guide
ZihanLi58
approved these changes
Jul 18, 2023
Contributor
ZihanLi58
left a comment
There was a problem hiding this comment.
+1 LGTM, thanks for the fix
Codecov Report
@@ Coverage Diff @@
## master #3716 +/- ##
============================================
+ Coverage 46.79% 46.95% +0.15%
- Complexity 10793 10821 +28
============================================
Files 2143 2143
Lines 84528 84600 +72
Branches 9392 9404 +12
============================================
+ Hits 39557 39721 +164
+ Misses 41360 41255 -105
- Partials 3611 3624 +13
... and 9 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
phet
added a commit
to phet/gobblin
that referenced
this pull request
Aug 15, 2023
* upstream/master: Fix bug with total count watermark whitelist (apache#3724) [GOBBLIN-1858] Fix logs relating to multi-active lease arbiter (apache#3720) [GOBBLIN-1838] Introduce total count based completion watermark (apache#3701) Correct num of failures (apache#3722) [GOBBLIN- 1856] Add flow trigger handler leasing metrics (apache#3717) [GOBBLIN-1857] Add override flag to force generate a job execution id based on gobbl… (apache#3719) [GOBBLIN-1855] Metadata writer tests do not work in isolation after upgrading to Iceberg 1.2.0 (apache#3718) Remove unused ORC writer code (apache#3710) [GOBBLIN-1853] Reduce # of Hive calls during schema related updates (apache#3716) [GOBBLIN-1851] Unit tests for MysqlMultiActiveLeaseArbiter with Single Participant (apache#3715) [GOBBLIN-1848] Add tags to dagmanager metrics for extensibility (apache#3712) [GOBBLIN-1849] Add Flow Group & Name to Job Config for Job Scheduler (apache#3713) [GOBBLIN-1841] Move disabling of current live instances to the GobblinClusterManager startup (apache#3708) [GOBBLIN-1840] Helix Job scheduler should not try to replace running workflow if within configured time (apache#3704) [GOBBLIN-1847] Exceptions in the JobLauncher should try to delete the existing workflow if it is launched (apache#3711) [GOBBLIN-1842] Add timers to GobblinMCEWriter (apache#3703) [GOBBLIN-1844] Ignore workflows marked for deletion when calculating container count (apache#3709) [GOBBLIN-1846] Validate Multi-active Scheduler with Logs (apache#3707) [GOBBLIN-1845] Changes parallelstream to stream in DatasetsFinderFilteringDecorator to avoid classloader issues in spark (apache#3706) [GOBBLIN-1843] Utility for detecting non optional unions should convert dataset urn to hive compatible format (apache#3705) [GOBBLIN-1837] Implement multi-active, non blocking for leader host (apache#3700) [GOBBLIN-1835]Upgrade Iceberg Version from 0.11.1 to 1.2.0 (apache#3697) Update CHANGELOG to reflect changes in 0.17.0 Reserving 0.18.0 version for next release [GOBBLIN-1836] Ensuring Task Reliability: Handling Job Cancellation and Graceful Exits for Error-Free Completion (apache#3699) [GOBBLIN-1805] Check watermark for the most recent hour for quiet topics (apache#3698) [GOBBLIN-1825]Hive retention job should fail if deleting underlying files fail (apache#3687) [GOBBLIN-1823] Improving Container Calculation and Allocation Methodology (apache#3692) [GOBBLIN-1830] Improving Container Transition Tracking in Streaming Data Ingestion (apache#3693) [GOBBLIN-1833]Emit Completeness watermark information in snapshotCommitEvent (apache#3696)
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA
Description
The HiveMetadataWriter and IcebergMetadataWriter make schema changes and need to make calls to Hive / HDFS per GMCE. This is an unnecessary hotspot because we can reference the schema cache beforehand and determine whether we actually need to make network call.
Also, there are cases where the HiveMetadataWriter can update the latest schema to be a null schema. We want to fail earlier, and fail the code when updating the latest schema map instead of failing later with a NPE. I've also changed the if statement from
containsKeyto checking if the value is null so that if this somehow happens in the future, we do not try to update the table with a null schema which would cause a NPETests
Commits