Re: [vwrap] #12: Event-like resource type for LLIDL
Carlo Wood <carlo@alinoe.com> Tue, 06 April 2010 18:57 UTC
Return-Path: <carlo@alinoe.com>
X-Original-To: vwrap@core3.amsl.com
Delivered-To: vwrap@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
with ESMTP id A85C43A67E3 for <vwrap@core3.amsl.com>;
Tue, 6 Apr 2010 11:57:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.726
X-Spam-Level:
X-Spam-Status: No, score=0.726 tagged_above=-999 required=5 tests=[AWL=-0.444,
BAYES_50=0.001, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com
[127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rM10yokGX0pM for
<vwrap@core3.amsl.com>; Tue, 6 Apr 2010 11:57:50 -0700 (PDT)
Received: from viefep15-int.chello.at (viefep15-int.chello.at [62.179.121.35])
by core3.amsl.com (Postfix) with ESMTP id DD3383A691D for <vwrap@ietf.org>;
Tue, 6 Apr 2010 11:57:47 -0700 (PDT)
Received: from edge03.upcmail.net ([192.168.13.238]) by viefep15-int.chello.at
(InterMail vM.8.01.02.02 201-2260-120-106-20100312) with ESMTP id
<20100406185743.XDHY14297.viefep15-int.chello.at@edge03.upcmail.net>;
Tue, 6 Apr 2010 20:57:43 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge03.upcmail.net with
edge id 2Jxf1e04c0FlQed03JxgGQ; Tue, 06 Apr 2010 20:57:43 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.71) (envelope-from
<carlo@alinoe.com>) id 1NzDxz-000256-FN; Tue, 06 Apr 2010 20:57:39 +0200
Date: Tue, 6 Apr 2010 20:57:39 +0200
From: Carlo Wood <carlo@alinoe.com>
To: trac@localhost.amsl.com
Message-ID: <20100406185739.GB6424@alinoe.com>
References: <059.7033e411bbd74dc481125cfa915c0bb4@tools.ietf.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <059.7033e411bbd74dc481125cfa915c0bb4@tools.ietf.org>
User-Agent: Mutt/1.5.20 (2009-06-14)
X-Cloudmark-Analysis: v=1.1 cv=6UHAxsHwKCW0savQ7OVzrMBW5xvCzGO/qK2+m6qSwq4=
c=1 sm=0 a=oZn3SlGMZCkA:10 a=38zWk6xDZSoA:10 a=IkcTkHD0fZMA:10
a=BjFOTwK7AAAA:8 a=dnZDWKFMRF2nQYMzfdEA:9 a=7rlRfV853C8fyKl3ry0A:7
a=twfO-gDFzDROuuVIIjFvjmwdkGoA:4 a=QEXdDO2ut3YA:10 a=bW3kdApBr58A:10
a=HpAAvcLHHh0Zw7uRqdWCyQ==:117
Cc: vwrap@ietf.org
Subject: Re: [vwrap] #12: Event-like resource type for LLIDL
X-BeenThere: vwrap@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual World Region Agent Protocol - IETF working group
<vwrap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/vwrap>,
<mailto:vwrap-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/vwrap>
List-Post: <mailto:vwrap@ietf.org>
List-Help: <mailto:vwrap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/vwrap>,
<mailto:vwrap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Apr 2010 18:57:51 -0000
I'm not sure if I follow what an "event" is.
I think that the only thing we have are states or state variables
that are distributed. A single state variable has a single authority
(running program on some machine) and only that authority can change
the state of that variable. At that moment it should tell others
that need to know that the state changed, that is changed (and into
what). Confirmation of such messages is needed to be sure that there
is no desync, if and only if the messages travel over a lossy line,
ie if UDP is being used.
If some other machine then the authority wants to change a state
variable, it should send a request to the authority and assume the
variable has NOT changed, until it receives an update from the authority
that the change has been made.
The reason for this approach is because otherwise it is impossible
to keep track of non-commuting operators. As an example lets consider
the rotation of an in-world object (rotating something is non-commuting).
The authority of the rotation variables (a vector) will be the sim
where the object is 'rezzed'. If two different sources request to
rotate the object at the same time and already update their local
"cached value" when sending it, things will get desynced:
Let the vector start as x,y,x = 0,0,1 pointing up.
Let operator R1 be a 90 degree rotation around the x-axis (z = y and y = -z)
and operator R2 be a 90 degree rotation around the y-axis (z = x and x = -z)
Start condition:
host1 ------ sim ------ host2
0,0,1 0,0,1 0,0,1
host1 issues a rotation R1 and updates the local copy immediately,
host2 issues a rotation R2 and updates the local copy immediately:
host1 --R1---> sim <---R2-- host2
0,-1,0 0,0,1 -1,0,0
Suppose that R1 arrives at the sim first, the sim will then
send out the rotation to host2:
host1 -------- sim <---R2-- host2
---R1-->
0,-1,0 0,-1,0 -1,0,0
Neither of the rotation have a visible effect
on the remaining states (-1,0,0 rotated around the x-axis
is still -1,0,0 and 0,-1,0 rotated around the y-axis is
still 0,-1,0). Thus when finally both R1 and R2 have reached
all hosts we end up with:
host1 -------- sim -------- host2
0,-1,0 0,-1,0 -1,0,0
A desync.
Therefore host1 and host2 may only send requests and
do NOT change the value of their internal cache:
host1 --R1---> sim <---R2-- host2
0,0,1 0,0,1 0,0,1
host1 <--R1,R2-- sim --R1,R2--> host2
0,0,1 0,-1,0 0,0,1
host1 -------- sim -------- host2
0,-1,0 0,-1,0 0,-1,0
If what you proposed here:
On Wed, Mar 31, 2010 at 09:46:31PM -0000, vwrap issue tracker wrote:
> --------------------------------+-------------------------------------------
> Reporter: markl@… | Owner: markl@…
> Type: enhancement | Status: new
> Priority: major | Milestone:
> Version: | Severity: -
> Keywords: TypeSystem |
> --------------------------------+-------------------------------------------
> There didn't appear to be clear consensus on if LLIDL needed an "event-
> like" resource type. These would be resources that had a body with the
> request, but expected nothing other than confirmation of receipt in the
> response.
means that upon a request the sim will not reply with a responding
state, but merely with an ACK, then the requesting host has to remember
the operator and apply it on the state at the moment he receives the
acknowledge.
For example, host1 requests R1, then it receives the update R2 and
finally receives the acknowledge for the R1 request. Clearly it
has to apply the operators in the order: first R2 then R1.
--
Carlo Wood <carlo@alinoe.com>
- [vwrap] #12: Event-like resource type for LLIDL vwrap issue tracker
- Re: [vwrap] #12: Event-like resource type for LLI… Carlo Wood
- Re: [vwrap] #12: Event-like resource type for LLI… Lawson English
- Re: [vwrap] #12: Event-like resource type for LLI… Joshua Bell