RE: [JDEV] Scaling 1.4.2 with xdb_file... And the patch

2003-02-27 Thread Mike Prince
> Great, though a diff would be perferable - in case one has 
> other changes 
> in the xdb_file.c!

It's based on the original 1.4.2 distro so a diff with a stock xdb_file
will give you just the changes I've made.
 
> Here's a little one-liner shell script you can use to 
> re-arrange all the 
> data files in your spool directory.  It should be run from the spool 
> directory (ie. "cd /var/spool/jabber" or wherever).
> 
> ls *.xml | perl -n -e 'chomp; /^(.)(.)/; mkdir $1 unless -d 
> $1; mkdir "$1/$1$2\n" unless -d "$1/$1$2"; rename $_, "$1/$1$2/$_";'
> 
> To "undo" you can simply swap the order of the arguments to rename.

Thanks for the the script.  I'm scaling up from zero users, but I'm sure
another file scaling zealot will find it useful.

Thanks,

Mike 


___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


Re: [JDEV] Scaling 1.4.2 with xdb_file... And the patch

2003-02-27 Thread Ralph Siemsen
Mike Prince wrote:

I've included the patched xdb_file for those stuck in 1.4.2 land and are
so inclined.  To use the patch just drop in it and compile.  It WILL NOT
reorg your existing file store (you'll have to write a script to move
the files around).  The new directory is arranged as
./spool/hostname/m/me/mike.xml where the first fanout directory under
hostname is the first character of the username, and the second fanout
directory is the first and the last characters of the username.  Pretty
simple.
Great, though a diff would be perferable - in case one has other changes 
in the xdb_file.c!

Here's a little one-liner shell script you can use to re-arrange all the 
data files in your spool directory.  It should be run from the spool 
directory (ie. "cd /var/spool/jabber" or wherever).

ls *.xml | perl -n -e 'chomp; /^(.)(.)/; mkdir $1 unless -d $1;
mkdir "$1/$1$2\n" unless -d "$1/$1$2"; rename $_, "$1/$1$2/$_";'
To "undo" you can simply swap the order of the arguments to rename.

-R

___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


RE: [JDEV] Scaling 1.4.2 with xdb_file... And the patch

2003-02-27 Thread Mike Prince
I solved my own problem.  I added support for directory fanout below the
spool directory (isn't open source wonderful).

I've included the patched xdb_file for those stuck in 1.4.2 land and are
so inclined.  To use the patch just drop in it and compile.  It WILL NOT
reorg your existing file store (you'll have to write a script to move
the files around).  The new directory is arranged as
./spool/hostname/m/me/mike.xml where the first fanout directory under
hostname is the first character of the username, and the second fanout
directory is the first and the last characters of the username.  Pretty
simple.

Thanks,

Mike

> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On 
> Behalf Of Mike Prince
> Sent: Thursday, February 27, 2003 10:11 AM
> To: [EMAIL PROTECTED]
> Subject: [JDEV] Scaling 1.4.2 with xdb_file
> 
> 
> I'm scaling up my service (running on JabberD 1.4.2 of course 
> ;) and am running into the expected xdb scaling problems.  
> Further complicating the issue is that I'm using extended 
> namespaces in my XMPP.  I'd like to prove my service can 
> handle 250K accounts.
> 
> The desired solution should be quick to implement (hours to 
> days vs. days to weeks).  Note that I fully expect to move 
> over to an SQL solution in the long term.
> 
> After looking at both xdb_file and xdb_sql, I believe a quick 
> hack at xdb_file is the answer.  Currently xdb_file puts all 
> the user XML files in a single directory.  I'd increase the 
> fan out of the directory, changing ./spool/localhost/mike.xml 
> to ./spool/localhost/m/mi/mike.xml
> 
> Has anyone already done this?  Is there a better path?
> 
> Thanks,
> 
> Mike
> 
> 
> ___
> jdev mailing list
> [EMAIL PROTECTED]
> http://mailman.jabber.org/listinfo/jdev
> 


xdb_file.c
Description: Binary data


[JDEV] Scaling 1.4.2 with xdb_file

2003-02-27 Thread Mike Prince
I'm scaling up my service (running on JabberD 1.4.2 of course ;) and am
running into the expected xdb scaling problems.  Further complicating
the issue is that I'm using extended namespaces in my XMPP.  I'd like to
prove my service can handle 250K accounts.

