Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread Matthew Caron

On 03/11/2015 04:24 PM, Steffen Hoffmann wrote:

Hm, I'm running past 10k tickets with a lot more than 5 users on SQLite
by now, and this is not even latest Trac stable but plugins mostly still
using the depreciated Trac 0.11 db API.

I think *concurrent* user requests are the issue, not total number of
registered users, and ticket count might be not much of an issue in general.


Yeah, and with 5 people hammering on it pretty much constantly, we'd get 
table lock timeouts. Now we've got about 10 heavy users and 15000 
tickets, and it's quite nice.


--
Matthew Caron, Software Build Engineer
Red Lion Controls | www.redlion.net
+1 (518) 877-5173 x138 office

--
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.


Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread Steffen Hoffmann
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 11.03.2015 18:30, tolu...@gmail.com wrote:
>> On 03/11/2015 01:24 AM, tol...@gmail.com wrote:
>> - There are about 1000 tickets, and about 50 users.
> 
> Eeep... we couldn't get past 5 users on SQLite. SQLite has very coarse
> locking, so it would lock whole tables and users would get errors. We
> switched to PostgreSQL (not my favorite, but MySQL support was pretty
> new at the time) and things got loads better.

Hm, I'm running past 10k tickets with a lot more than 5 users on SQLite
by now, and this is not even latest Trac stable but plugins mostly still
using the depreciated Trac 0.11 db API.

I think *concurrent* user requests are the issue, not total number of
registered users, and ticket count might be not much of an issue in general.

Still I'm approaching SQLite to PostgreSQL migration myself. While I
foresee quite a bit more procession overhead for the PostgreSQL backend,
it will certainly help with the locking issues, that are nasty with
SQLite indeed.

Steffen Hoffmann
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlUApJQACgkQ31DJeiZFuHdppgCfZpC79ubGfztrpfGwOds347KM
g0gAoLde72klU9pOp2a9xd9AXxXUiuSf
=oJ4e
-END PGP SIGNATURE-

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.


Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread Steffen Hoffmann
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 11.03.2015 20:27, tolu...@gmail.com wrote:
> Ok. Here is the debug log output for three pages that took ~10 
> seconds to load each. This is on the faster side of loading times.
> As you can see, trac has to restart itself everytime it loads a
> new page.

TracAccountManager-0.4.3 could be upgraded, but it shouldn’t make any
difference for your situation. While Trac env reload 'only' takes
approx. 5 s of the total request processing time, this is not only
much too slow these days, but the cause for the reload should be
determined in the first place. This is certainly no near normal Trac
behaviour.

Did you already try to debug by deactivating plugins one-by-one to
find the culprit?

Steffen Hoffmann
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlUAoVcACgkQ31DJeiZFuHeNOACfUHyglH645g5h8uPIf7pBWUtu
HPcAoKxtrZfjwcQt3ZYaxVWUrjCBLM3g
=LmnU
-END PGP SIGNATURE-

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.


Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread toluima
Ok. Here is the debug log output for three pages that took ~10 seconds to 
load each. This is on the faster side of loading times. As you can see, 
trac has to restart itself everytime it loads a new page.

The three pages that I navigated to are, /reports, /admin, and 
/wiki/test_Tomas - a sandbox page I create wiki pages with.

Thanks again.

Tomas


On Wednesday, March 11, 2015 at 11:13:22 AM UTC-7, RjOllos wrote:
>
> On Wed, Mar 11, 2015 at 10:56 AM, > wrote:
>
>> Ok, I think the plugin was installed when my predecessor tried to perform 
>> the migration. I can try to go through it again.
>>
>> Any idea why Bitten is slowing things down a lot? I know we have a patch 
>> that was applied to add some desired functionality to Bitten, like 
>> keep-alive communication, network timeout retries, etc.
>>
>> I've attached our patch for reference.
>>
>> Thanks!!
>>
>> Tomas
>>
>
> I think there are some Bitten users on this list, but you may have more 
> success browsing the Bitten mailing list and posting questions about your 
> issue there.
> http://bitten.edgewall.org/wiki/MailingList
>
> Regarding your earlier statement that it takes "~30 seconds to load a wiki 
> page", how long does it take after disabling Bitten? It would be useful to 
> see the DEBUG level log output that results from a single slow-loading 
> page. The output should be just a dozen or two dozen lines, so you could 
> manually sanitize it to remove any information you don't want to expose.
>
> - Ryan
>
>

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.


