-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-10984] Simplify *MemoryManager class structure #9127
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
Conversation
|
Test build #43753 has finished for PR 9127 at commit
|
|
Jenkins, retest this please. |
|
Test build #43789 has finished for PR 9127 at commit
|
|
Test build #43858 has finished for PR 9127 at commit
|
|
Test build #43862 has finished for PR 9127 at commit
|
…sten code use only this and not both this and ShuffleMemoryManager.
|
Test build #43866 has finished for PR 9127 at commit
|
b1aa89d to
e52f030
Compare
e52f030 to
7d6a37f
Compare
|
Test build #43875 has finished for PR 9127 at commit
|
|
Alright, the first part of this change should be ready for review. At this point, there are a number of remaining small tasks for updating mocks which are used in unit tests, but the basic "client" APIs for interacting with the memory managers have been sketched out. Please take a look at those and provide feedback on whether the new, combined interfaces make sense. Once we agree on those interfaces, we can loop back and do a second review pass looking at the test refactoring code. |
|
Test build #44170 has finished for PR 9127 at commit
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This use of the memory managers in HashedRelation was messy before and is slightly messier now; I'd like to find a clean way to deal with this before merging this refactoring.
|
Test build #44253 has finished for PR 9127 at commit
|
8718088 to
e56d039
Compare
|
Test build #44255 has finished for PR 9127 at commit
|
|
Test build #44261 has finished for PR 9127 at commit
|
|
Test build #44269 has finished for PR 9127 at commit
|
|
Test build #44274 has finished for PR 9127 at commit
|
|
This PR is logically blocked on #9260. |
|
Test build #44290 has finished for PR 9127 at commit
|
|
Test build #44326 has finished for PR 9127 at commit
|
|
Woohoo, this passes tests! There are still a few minor follow-up tasks that I'd like to do for this, but I'm going to defer them to separate patches: this patch is fairly large and has conflicts with several other memory-management-related patches that are in-flight or which will be opened soon. @andrewor14, if you have any post-hoc review comments, I'll handle them in a followup. @davies, this should unblock your open patch. Merging to master. |
|
I filed https://issues.apache.org/jira/browse/SPARK-11309 as one followup. |
|
@JoshRosen Great, thanks! |
This patch refactors the MemoryManager class structure. After #9000, Spark had the following classes:
This is fairly confusing. To simplify things, this patch consolidates several of these classes:
Key changes and tasks:
spark-unsafetospark-core.Simplify 1/n calculation.Will defer to followup, since this needs more work.unsafepackage tomemorypackage.TestShuffleMemoryManager.markAsOutOfMemory) which has been changed or broken during the memory manager consolidationCompatiblity notes:
ExternalAppendOnlyMap, which is marked as@DevloperAPI(likely for legacy reasons): this class now cannot be used outside of a task.