virtual-world-framework / vwf

Virtual World Framework
https://virtual.wf
Other
142 stars 53 forks source link

Persistence prerequisites #445

Closed davideaster closed 9 years ago

davideaster commented 9 years ago

@allisoncorey @eric79 @scottnc27603

This is a merge of three five branches that contain prerequisites for persistence. These changes affect some applications and may affect other parts of the system. We should hash those issues out here before bringing in the persistence changes.

As an experiment, let's try fixing issues on the individual branches and periodically recreating this octopus merge to make a test platform.

branch/tickless-model https://github.com/virtual-world-framework/vwf/pull/450

Stop sending tick to nodes and ticking to model drivers. Don't record tick messages in the queue; just use them to move the allowed time forward.

Recording individual tick messages causes extra overhead for persistence and unnecessary traffic during replication. Omitting them means that the model can't know when individual messages arrive since it could reason about intervals between them. Nodes should use future actions, and model drivers should use the when parameter in kernel calls to schedule periodic events.

branch/absolute-application-url

Load application components using absolute URIs.

The application component is currently loaded using a relative URL such as index.vwf, and these are resolved inside the reflector. Like other components, the application is a published resource with a canonical location such as /path/to/application/index.vwf. It's better to load the application as a regular resource from there instead of through the various reflector URLs.

This change will affect the node ID of the application and all of its children.

branch/component-relative-resources

Load component-relative resources relative to the component.

Currently relative URLs used for component resources, such as source models, scripts, and other components, are resolved relative to the page URL and are handled by the reflector. With the reflector no longer serving application files, these references need to be resolved relative to the component.

branch/modern-ids https://github.com/virtual-world-framework/vwf/pull/448

Remove the remaining uses of legacy-format node IDs.

branch/reload-on-disconnect

Reload when the connection drops instead of restoring the socket.io connection and processing the setState.

allisoncorey commented 9 years ago

:+1:

@davideaster Is there more work left to do under this PR, or just needs some in-depth testing before merging to development?

davideaster commented 9 years ago

I just added branch/modern-ids and branch/reload-on-disconnect, and I think it's ready now.

branch/modern-ids is important to get in since branch/absolute-application-url changes the application URI so that it escapes the legacy ID test. It's good to get the rest of the modern-id changes in to go along with that.

I haven't tested all of these branches in this form, so let me know if you have any odd problems.

allisoncorey commented 9 years ago

The physics app has an issue on this branch while throwing objects. The cubes and spheres appear to have been created successfully, but are not visible in the scene.

test/physics is also broken - the cube just stays afloat rather than falling. Must be an error with jiblib driver.

allisoncorey commented 9 years ago

There appears to be an issue with the lesson driver and IDs for the following apps: humvee-lesson radio-lesson test/lesson

Uncaught Error: Syntax error, unrecognized expression: #accordion--http_//vwf-example-com/lesson/task-vwf

davideaster commented 9 years ago

Updated to include Scott's changes in branch/modern-ids to remove camera legacy IDs and branch/component-relative-resources updates to add full component-relative URL resolution.

davideaster commented 9 years ago

The #accordion--http_//vwf-example-com/lesson/task-vwf error is from jQuery. It doesn't like the IDs that the lesson is making now with the new VWF IDs. Removing the punctuation might be a reasonably safe fix. Or we could just hash them with the Crypto functions.

allisoncorey commented 9 years ago

This branch/pull request was merged back to development as separate PRs:

450 branch/tickless-model

459 branch/absolute-application-url

460 branch/component-relative-resources

448 branch/modern-ids

458 branch/reload-on-disconnect

Closing.

davideaster commented 9 years ago

@allisoncorey @scottnc27603 I noticed there were some commits added directly to this branch. Are they accounted for in other branches?

allisoncorey commented 9 years ago

There were two I believe:

davideaster commented 9 years ago

Cool.