IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Query count versus query types.
Our app is very heavy on the SQL. I believe the record for one page was over 350 individual queries, though this has since been trimed by 50%. Every page is at least 3, though: two to re-load the logged in user and one to record profiling (but this is an INSERT DELAYED). At the moment, it's some 300 PHP pages talking to a MySQL database.

When we started looking at performance, we quickly discovered that unnecessary queries were causing us the most loss. Refactoring code to do one query and then create objects from all the rows rather than do one query that gave all the ids, and then one per id gained substantial gains. Most pages are in the 2-5 second mark on our development hardware (which is generally not to the level of our customers).

That said, there are still pages which take a long time to load. Generally these are pages which simply have to work with a lot of data. Also we're finding scaling problems past about 100 users, depending on the hardware, so we plan to completely re-write the app with a very different architecture. One of the key things I think we'll do is persistent in-memory storage on the application server - database storage will of course still occur, but it will have a much lower profile in the application code. I want to write a database layer that manages the objects in memory, their storage in the database and replication between other servers.

Wade.

Is it enough to love
Is it enough to breathe
Somebody rip my heart out
And leave me here to bleed
 
Is it enough to die
Somebody save my life
I'd rather be Anything but Ordinary
Please

-- "Anything but Ordinary" by Avril Lavigne.

New Just doing that move myself
In the Massive Rewrite™, I'm writing an object layer for the first time. Gonna try a distributed approach: more smaller object servers, instead of a monolithic one. That way I can aggregate and even chain servers with varying cache times, network speeds, and datastores. It also means I can write a single server interface for both the object layer and the web-interface layer.

Havin' fun. :)


I'm gonna go build my own theme park! With Blackjack! And hookers! In fact, forget the park!
New one thought....
....you might want to check out the in memory DB that boxley references in his post higher up in this thread. I have tried it and have had some good luck with it. There are also several other in memory DBs out there and most should integrate fairly easily with MySQL. I'm also trying a few XML-based in memory DBs lately....remains to be seen how well they perform....too early to tell.

My $0.02
-Slugbug
     Delivering sub-second response times - (admin) - (11)
         Distributed monitoring tools... - (slugbug) - (3)
             To a certain extent. - (admin)
             Database? - (gdaustin) - (1)
                 One More Thing.. - (gdaustin)
         you may want to take a look here - (boxley) - (1)
             A year ago, maybe. - (admin)
         My two cents - (lincoln) - (1)
             Considering... - (admin)
         Query count versus query types. - (static) - (2)
             Just doing that move myself - (FuManChu)
             one thought.... - (slugbug)

Powered by tiki torches of mass battery operation!
68 ms