The desired solution should be quick to implement (hours to days vs.
days to weeks).  Note that I fully expect to move over to an SQL
solution in the long term.

After looking at both xdb_file and xdb_sql, I believe a quick hack at
xdb_file is the answer.  Currently xdb_file puts all the user XML files
in a single directory.  I'd increase the fan out of the directory,
changing ./spool/localhost/mike.xml to ./spool/localhost/m/mi/mike.xml

Has anyone already done this?  Is there a better path?

Thanks,

Mike


___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


RE: [JDEV] Re: Open Source?

2003-02-27 Thread Daniel MD
I agree with Ulrich, 

There are allot of open source companies like: mySQL, Zend, etc... Those
provide open source licenses and also commercial services and products,
maybe you guys at Rhymbox should do it that way too. 

By the way I am a big fan of your client Rhymbox, it is beautiful and
very easy to use, I wish you guys allot of success in your endeavors,
and hope you make a client that will top the only rival for me outside
jabber client's the Trilian client, I really think that inside the
jabber client's you have no rival.

My wish list: A bit more extensibility thru the use of plug-ins.
  The ability to see the stream in plain text like other
client's do is something that I wish for.
  OOB made easy, drag and drop exchange of files, in out
of band connections.

PS: I know this is not Rhymbox list, but I think this licensing issue is
something that all developers will have to face sooner or later. And
having a reference on the list might help, maybe a licensing FAQ, on
jabber.org..

Just my 2cents...
 
Best Regards, 
Daniel MD


-Mensagem original-
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de
[EMAIL PROTECTED]
Enviada: quinta-feira, 27 de Fevereiro de 2003 11:35
Para: [EMAIL PROTECTED]
Assunto: Re: [JDEV] Re: Open Source?

Hi, 

I guess it depends on the interpretation of open source. As long as
rhymbox
is not GPL'd, the term open source is more or less meaningless, for me
as a
developer all my source code is open source :)

I do not to stab sebastiaan, but i'd choose a proper license model... it
helps a lot. several companys wanted to obtain and buy/whatever
sourcecode from
me, too, and with a proper licence model everything gets sorted quite
fast. 

hope this helps...
ulrich



> Ok, time for some clarification.
> 
> I'm one of the two RhymBox developers.  Shalom contacted me a few days

> ago with this very same question and I answered his questions, as I do

> with every request.  I did not receive any response from him.
Whatever.
> 
> 
> > Shalom Levytam wrote:
> > 
> > Thanks, this helps a bit.
> >
> > I guess Rhymbox is closed source then...
> 
> Take a look in the subdirectory "src" where you installed RhymBox.  It

> contains all scripts, HTML and CSS that you need to modify the GUI.
> The source code for the .exe framework is not distributed because
pretty 
> much the only reason you would need that is to create commercial 
> application based on RhymBox.  And we don't want that right now.
> We do however give out that source code to friends, people we trust, 
> people who pay, etc.  Contact me directly for more about this.  JDEV
is 
> not a mailing list about one client.
> 
> 
>  > Tijl Houtbeckers wrote:
> > "
> > Free services
> > RhymBox client and Jabber server
> > We offer a next-generation Jabber client. RhymBox is open source and