trac_debug.log
Description: Binary data


Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread Ryan Ollos
On Wed, Mar 11, 2015 at 10:56 AM,  wrote:

> Ok, I think the plugin was installed when my predecessor tried to perform
> the migration. I can try to go through it again.
>
> Any idea why Bitten is slowing things down a lot? I know we have a patch
> that was applied to add some desired functionality to Bitten, like
> keep-alive communication, network timeout retries, etc.
>
> I've attached our patch for reference.
>
> Thanks!!
>
> Tomas
>

I think there are some Bitten users on this list, but you may have more
success browsing the Bitten mailing list and posting questions about your
issue there.
http://bitten.edgewall.org/wiki/MailingList

Regarding your earlier statement that it takes "~30 seconds to load a wiki
page", how long does it take after disabling Bitten? It would be useful to
see the DEBUG level log output that results from a single slow-loading
page. The output should be just a dozen or two dozen lines, so you could
manually sanitize it to remove any information you don't want to expose.

- Ryan

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.


Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread toluima
Ok, I think the plugin was installed when my predecessor tried to perform 
the migration. I can try to go through it again.

Any idea why Bitten is slowing things down a lot? I know we have a patch 
that was applied to add some desired functionality to Bitten, like 
keep-alive communication, network timeout retries, etc.

I've attached our patch for reference.

Thanks!!

Tomas




On Wednesday, March 11, 2015 at 10:35:02 AM UTC-7, RjOllos wrote:
>
> On Wed, Mar 11, 2015 at 10:30 AM, > wrote:
>
>> I'm strongly considering switching to PostgreSQL. Is it a straightforward 
>> transition?
>> Can you point me to a link or describe how you performed the switch?
>>
>> A lot of my users are not here anymore. Would it help to delete their 
>> user accounts?
>> Would that affect any tickets they're associated with?
>>
>> Thanks!
>>
>
> The TracMigratePlugin, which you show is already installed in your plugin 
> list, will help with the migration. I suggest going with PostgreSQL since 
> there are fewer caveats involved with how your configure the database. If 
> you decide to use MySQL, I suggest upgrading to Trac 1.0.4 first.
>
> http://trac-hacks.org/wiki/TracMigratePlugin
>
> I don't think it will help to delete users in this case. The issues with 
> SQLite come down to how much load there is on your system.
>
>

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.
Index: bitten/admin.py
===
--- bitten/admin.py	(revision 1021)
+++ bitten/admin.py	(working copy)
@@ -55,6 +55,12 @@
   build_all and 'yes' or 'no')
 changed = True
 
+build_order = 'build_order' in req.args
+if build_order != master.build_order:
+self.config['bitten'].set('build_order',
+  build_order and 'yes' or 'no')
+changed = True
+
 adjust_timestamps = 'adjust_timestamps' in req.args
 if adjust_timestamps != master.adjust_timestamps:
 self.config['bitten'].set('adjust_timestamps',
Index: bitten/master.py
===
--- bitten/master.py	(revision 1021)
+++ bitten/master.py	(working copy)
@@ -56,6 +56,10 @@
 """Whether to request builds of older revisions even if a younger
 revision has already been built.""")
 
