Re: Scalability

2009-05-21 Thread David Trowbridge

We already have the ability to do diffs between revisions of the diff (just
click the boxes in "Changes between rX and: ...") We store only the diffs
to keep the size of the database smaller, and rely on heavy caching to
prevent fetching from the SCM too often.

-David

On Thu, May 21, 2009 at 5:23 PM, Alexey Morozov  wrote:
>
> Hi!
>
> On Thursday 21 May 2009 16:17:12 David Trowbridge wrote:
>> At VMware, we have a couple thousand engineers working on a single
>> server. Granted, I think it's a VM
>> with 4GB of RAM and multiple vcpus, but it's still a single server.
>>
>> We've been addressing performance recently, and while it's pretty
>> good, there's still more to do. MySQL
>> isn't a big bottleneck--most of it is computing the diffs to display.
>> I don't think you'll have any trouble
>> getting 200 people up and running.
>
> Regarding the method to handle diffs.
>
> How do you think wouldn't it be faster if ReviewBoard internal data model was
> slightly different? Instead of keeping patches it might keep entire source
> and target files. In this case diffviewer job looks less demanding (now it
> anyway deals with both files, and target file is produced by patch, which
> isn't that fast, I guess). Also such data-model allows to see difference
> between any versions of a changed file, not only between its "source"
> and "target" states. This might be usefull to quickly see if a developer
> actually put requested changes to a review being discussed.
>
> Best regards,
> Alexey Morozov
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en
-~--~~~~--~~--~--~---



Re: Scalability

2009-05-21 Thread Alexey Morozov

Hi!

On Thursday 21 May 2009 16:17:12 David Trowbridge wrote:
> At VMware, we have a couple thousand engineers working on a single
> server. Granted, I think it's a VM
> with 4GB of RAM and multiple vcpus, but it's still a single server.
>
> We've been addressing performance recently, and while it's pretty
> good, there's still more to do. MySQL
> isn't a big bottleneck--most of it is computing the diffs to display.
> I don't think you'll have any trouble
> getting 200 people up and running.

Regarding the method to handle diffs.

How do you think wouldn't it be faster if ReviewBoard internal data model was 
slightly different? Instead of keeping patches it might keep entire source 
and target files. In this case diffviewer job looks less demanding (now it 
anyway deals with both files, and target file is produced by patch, which 
isn't that fast, I guess). Also such data-model allows to see difference 
between any versions of a changed file, not only between its "source" 
and "target" states. This might be usefull to quickly see if a developer 
actually put requested changes to a review being discussed. 

Best regards,
Alexey Morozov

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en
-~--~~~~--~~--~--~---



Re: Scalability

2009-05-21 Thread Christian Hammond
At VMware, we have a single server (with 4 processors I believe, but that's
not important) with about 4GB of RAM running a Review Board instance using
Apache and MySQL. It services over 2000 developers and connects to somewhere
around 15 repositories. We have almost 80,000 review requests on file. I
can't even guess as to how many reviews and diffs we have. Review Board has
been able to easily handle this load.

One of the important things is to make sure you have sufficient RAM and are
using memcached. We heavily cache rendered pages, diffs, and files coming
from your repositories in order to achieve maximum performance. The more RAM
you have, the better. At least to a point. 2GB worked pretty well for us for
a long time. We're using 4GB now, which is also working well and we haven't
come close to hitting it, I don't think.

The major bottlenecks are usually I/O-related. Database access and remote
repository access being the big ones.

If you do reach a point where the server can't handle the capacity, there
are things you can do.

A good start would be to move the database server to another system (or VM,
depending on how you're hosting this). Just transfer the database to another
server that Review Board can access and point to it in your
{sitedir}/conf/settings_local.py file.

Review Board can access multiple memcached servers, so you could always
spread that out to multiple systems to increase the amount of data that can
be cached.

Though I've never tried it, in theory you could have the Review Board
software on multiple servers with a round-robin set up for the DNS, and have
each access the same memcached and database servers.

There's a number of other things that could be done. Our entire software
stack is designed to scale. We get that largely for free by using Django.
The common database and web servers are designed to scale as well.

Assuming you have a decently configured server with enough RAM, I wouldn't
be too concerned about scalability right now.

-- 
Christian Hammond - chip...@chipx86.com
Review Board - http://www.review-board.org
VMware, Inc. - http://www.vmware.com


On Thu, May 21, 2009 at 2:04 AM, KunalG  wrote:

>
> Hi,
>
> I am interested to know if RB has been tested for its scalability.
> Will a single server be able to handle around 200 or more developers
> working on different repositories ?
>
> Are there any other scalibility issues either by MySQL or any other
> thing for this.
>
> Thanks,
> Kunal
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en
-~--~~~~--~~--~--~---



Re: Scalability

2009-05-21 Thread David Trowbridge

At VMware, we have a couple thousand engineers working on a single
server. Granted, I think it's a VM
with 4GB of RAM and multiple vcpus, but it's still a single server.

We've been addressing performance recently, and while it's pretty
good, there's still more to do. MySQL
isn't a big bottleneck--most of it is computing the diffs to display.
I don't think you'll have any trouble
getting 200 people up and running.

-David

On Thu, May 21, 2009 at 2:04 AM, KunalG  wrote:
>
> Hi,
>
> I am interested to know if RB has been tested for its scalability.
> Will a single server be able to handle around 200 or more developers
> working on different repositories ?
>
> Are there any other scalibility issues either by MySQL or any other
> thing for this.
>
> Thanks,
> Kunal
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en
-~--~~~~--~~--~--~---



Scalability

2009-05-21 Thread KunalG

Hi,

I am interested to know if RB has been tested for its scalability.
Will a single server be able to handle around 200 or more developers
working on different repositories ?

Are there any other scalibility issues either by MySQL or any other
thing for this.

Thanks,
Kunal
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en
-~--~~~~--~~--~--~---