Re: [Server-devel] Gadget fedora package

2008-12-11 Thread Robert McQueen
Martin Langhoff wrote:
> But I'm working on this space at the moment - switching away from the
> "all online users" patch that I suspect Guillaume is talking about and
> shifting to a different strategy using PostgreSQL.
> 
> So its "mostly behind us" (emphasis on mostly) as I mentioned but
> things are looking promising. The strategies I'm planning to use are
> in use by several large scale sites based on ejabberd with custom
> roster behaviours.

I thought about having the server subdivide people into smaller mutually
visible groups, particularly in G1G1 when having magic groups which try
and group by network proximity or random grouping is reasonable. It
works just because that the n^2 scalability problems are avoided by
simply making n smaller, but I still believe that approaches based
around shared rosters aren't ultimately the right thing to do.

Remember that what we're talking about isn't simply whether people can
see each other's presence or not, but that we rely on a bidirectional
presence subscription to use PEP to publish the extra OLPC-specific
properties of a buddy, as well as their currently active activity, all
of the activities they're running, and the properties of all of those
activities.

Problems with this:

 * It's further from what XMPP does normally because it continues and
   presumes/presupposes that the server knows best who should see each
   other. Gadget only publishes buddy information if they subscribe to
   it, and only publishes activities if it's invited to it, allowing
   fine-grained control, and for the other cases we should allow people
   to punch in JIDs or find people in activities/groups and make their
   own friendship subscriptions.

 * It's inefficient because every client in an activity ends up pushing
   PEP nodes with verbose details of their activities, when actually if
   the server had a concept of the activity it would only need to be
   aware of one copy of this information. That means when an activity
   changes its properties, you get the changed activity details N times,
   once for each participant. Gadget receives the activity details
   directly from the activity once only.

 * It's inefficient because the server pushes all of these to all
   clients in the mutually-visible group, even if that's too much
   information for the UI to display, or it's just not relevant because
   that view isn't open currently. Gadget pushes changes to only those
   people who are interested in a certain activity.

 * It precludes finer-grained visibility controls - you can't set up
   activities which are only visibile to certain groups of people
   without letting those people see all of your activities, or none.
   Although Gadget currently allows all people on a server to query an
   activity it's invited to, it gives us one place to implement
   functionality like sharing with certain groups or list of people.

 * You're limited to having subsets of people who are on one server, and
   because we need bi-directional subscriptions for PEP to work, both
   servers need to agree, so you really have very few options for
   including other people from other servers unless you start setting up
   a protocol by which servers inter-agree who should see each other on
   users' behalves. Seems pretty tricky...

Further to this Gadget offers:
 * Searches for buddies and activities are made out of all information
   available to Gadget, rather than people being split into different
   "silos". So even if people in different classes are using some niche
   activity, they can still find each other.

 * If server to server connections are enabled, its possible to invite a
   Gadget from another server (a partner school, for example) into an
   activity to make it searchable by people in the other school. We
   could even look at gadget<->gadget propogation of activities and
   buddies if we wanted to.

> cheers,
> 
> martin

Regards,
Rob

-- 
Robert McQueen +44 7876 562 564
Director, Collabora Ltd. http://www.collabora.co.uk

___
Server-devel mailing list
server-de...@lists.laptop.org
http://lists.laptop.org/listinfo/server-devel


Re: [Server-devel] Gadget fedora package

2008-12-11 Thread Marco Pesenti Gritti
On Thu, Dec 11, 2008 at 3:01 PM, Martin Langhoff
<[EMAIL PROTECTED]> wrote:
> Note - I have *no* idea of what is that server running.
>
> But I'm working on this space at the moment - switching away from the
> "all online users" patch that I suspect Guillaume is talking about and
> shifting to a different strategy using PostgreSQL.
>
> So its "mostly behind us" (emphasis on mostly) as I mentioned but
> things are looking promising. The strategies I'm planning to use are
> in use by several large scale sites based on ejabberd with custom
> roster behaviours.

When you have something working, it would be good to setup a server
with it so that we can play with it and see how reliable it is and how
well it scales.

Marco
___
Server-devel mailing list
[EMAIL PROTECTED]
http://lists.laptop.org/listinfo/server-devel


Re: [Server-devel] Gadget fedora package

2008-12-11 Thread Martin Langhoff
On Thu, Dec 11, 2008 at 11:54 AM, Marco Pesenti Gritti
<[EMAIL PROTECTED]> wrote:
> On Thu, Dec 11, 2008 at 2:51 PM, Marco Pesenti Gritti
> <[EMAIL PROTECTED]> wrote:
>>> With the "OMG! ejabberd's memory and roster mgmt are Out Of Control"
>>> thing mostly behind us, I want to have a clear picture of why and how
>>> Gadget fits into the picture. And at what (cpu, memory) cost,
>>> specially for the 3K users scenarios we're looking at.
>
> Just to share my experience. We was testing with
> schoolserver.media.mit.edu and we run into several presence
> inconsistencies, which Guillame says are shared roster bugs (I don't
> have the numbers anymore, unfortunately).

Note - I have *no* idea of what is that server running.

But I'm working on this space at the moment - switching away from the
"all online users" patch that I suspect Guillaume is talking about and
shifting to a different strategy using PostgreSQL.

So its "mostly behind us" (emphasis on mostly) as I mentioned but
things are looking promising. The strategies I'm planning to use are
in use by several large scale sites based on ejabberd with custom
roster behaviours.

cheers,



martin
-- 
 [EMAIL PROTECTED]
 [EMAIL PROTECTED] -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Server-devel mailing list
[EMAIL PROTECTED]
http://lists.laptop.org/listinfo/server-devel


Re: [Server-devel] Gadget fedora package

2008-12-11 Thread Marco Pesenti Gritti
On Thu, Dec 11, 2008 at 2:51 PM, Marco Pesenti Gritti
<[EMAIL PROTECTED]> wrote:
>> With the "OMG! ejabberd's memory and roster mgmt are Out Of Control"
>> thing mostly behind us, I want to have a clear picture of why and how
>> Gadget fits into the picture. And at what (cpu, memory) cost,
>> specially for the 3K users scenarios we're looking at.

Just to share my experience. We was testing with
schoolserver.media.mit.edu and we run into several presence
inconsistencies, which Guillame says are shared roster bugs (I don't
have the numbers anymore, unfortunately).

Marco
___
Server-devel mailing list
[EMAIL PROTECTED]
http://lists.laptop.org/listinfo/server-devel


Re: [Server-devel] Gadget fedora package

2008-12-11 Thread Marco Pesenti Gritti
This is really a question for Collabora :) Ccing them...

On Thu, Dec 11, 2008 at 2:49 PM, Martin Langhoff
<[EMAIL PROTECTED]> wrote:
> On Thu, Dec 11, 2008 at 9:43 AM, Marco Pesenti Gritti
> <[EMAIL PROTECTED]> wrote:
>> Just fyi, I submitted a gadget fedora package for review. It's going
>> to require ejabberd 2.0.2.
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=475971
>
> When you have a bit of time, I am still keen on understanding how does
> Gadget fit in the wider picture.
>
> With the "OMG! ejabberd's memory and roster mgmt are Out Of Control"
> thing mostly behind us, I want to have a clear picture of why and how
> Gadget fits into the picture. And at what (cpu, memory) cost,
> specially for the 3K users scenarios we're looking at.
>
> In other words, we are finding that ejabberd is very amenable to
> having its behaviour changed in interesting ways with
>
>  - minimalistic Erlang plugins
>  - poking at its internal mnesia DB via the xml-rpc plugin
>  - using an external DB instead of Mnesia, and having external
> programs manipulate the DB
>
> all of these things keep us on using standard XMPP (so our client and
> server are more generic, and interchangeable) and from a scalability
> POV avoid adding additional processes (except for the DB).
>
> OTOH, I'm not against Gadget. It's just that it's a big unknown to me
> at a stage where -- without that much effort -- we seem to be getting
> ejabberd under control and playing nice.
>
> cheers,
>
>
>
> m
> --
>  [EMAIL PROTECTED]
>  [EMAIL PROTECTED] -- School Server Architect
>  - ask interesting questions - don't get distracted with shiny stuff
> - working code first
>  - http://wiki.laptop.org/go/User:Martinlanghoff
>
___
Server-devel mailing list
[EMAIL PROTECTED]
http://lists.laptop.org/listinfo/server-devel


Re: [Server-devel] Gadget fedora package

2008-12-11 Thread Martin Langhoff
On Thu, Dec 11, 2008 at 9:43 AM, Marco Pesenti Gritti
<[EMAIL PROTECTED]> wrote:
> Just fyi, I submitted a gadget fedora package for review. It's going
> to require ejabberd 2.0.2.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=475971

When you have a bit of time, I am still keen on understanding how does
Gadget fit in the wider picture.

With the "OMG! ejabberd's memory and roster mgmt are Out Of Control"
thing mostly behind us, I want to have a clear picture of why and how
Gadget fits into the picture. And at what (cpu, memory) cost,
specially for the 3K users scenarios we're looking at.

In other words, we are finding that ejabberd is very amenable to
having its behaviour changed in interesting ways with

 - minimalistic Erlang plugins
 - poking at its internal mnesia DB via the xml-rpc plugin
 - using an external DB instead of Mnesia, and having external
programs manipulate the DB

all of these things keep us on using standard XMPP (so our client and
server are more generic, and interchangeable) and from a scalability
POV avoid adding additional processes (except for the DB).

OTOH, I'm not against Gadget. It's just that it's a big unknown to me
at a stage where -- without that much effort -- we seem to be getting
ejabberd under control and playing nice.

cheers,



m
-- 
 [EMAIL PROTECTED]
 [EMAIL PROTECTED] -- School Server Architect
 - ask interesting questions - don't get distracted with shiny stuff
- working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Server-devel mailing list
[EMAIL PROTECTED]
http://lists.laptop.org/listinfo/server-devel


[Server-devel] Gadget fedora package

2008-12-11 Thread Marco Pesenti Gritti
Just fyi, I submitted a gadget fedora package for review. It's going
to require ejabberd 2.0.2.

https://bugzilla.redhat.com/show_bug.cgi?id=475971

Marco
___
Server-devel mailing list
[EMAIL PROTECTED]
http://lists.laptop.org/listinfo/server-devel