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

Introducing DDSs article #3126

Merged
merged 18 commits into from
Aug 14, 2020
Merged

Introducing DDSs article #3126

merged 18 commits into from
Aug 14, 2020

Conversation

tylerbutler
Copy link
Member

@tylerbutler tylerbutler commented Aug 11, 2020

Fixes #3092.


Merge behavior of each DDS is relevant to their usage.
## Key-value data
Copy link
Member Author

Choose a reason for hiding this comment

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

todo

Copy link
Member Author

Choose a reason for hiding this comment

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

This will be a future PR

docs/advanced/handles.md Outdated Show resolved Hide resolved
docs/advanced/handles.md Outdated Show resolved Hide resolved
docs/advanced/handles.md Outdated Show resolved Hide resolved
docs/advanced/handles.md Outdated Show resolved Hide resolved
### Why use Fluid Handles?

- You should **always** use handles to represent `fluid objects` and store them in a Distributed Data Structure (DDS).
This tells the runtime, and the storage, about the usage of the object and that it is referenced. The runtime /
Copy link
Member

Choose a reason for hiding this comment

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

Beyond the fact that storing the handle tells runtime/storage "that it is referenced", is there really anything else "about the usage of the object" that they are told? If so, then what is this additional information? If not, let's delete the extra phrase about the usage of the object.

Copy link
Member Author

Choose a reason for hiding this comment

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

@agarwal-navin Can you help here?

Copy link
Contributor

Choose a reason for hiding this comment

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

As of now, we don't use handles for anything else, so we can remove the phrase 'usage of the object'. The plan is to use it for some other functionality but we update this doc as and when that happens.

packages/dds/map/src/map.ts Outdated Show resolved Hide resolved
packages/dds/map/src/map.ts Show resolved Hide resolved
packages/dds/map/src/map.ts Outdated Show resolved Hide resolved
packages/dds/map/src/map.ts Show resolved Hide resolved
packages/dds/map/src/map.ts Outdated Show resolved Hide resolved
tylerbutler and others added 5 commits August 12, 2020 17:06
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
@tylerbutler
Copy link
Member Author

@Rick-Kirkham I talked with Navin and he's going to follow up with additional changes to the handles docs since there are a number of design changes pending. The handles docs are not going to be published initially.

Copy link
Member

@Rick-Kirkham Rick-Kirkham left a comment

Choose a reason for hiding this comment

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

See my specific comments. (The github UI on the "Conversation" tab of the PR hides most of them. You might have to go to the "Files changed" tab.

tylerbutler and others added 3 commits August 13, 2020 12:28
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
### Why use Fluid Handles?

- You should **always** use handles to represent Fluid objects and you should store the handles in a Distributed Data
Structure (DDS). This tells the runtime and the storage service that the object is referenced. The runtime / storage
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this section is currently explaining "Why use Fluid Handles (instead of an ID or URL)?" But I think there's maybe an additional question to answer of "Why use Fluid Handles (instead of storing the DDS directly)?"

With normal non-collaborative data structures, normally folks would just store in-memory objects directly. But since the data in DDSs must be communicated to remote clients we are restricted to only storing serializable data. So if we want to store non-serializable objects in our DDSs, we can use handles (which are serializable) to reference them.

Copy link
Contributor

Choose a reason for hiding this comment

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

Also, you can know the handle before you attach the object.

docs/docs/dds.md Outdated Show resolved Hide resolved
## Handles

A [Fluid Handle](../../packages/loader/core-interfaces/src/handles.ts) is a handle to a _Fluid object_. It is
used to represent the object and has a function `get()` that returns the underlying object. Handles move the ownership
Copy link
Contributor

Choose a reason for hiding this comment

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

Represent seems strong... used to access the object?

A [Fluid Handle](../../packages/loader/core-interfaces/src/handles.ts) is a handle to a _Fluid object_. It is
used to represent the object and has a function `get()` that returns the underlying object. Handles move the ownership
of retrieving a Fluid object from the user of the object to the object itself. The handle can be passed around in the
system and anyone who has the handle can easily get the underlying object by simply calling `get()`.
Copy link
Contributor

Choose a reason for hiding this comment

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

get on what?

### Why use Fluid Handles?

- You should **always** use handles to represent Fluid objects and you should store the handles in a Distributed Data
Structure (DDS). This tells the runtime and the storage service that the object is referenced. The runtime / storage
Copy link
Contributor

Choose a reason for hiding this comment

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

Also, you can know the handle before you attach the object.



[remote handle]:
https://github.com/microsoft/FluidFramework/blob/master/packages/runtime/runtime-utils/src/remoteComponentHandle.ts
Copy link
Contributor

Choose a reason for hiding this comment

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

This link is out of date

docs/docs/dds.md Outdated Show resolved Hide resolved
docs/docs/dds.md Outdated Show resolved Hide resolved
@tylerbutler tylerbutler merged commit 1c6fbd8 into microsoft:master Aug 14, 2020
@tylerbutler tylerbutler deleted the docs/dds branch August 14, 2020 21:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Introducing DDSs article
5 participants