> > free of charge for personal use. "
> > 
> > It doesn't state what licence though, but "free of charge for
personal 
> > use" sort of implies not free for commercial use Perhaps a more
clear 
> > licence is provided in the download (since it's a DHTML application
I 
> > assume source is bundled with the download (or maybe there's a way
to 
> > compile DHTML these days).
> 
> There are ways to conceil DHTML code but they are flawed, hardly worth

> the effort and the exact opposite of what "open-source" means to the 
> RhymBox project.  The license states something like "you can modify
the 
> source code as long as you don't make a million bucks selling it
behind 
> our backs".  Not in those words though. ;-)
> The license is the first screen of the installer, and is also placed
in 
> the installation directory ("License.txt") for reviewing.
> We want people to be able to tweak the program interface, to learn
about 
> the Jabber protocol, to have an example of programming for the
different 
> libraries and languages that we use.  Nothing more.
> 
> 
> -- 
> Sebastiaan
> 
> ___
> jdev mailing list
> [EMAIL PROTECTED]
> http://mailman.jabber.org/listinfo/jdev
> 

-- 
Ulrich Staudinger http://www.die-horde.de http://www.igpp.de 
Product Manager @ http://complat.sourceforge.net/jnlp/ 
JID: [EMAIL PROTECTED] 

___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


Re: [JDEV] Re: Open Source?

2003-02-27 Thread David Waite
I would suggest you read the Open Source Definition (at 
http://www.opensource.org/docs/definition.php) before calling your 
software Open-Source. In particular, your licensing does not meet 
sections 1 and 6.

-David Waite

Sebastiaan Deckers wrote:

Ok, time for some clarification.

I'm one of the two RhymBox developers.  Shalom contacted me a few days 
ago with this very same question and I answered his questions, as I do 
with every request.  I did not receive any response from him.  Whatever.


Shalom Levytam wrote:

Thanks, this helps a bit.

I guess Rhymbox is closed source then...


Take a look in the subdirectory "src" where you installed RhymBox.  It 
contains all scripts, HTML and CSS that you need to modify the GUI.
The source code for the .exe framework is not distributed because 
pretty much the only reason you would need that is to create 
commercial application based on RhymBox.  And we don't want that right 
now.
We do however give out that source code to friends, people we trust, 
people who pay, etc.  Contact me directly for more about this.  JDEV 
is not a mailing list about one client.

> Tijl Houtbeckers wrote:

"
Free services
RhymBox client and Jabber server
We offer a next-generation Jabber client. RhymBox is open source and 
free of charge for personal use. "

It doesn't state what licence though, but "free of charge for 
personal use" sort of implies not free for commercial use Perhaps a 
more clear licence is provided in the download (since it's a DHTML 
application I assume source is bundled with the download (or maybe 
there's a way to compile DHTML these days).


There are ways to conceil DHTML code but they are flawed, hardly worth 
the effort and the exact opposite of what "open-source" means to the 
RhymBox project.  The license states something like "you can modify 
the source code as long as you don't make a million bucks selling it 
behind our backs".  Not in those words though. ;-)
The license is the first screen of the installer, and is also placed 
in the installation directory ("License.txt") for reviewing.
We want people to be able to tweak the program interface, to learn 
about the Jabber protocol, to have an example of programming for the 
different libraries and languages that we use.  Nothing more.


___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


Re: [JDEV] jabberd patch

2003-02-27 Thread Richard Dobson
> If you want to put a hack in your client that's fine by me but it
> doesn't mean other clients are obligated to. IMHO it's the protocol and
> the server that are misbehaving since they kick the client without
> giving any reason.

Yes the server does not give the specific reason but it does tell you
something big has happened and clients should not be ignoring that and just
trying to reconnect IMO, until the error codes are implemented in those
cases human intervention should be needed to get the client to reconnect, in
most cases such errors will happen very infrequently unless something is
badly wrong at the server end or the client end (e.g. sending invalid xml)
so I cant really see what you problem is.

> So you can choose between a few options here:
> 1. accept the protocol is broken and not implement reconnect, thus
> compromising on the functionality of your client (some people will
> switch to clients with a different client if they can) 2. Introduce a
> bad hack to solve this bug in some cases. Compromises functionality in
> some other cases. 3. Leave things as they, accept the *protocol* is
> flawed and should be fixed. The more the problem will occur the faster
> it will be fixed properly and the sooner serveradmins will upgrade.
> Don't compromise on functionality because the error is in the protocol
> and servers.
>
> As you can see I prefer 3. You can choose 1 or 2 if you want, but you
> can't acuse developers who choose 3 of misbehaving.

It is not bad IMO and helps stop it in most cases and will help promote
updates for reasons I will detail later in this email. Also the protocol is
already being fixed/enhanced with error codes.

> >Ah but hopefully we can get the stream error codes into jabberd2
> >before it goes final so they can be used to reliably determine the
> >reason for disconnection.
>
> I hope so too.. there has been discussion on the XMPPWG but I haven't
> read the outcome, if any (do the mailinglist archives have a search
> function yet?)

IMO it seems to be reaching concensus.

> I really still don't think you should solve problems by introducing
> hacks into the client. If we fix the protocol, and then upgrade the
> clients *properly* this will only be a good stimulation for those
> thousands of servers to upgrade. If we introduce a hack servers are
> less likely to upgrade and clients less likely to implement a proper
> fix because it already works "properly" in a large part of all cases.
> This way the hack will become "semi-offical" and we all know what kind
> of problems that brings along.

I dont consider it a hack and fixing the protocol is already in progress.
Also since just using the stream:error as Exodus does will stop
auto-reconnecting in the cases you mention were it might still want to try
auto-reconnecting I would argue that it would be a source of stimulation for
the server devs to update their servers to support error codes, and it would
be stimulation for client devs too.

> This is exactly the kind of thinking I'm opposing here. Just because a
> (very) large part of the servers supports your hack that's a reason to
> go ahead with it? This is what incompatabilities are made of! It goes
> directly agains the thinking behind open standards because it corrupts
> them.

BTW it is not my "hack", it had already been thought of by someone else (the
Exodus devs), it in no way introduces incompatibilities since having
stream:error's is a standard part of the protocol AFAIK, so it is not
corrupting anything it is following the protocol and I resent the
implication.

> Example:
> Let's say that jabberd1.4.2 for win32 and linux do not send a
>  when shutting down. According to you I'm not allowed to
> reconnect if it sends a stream:error, but it doesn't so I reconnect.
> Now I'm writing a new jabber server SuperExtraXMPPJabberD. When it
> shuts down to restart it's very polite and sends a The
> server is restarting (or if you're still into matching
> CDATA it sends "Disconnected" instead). However users start complaining
> that their clients won't autoreconnect like with jabberd. I "explain"
> to them this lenghty discussion, but some don't care and install a
> different server. Now my marketshare is even smaller :(

Then what you do is use the error codes which are not far off being decided
from what I can gather.

> I have some free time.. and there's a new standard with errorcodes. I
> implement it.. however, the clients don't implement it as fast as they
> could cause they already solved the problem. Well solved.. they used
> some hack you suggested. But hey, it works on all the servers with a
> significant deployment eh?

Well it wont look bad for you since if the clients dont follow the new error
codes and dont try auto-reconnecting when they can do it looks bad for the
client, all you do it recommend a client to them that follows the newer
standard which im sure most (if not all) of the good clients will follow,
thats the great thing about open protocols with 

Re: [JDEV] jabberd patch

2003-02-27 Thread Tijl Houtbeckers
"Matthew A. Miller" <[EMAIL PROTECTED]> wrote on 26-2-
2003 2:42:45: 
>
>The more I read this thread, the more I agree with both sides...
>
>Is there middle ground to be had?  What if XMPP were defined in such a
>way that if a connection/session attempted to auth as an already online
>one, it was up to the server.  If the server decided it was allowed, it
>sent the appropriate iq-error to the original connection (302?) along
>with the disconnect.  If the server decided it wasn't, it sent a 409 or
>405 iq-error to the new connection along with the diconnect.
>
>Does the above sound reasonable?  If so, I'll make a point of
>approaching the XMPP I-D authors on it.

In the current XMPP spec (draft-ietf-xmpp-core-04)  we can find this:

"
The following codes are defined for stream-level errors: 
302 - Redirect 
400 - Bad XML 
404 - Unknown Host 
410 - Gone 
500 - Internal Server Error 
505 - Version Not Supported 
"

I'd like to see 409 included here as well.

409 is already including amongst the standard error, so it's can be 
used for denying authentication: 

"
409 (Conflict) - Code 409 is returned when a request cannot be 
fulfilled because of an inherent conflict (e.g., because a client 
attempts to authorize a resouce name that is already in use). " 

The description would have to be changed a little too since it's not 
request-specific anymore. 


-- 
Tijl Houtbeckers
Software Engineer @ Splendo
The Netherlands

___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


Re: [JDEV] karma settings

2003-02-27 Thread Fabio Forno
Justin Georgeson wrote:
I read the notes in jabber.xml about karma, but none of e the formulas
are explained. Do I have to read the code to find out how the 'low'
karma settings translate to the actual badnwidth given?
AFAIK the explanation is given only in jabber.xml, with some examples.

--
Fabio Forno - PhD Student
Politecnico di Torino - Dip. Automatica ed Informatica
C.so Duca degli Abruzzi 24 - 10129 Torino (Italy)
Phone: +39 011 564 7137 - JabberId: [EMAIL PROTECTED]
___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


Re: [JDEV] Re: Open Source?

2003-02-27 Thread chicago5
Hi, 

I guess it depends on the interpretation of open source. As long as rhymbox
is not GPL'd, the term open source is more or less meaningless, for me as a
developer all my source code is open source :)

I do not to stab sebastiaan, but i'd choose a proper license model... it
helps a lot. several companys wanted to obtain and buy/whatever sourcecode from
me, too, and with a proper licence model everything gets sorted quite fast. 

hope this helps...
ulrich



> Ok, time for some clarification.
> 
> I'm one of the two RhymBox developers.  Shalom contacted me a few days 
> ago with this very same question and I answered his questions, as I do 
> with every request.  I did not receive any response from him.  Whatever.
> 
> 
> > Shalom Levytam wrote:
> > 
> > Thanks, this helps a bit.
> >
> > I guess Rhymbox is closed source then...
> 
> Take a look in the subdirectory "src" where you installed RhymBox.  It 
> contains all scripts, HTML and CSS that you need to modify the GUI.
> The source code for the .exe framework is not distributed because pretty 
> much the only reason you would need that is to create commercial 
> application based on RhymBox.  And we don't want that right now.
> We do however give out that source code to friends, people we trust, 
> people who pay, etc.  Contact me directly for more about this.  JDEV is 
> not a mailing list about one client.
> 
> 
>  > Tijl Houtbeckers wrote:
> > "
> > Free services
> > RhymBox client and Jabber server
> > We offer a next-generation Jabber client. RhymBox is open source and 
> > free of charge for personal use. "
> > 
> > It doesn't state what licence though, but "free of charge for personal 
> > use" sort of implies not free for commercial use Perhaps a more clear 
> > licence is provided in the download (since it's a DHTML application I 
> > assume source is bundled with the download (or maybe there's a way to 
> > compile DHTML these days).
> 
> There are ways to conceil DHTML code but they are flawed, hardly worth 
> the effort and the exact opposite of what "open-source" means to the 
> RhymBox project.  The license states something like "you can modify the 
> source code as long as you don't make a million bucks selling it behind 
> our backs".  Not in those words though. ;-)
> The license is the first screen of the installer, and is also placed in 
> the installation directory ("License.txt") for reviewing.
> We want people to be able to tweak the program interface, to learn about 
> the Jabber protocol, to have an example of programming for the different 
> libraries and languages that we use.  Nothing more.
> 
> 
> -- 
> Sebastiaan
> 
> ___
> jdev mailing list
> [EMAIL PROTECTED]
> http://mailman.jabber.org/listinfo/jdev
> 

-- 
Ulrich Staudinger http://www.die-horde.de http://www.igpp.de 
Product Manager @ http://complat.sourceforge.net/jnlp/ 
JID: [EMAIL PROTECTED] 

___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev


Re: [JDEV] Re: Open Source?

2003-02-27 Thread Sebastiaan Deckers
Ok, time for some clarification.

I'm one of the two RhymBox developers.  Shalom contacted me a few days 
ago with this very same question and I answered his questions, as I do 
with every request.  I did not receive any response from him.  Whatever.


Shalom Levytam wrote:

Thanks, this helps a bit.

I guess Rhymbox is closed source then...
Take a look in the subdirectory "src" where you installed RhymBox.  It 
contains all scripts, HTML and CSS that you need to modify the GUI.
The source code for the .exe framework is not distributed because pretty 
much the only reason you would need that is to create commercial 
application based on RhymBox.  And we don't want that right now.
We do however give out that source code to friends, people we trust, 
people who pay, etc.  Contact me directly for more about this.  JDEV is 
not a mailing list about one client.

> Tijl Houtbeckers wrote:
"
Free services
RhymBox client and Jabber server
We offer a next-generation Jabber client. RhymBox is open source and 
free of charge for personal use. "

It doesn't state what licence though, but "free of charge for personal 
use" sort of implies not free for commercial use Perhaps a more clear 
licence is provided in the download (since it's a DHTML application I 
assume source is bundled with the download (or maybe there's a way to 
compile DHTML these days).
There are ways to conceil DHTML code but they are flawed, hardly worth 
the effort and the exact opposite of what "open-source" means to the 
RhymBox project.  The license states something like "you can modify the 
source code as long as you don't make a million bucks selling it behind 
our backs".  Not in those words though. ;-)
The license is the first screen of the installer, and is also placed in 
the installation directory ("License.txt") for reviewing.
We want people to be able to tweak the program interface, to learn about 
the Jabber protocol, to have an example of programming for the different 
libraries and languages that we use.  Nothing more.

--
Sebastiaan
___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev