-
Notifications
You must be signed in to change notification settings - Fork 7k
Inline objects #3756
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
Merged
Merged
Inline objects #3756
Changes from all commits
Commits
Show all changes
44 commits
Select commit
Hold shift + click to select a range
71da1ed
added store_client_ to object_manager and node_manager
istoica e43a221
half through...
istoica 94cea3a
all code in, and compiling! Nothing tested though...
istoica bd71d14
something is working ;-)
istoica 2c058f5
added a few more comments
istoica ded447e
now, add only one entry to the in GCS for inlined objects
istoica 3e6f9b2
more comments
istoica 4855736
remove a spurious todo
istoica 71bdf21
some comment updates
istoica 52e2611
add test
istoica 9931dd1
Merge branch 'inline-objects' into inline-objects
pcmoritz 88ed5e2
added support for meta data for inline objects
istoica 4b6dd43
avoid some copies
istoica 0869d26
Initialize plasma client in tests
stephanie-wang 0fa9835
Better comments. Enable configuring nline_object_max_size_bytes.
istoica 3c52065
Update src/ray/object_manager/object_manager.cc
zhijunfu 2633db2
Update src/ray/raylet/node_manager.cc
zhijunfu dd02029
Update src/ray/raylet/node_manager.cc
zhijunfu 42cb64c
fiexed comments
istoica 477f731
fixed various typos in comments
istoica 0052225
updated comments in object_manager.h and object_manager.cc
istoica d8df8d8
addressed all comments...hopefully ;-)
istoica 0174f63
Only add eviction entries for objects that are not inlined
stephanie-wang f5cf045
fixed a bunch of comments
istoica f8345d3
fixed a bunch of comments
istoica efaa8d6
Fix test
stephanie-wang 461934e
Fix object transfer dump test
stephanie-wang ffd5663
lint
stephanie-wang 71ee334
Comments
stephanie-wang 0e26655
Fix test?
stephanie-wang dd2be9a
Fix test?
stephanie-wang 270b489
Merge branch 'master' into inline-objects
stephanie-wang e95b510
lint
stephanie-wang f14d1f4
fix build
stephanie-wang feb1e68
Merge branch 'master' into inline-objects
stephanie-wang ffcd402
Fix build
stephanie-wang 90721a6
Merge branch 'master' into inline-objects
stephanie-wang f32a7b0
lint
stephanie-wang d284fa8
Use const ref
stephanie-wang a374ce6
Fixes, don't let object manager hang
stephanie-wang 40b5d27
Increase object transfer retry time for travis?
stephanie-wang b663753
Fix test
stephanie-wang c29ab7c
Fix test?
stephanie-wang 08f705a
Add internal config to java, fix PlasmaFreeTest
stephanie-wang File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -48,9 +48,9 @@ class ObjectDirectoryInterface { | |||||
| virtual std::vector<RemoteConnectionInfo> LookupAllRemoteConnections() const = 0; | ||||||
|
|
||||||
| /// Callback for object location notifications. | ||||||
| using OnLocationsFound = std::function<void(const ray::ObjectID &object_id, | ||||||
| const std::unordered_set<ray::ClientID> &, | ||||||
| bool has_been_created)>; | ||||||
| using OnLocationsFound = std::function<void( | ||||||
| const ray::ObjectID &object_id, const std::unordered_set<ray::ClientID> &, bool, | ||||||
| const std::vector<uint8_t> &, const std::string &, bool has_been_created)>; | ||||||
|
|
||||||
| /// Lookup object locations. Callback may be invoked with empty list of client ids. | ||||||
| /// | ||||||
|
|
@@ -99,10 +99,15 @@ class ObjectDirectoryInterface { | |||||
| /// \param object_id The object id that was put into the store. | ||||||
| /// \param client_id The client id corresponding to this node. | ||||||
| /// \param object_info Additional information about the object. | ||||||
| /// \param inline_object_flag Flag specifying whether object is inlined. | ||||||
| /// \param inline_object_data Object data. Only for inlined objects. | ||||||
| /// \param inline_object_metadata Object metadata. Only for inlined objects. | ||||||
| /// \return Status of whether this method succeeded. | ||||||
| virtual ray::Status ReportObjectAdded( | ||||||
| const ObjectID &object_id, const ClientID &client_id, | ||||||
| const object_manager::protocol::ObjectInfoT &object_info) = 0; | ||||||
| const object_manager::protocol::ObjectInfoT &object_info, bool inline_object_flag, | ||||||
| const std::vector<uint8_t> &inline_object_data, | ||||||
| const std::string &inline_object_metadata) = 0; | ||||||
|
|
||||||
| /// Report objects removed from this client's store to the object directory. | ||||||
| /// | ||||||
|
|
@@ -154,9 +159,12 @@ class ObjectDirectory : public ObjectDirectoryInterface { | |||||
| ray::Status UnsubscribeObjectLocations(const UniqueID &callback_id, | ||||||
| const ObjectID &object_id) override; | ||||||
|
|
||||||
| ray::Status ReportObjectAdded( | ||||||
| const ObjectID &object_id, const ClientID &client_id, | ||||||
| const object_manager::protocol::ObjectInfoT &object_info) override; | ||||||
| ray::Status ReportObjectAdded(const ObjectID &object_id, const ClientID &client_id, | ||||||
| const object_manager::protocol::ObjectInfoT &object_info, | ||||||
| bool inline_object_flag, | ||||||
| const std::vector<uint8_t> &inline_object_data, | ||||||
| const std::string &inline_object_metadata) override; | ||||||
|
|
||||||
| ray::Status ReportObjectRemoved(const ObjectID &object_id, | ||||||
| const ClientID &client_id) override; | ||||||
|
|
||||||
|
|
@@ -174,6 +182,15 @@ class ObjectDirectory : public ObjectDirectoryInterface { | |||||
| std::unordered_map<UniqueID, OnLocationsFound> callbacks; | ||||||
| /// The current set of known locations of this object. | ||||||
| std::unordered_set<ClientID> current_object_locations; | ||||||
| /// Specify whether the object is inlined. The data and the metadata of | ||||||
| /// an inlined object are stored in the object's GCS entry. In this flag | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| /// (i.e., the object is inlined) the content of current_object_locations | ||||||
| /// can be ignored. | ||||||
| bool inline_object_flag; | ||||||
| /// Inlined object data, if inline_object_flag == true. | ||||||
| std::vector<uint8_t> inline_object_data; | ||||||
| /// Inlined object metadata, if inline_object_flag == true. | ||||||
| std::string inline_object_metadata; | ||||||
| /// This flag will get set to true if the object has ever been created. It | ||||||
| /// should never go back to false once set to true. If this is true, and | ||||||
| /// the current_object_locations is empty, then this means that the object | ||||||
|
|
||||||
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.