All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: ofono@ofono.org
Subject: RE: [RFC 2/2] doc: Add description for history agent interface
Date: Fri, 04 Feb 2011 11:01:39 -0800	[thread overview]
Message-ID: <1296846099.1520.394.camel@aeonflux> (raw)
In-Reply-To: <A459777776EB4841B844E1134E7928740157C9DC@008-AM1MPN1-016.mgdnok.nokia.com>

[-- Attachment #1: Type: text/plain, Size: 2821 bytes --]

Hi Mikhail,

> > > Why, you already cache fragments by their respective message refs
> > efficiently.
> > > The only thing missing is a thin API to provide a view on complete
> > messages.
> > 
> > we are not storing the complete message. We give it to the history API.
> 
> Somehow we never got to the "because" part in this discussion. Or is it a dogma in oFono?

because oFono is NOT a message storage.

Every system will have a different message storage. We have history API
for abstracting the storage problem.

> > > > > D-Bus messages at initialization of a storage-capable client:
> > > > >
> > > > > 1. client connects to the oFono signal NewMessage.
> > > > > 2a. client calls ListMessages.
> > > > > 2b. oFono returns spooled messages.
> > > > >
> > > > > If there are any messages, two more are needed:
> > > > >
> > > > > 3a. client calls ExpungeMessages.
> > > > > 3b. oFono returns.
> > > > >
> > > > > When a new message is received:
> > > > >
> > > > > 1. oFono emits a NewMessage signal.
> > > > > 2a. client calls ExpungeMessages.
> > > > > 2b. oFono returns.
> > > > >
> > > > > Now if we implement a history plugin to serve this API, there
> > will be
> > > > all of the above plus the history plugin registration and event
> > storage
> > > > roundtrips.
> > > >
> > > > You are proving Marcel's point here, the Agent has about 1/2 as
> > many
> > > > round trips as your proposal.
> > > >
> > > > 1. client calls RegisterAgent()
> > >
> > > An interesting question here: should oFono core monitor
> > NameOwnerChanged for the agent's service name, just in case it
> > disappears from the bus? What's the failure mode for this case?
> > 
> > You do have read my RFC patch, right? It does exactly this.
> 
> Sorry, I only jumped into the discussion after it has started and did not read the patch.
> But now that I do, I see an additional AddMatch and a GetOwnerName in this flow.
> 
> And the failure mode of the agent disconnecting is... to drop events on the floor???

Who said that? D-Bus is an asynchronous message bus with a method call
and a method return message. Where do you see events being dropped?

> > > > 2. For each new message the agent's HandleMessage() method is
> > called
> > >
> > > 2a. agent returns.
> > >
> > > So the ratio is 2/3 for the only event flow that is relevant for
> > performance, more likely.
> > > But I agree, it's a bit more efficient for simple plugins, provided
> > that they never fall off the bus.
> > 
> > What has falling off the bus to do with this?
> 
> If the whole setup is unreliable, advantages in performance are less pertinent.

There is nothing unreliable here from an oFono point of view. If your
agent crashes then that is the agent problem.

Regards

Marcel



  parent reply	other threads:[~2011-02-04 19:01 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-01 17:29 [RFC 2/2] doc: Add description for history agent interface Marcel Holtmann
2011-02-02 13:23 ` Kai.Vehmanen
2011-02-02 16:43   ` Marcel Holtmann
2011-02-02 18:14     ` mikhail.zabaluev
2011-02-02 19:22       ` Denis Kenzior
2011-02-02 22:56         ` Kai.Vehmanen
2011-02-02 23:12           ` Marcel Holtmann
2011-02-03 10:54             ` mikhail.zabaluev
2011-02-03  7:13           ` Denis Kenzior
2011-02-03 10:11             ` Kai.Vehmanen
2011-02-03 12:42             ` mikhail.zabaluev
2011-02-03 11:57         ` mikhail.zabaluev
2011-02-03 15:58           ` Denis Kenzior
2011-02-02 19:32       ` Marcel Holtmann
2011-02-03 12:22         ` mikhail.zabaluev
2011-02-03 16:11           ` Denis Kenzior
2011-02-04  9:23             ` mikhail.zabaluev
2011-02-04 12:58               ` Marcel Holtmann
2011-02-04 16:52                 ` mikhail.zabaluev
2011-02-04 17:05                   ` Denis Kenzior
2011-02-04 18:07                     ` mikhail.zabaluev
2011-02-04 18:13                       ` Marcel Holtmann
2011-02-04 18:52                         ` mikhail.zabaluev
2011-02-04 19:01                           ` Denis Kenzior
2011-02-04 19:01                           ` Marcel Holtmann [this message]
2011-02-04 19:33                             ` mikhail.zabaluev
2011-02-04 19:48                               ` Marcel Holtmann
2011-02-04 18:27                       ` Denis Kenzior
2011-02-04 19:17                         ` mikhail.zabaluev
2011-02-04 19:22                           ` Marcel Holtmann
2011-02-04 19:27                           ` Denis Kenzior
2011-02-04 17:15                   ` Marcel Holtmann
2011-02-04 18:32                     ` mikhail.zabaluev
2011-02-02 22:55     ` Kai.Vehmanen
2011-02-02 23:06       ` Marcel Holtmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1296846099.1520.394.camel@aeonflux \
    --to=marcel@holtmann.org \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.