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

[ARCTIC-985] Introduce Table Blocker to implement concurrency controll between Writing and Optimizing #986

Merged
merged 46 commits into from
Feb 2, 2023

Conversation

wangtaohz
Copy link
Contributor

Why are the changes needed?

fix #985

Brief change log

  • Add API of TableBlocker
  • Spark write with the use of TableBlocker
  • Implement TableBlocker in AMS
  • Self-Optimizing in AMS blocked by TableBlocker

How was this patch tested?

  • Add some test cases that check the changes thoroughly including negative and positive cases if possible

  • Add screenshots for manual tests if appropriate

  • Run test locally before making a pull request

Documentation

  • Does this pull request introduces a new feature? (yes)
  • If yes, how is the feature documented? (docs)

@github-actions github-actions bot added module:core Core module module:mixed-trino trino module for Mixed Format labels Jan 9, 2023
@wangtaohz wangtaohz changed the title [ARCTIC-985] Introduce Table Blocker to implement concurrency controll between Writing and Optimizing [WIP] [ARCTIC-985] Introduce Table Blocker to implement concurrency controll between Writing and Optimizing Jan 9, 2023
2.implement BaseTableBlockerManager
@github-actions github-actions bot added module:ams-server Ams server module module:ams-dashboard Ams dashboard module labels Jan 10, 2023
@github-actions github-actions bot added the module:mixed-spark Spark module for Mixed Format label Jan 17, 2023
Copy link
Contributor

@zhoujinsong zhoujinsong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@zhoujinsong zhoujinsong merged commit 5959510 into apache:master Feb 2, 2023
@wangtaohz wangtaohz deleted the fix-985 branch February 17, 2023 03:23
zhoujinsong pushed a commit that referenced this pull request May 31, 2023
…l between Writing and Optimizing (#986)

* Add API of Table Blocker

* 1.generate thrift API
2.implement BaseTableBlockerManager

* implement

* fix test

* add unit test

* fix

* clear blockers

* block optimize

* fix MockArcticMetastoreServer

* block adapt spark writer

* fix blocker renew too short

* fix ams unit test

* fix checkstyle

* add finally in abort merhod

* add unit test for core

* block with properties

* add merge into release block

* check blocker after get current change snapshot id

* change BaseBlocker to RenewableBlocker

* use BlockerFactory

* fix comment

* fix checkstyle

* remove useless table properties

* file info cache get files with snapshot

* simplify RenewableBlocker

* fix minor optimize plan

* fix writer in ams-server unit test

* fix NPE

* change log

* change ams-server maven-surefire-plugin to version 2.19

* change getblocker to createFactory

* RenewableBlocker not call renew async in constructor

* remove useless import

* 1.add blocker timeout into RenewableBlocker
2.thrift API renewBlocker return expirationTime

* fix unit test

* optimize spark write

* fix checkstyle

* fix checkstyle

* remove appId

---------

Co-authored-by: jinsilei <jinsilei@corp.netease.com>
Co-authored-by: PlanetWalker <52364847+hellojinsilei@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module:ams-dashboard Ams dashboard module module:ams-server Ams server module module:core Core module module:mixed-spark Spark module for Mixed Format module:mixed-trino trino module for Mixed Format type:build
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature]: Introduce a mechanism for concurrency control between Writing and Optimizing
4 participants