+build_order = BoolOption('bitten', 'build_order', False, doc=
+"""Whether to build older revisions first even if a younger revision
+is available.""")
+
 stabilize_wait = IntOption('bitten', 'stabilize_wait', 0, doc=
 """The time in seconds to wait for the repository to stabilize before
 queuing up a new build.  This allows time for developers to check in
@@ -161,6 +165,7 @@
 
 def _process_build_creation(self, req, slave_token):
 queue = BuildQueue(self.env, build_all=self.build_all,
+   build_order=self.build_order,
stabilize_wait=self.stabilize_wait,
timeout=self.slave_timeout)
 try:
Index: bitten/model.py
===
--- bitten/model.py	(revision 1021)
+++ bitten/model.py	(working copy)
@@ -546,7 +546,8 @@
 fetch = classmethod(fetch)
 
 def select(cls, env, config=None, rev=None, platform=None, slave=None,
-   status=None, db=None, min_rev_time=None, max_rev_time=None):
+   status=None, db=None, min_rev_time=None, max_rev_time=None,
+   order=False):
 """Retrieve existing builds from the database that match the specified
 criteria.
 """
@@ -573,10 +574,17 @@
 else:
 where = ""
 
+# The keyword DESC reverts to descending order
 cursor = db.cursor()
-cursor.execute("SELECT id FROM bitten_build %s "
+if order:
+cursor.execute("SELECT id FROM bitten_build %s "
+   "ORDER BY rev_time,config,slave"
+   % where, [wc[1] for wc in where_clauses])
+else:
+cursor.execute("SELECT id FROM bitten_build %s "
"ORDER BY rev_time DESC,config,slave"
% where, [wc[1] for wc in where_clauses])
+
 for (id,) in cursor:
 yield Build.fetch(env, id)
 select = classmethod(select)
Index: bitten/queue.py
===
--- bitten/queue.py	(revision 1021)
+++ bitten/queue.py	(working copy)
@@ -97,11 +97,12 @@
 repository 

Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread Ryan Ollos
On Wed, Mar 11, 2015 at 10:30 AM,  wrote:

> I'm strongly considering switching to PostgreSQL. Is it a straightforward
> transition?
> Can you point me to a link or describe how you performed the switch?
>
> A lot of my users are not here anymore. Would it help to delete their user
> accounts?
> Would that affect any tickets they're associated with?
>
> Thanks!
>

The TracMigratePlugin, which you show is already installed in your plugin
list, will help with the migration. I suggest going with PostgreSQL since
there are fewer caveats involved with how your configure the database. If
you decide to use MySQL, I suggest upgrading to Trac 1.0.4 first.

http://trac-hacks.org/wiki/TracMigratePlugin

I don't think it will help to delete users in this case. The issues with
SQLite come down to how much load there is on your system.

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.


Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread toluima
I'm strongly considering switching to PostgreSQL. Is it a straightforward 
transition?
Can you point me to a link or describe how you performed the switch?

A lot of my users are not here anymore. Would it help to delete their user 
accounts?
Would that affect any tickets they're associated with?

Thanks!

On Wednesday, March 11, 2015 at 6:34:48 AM UTC-7, matt.caron wrote:
>
>
> On 03/11/2015 01:24 AM, tol...@gmail.com  wrote: 
> > - I am running an Apache2 web server. I believe the site is running as a 
> > fast cgi script. Does that also hamper performance? 
>
> Yes. I suggest using WSGI. http://trac.edgewall.org/wiki/TracModWSGI 
>
> > - There are about 1000 tickets, and about 50 users. 
>
> Eeep... we couldn't get past 5 users on SQLite. SQLite has very coarse 
> locking, so it would lock whole tables and users would get errors. We 
> switched to PostgreSQL (not my favorite, but MySQL support was pretty 
> new at the time) and things got loads better. 
>
> -- 
> Matthew Caron, Software Build Engineer 
> Red Lion Controls | www.redlion.net 
> +1 (518) 877-5173 x138 office 
>

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.


Re: [Trac] Trac 1.0 + Bitten + mySql Lite Support

2015-03-11 Thread Matthew Caron


On 03/11/2015 01:24 AM, tolu...@gmail.com wrote:

- I am running an Apache2 web server. I believe the site is running as a
fast cgi script. Does that also hamper performance?


Yes. I suggest using WSGI. http://trac.edgewall.org/wiki/TracModWSGI


- There are about 1000 tickets, and about 50 users.


Eeep... we couldn't get past 5 users on SQLite. SQLite has very coarse 
locking, so it would lock whole tables and users would get errors. We 
switched to PostgreSQL (not my favorite, but MySQL support was pretty 
new at the time) and things got loads better.


--
Matthew Caron, Software Build Engineer
Red Lion Controls | www.redlion.net
+1 (518) 877-5173 x138 office

--
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.