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

Mutable tensor/dataframe on oscar #2195

Closed
sighingnow opened this issue Jul 6, 2021 · 0 comments · Fixed by #2432
Closed

Mutable tensor/dataframe on oscar #2195

sighingnow opened this issue Jul 6, 2021 · 0 comments · Fixed by #2432

Comments

@sighingnow
Copy link
Contributor

sighingnow commented Jul 6, 2021

Is your feature request related to a problem? Please describe.

We previous implemented "mutable tensor" in #415 (see also linked pull requests), by,

  • when creating a mutable tensor, create a corresponding actor on the scheduler node
  • intermediate writes happens on this MutableTensorActor
  • when sealing the mutable tensor, this actor split the tensor to a set of chunks and distribute them to workers, as an executed Tensor.

The previous design has many limitation, as the tensor is stored in scheduler, it is not very scalable, especially the tensor is large and not sparse.

Describe the solution you'd like

In this task we are going to revisit the mutable tensor/mutable dataframe design, as,

(please feel free to correct me if there are any mistakes/misunderstandings)

  1. add an API to client/session to create mutable tensor/dataframe with given shape (or given columns and indexes for dataframe).
  2. starts a "MutableActor" for every mutable tensors/dataframes, which, will first create a set of chunks according to the shape, and distribute those tiled chunks to all workers, and, on each worker, create a actor to manage write/read requests on the chunks being placed on that worker.
  3. maintain a chunk -> actor worker mapping as well.
  4. when read/write to the mutable tensor/dataframe, first figure out which chunk to read/write, and forward the request to that worker.
  5. when sealing the mutable tensor/dataframe, put those intermediate chunks on workers to the storage backends (and may be to some other storage endpoints), register metadata for those chunks, destroy the actors on workers, register the metadata for the tensor/dataframe itself, and finally destroy the manage actor.

Additional context

See also #415 for previous design and see related pull requests for details about previous implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants