Looks like we're off to a good start for 2012!
38,000 characters
7,500 members
Around 60 regulars
30,000 daily visitors
15 pages per second
The database has been optimized to run fast, and we now have daily backups of the site.
I'll likely be making minor tweaks to the site for the next few days. As I don't yet seem to have enough energy to pull off another big project.
Some predictions might be nice, hmm?
This year... I think we'll reach 50,000 characters easily. 60,000 is possible, but will depend largely on how soon we hit 50k.
We'll have over 10,000 members, and over 100 regulars hopefully as early as April. ( Sooner if I finish updating various member features like Favorites, Groups, Awards, and so on. )
I'll be aiming for 100,000 daily visitors. Essentially 3x our current traffic levels.
---
I wish everyone a Happy new Year, and look forward to working with you all though 2012 and beyond!
Over the course of running Anime Characters Database, I've been faced with many challenges regarding the speed of the site database.
Running a concurrent MySQL database has many well defined challenges when you have several people at once selecting data, updating data, deleting data, and inserting data.
The books will tell you to use the appropriate storage engine for the situation.
MyISAM has only table locks, but performs well on selects.
InnoDB has row level locks and table locks.
mysql> show status like '%wait%';
+-------------------------------+--------+
| Variable_name | Value |
+-------------------------------+--------+
| Innodb_buffer_pool_wait_free | 0 |
| Innodb_row_lock_current_waits | 0 |
| Innodb_row_lock_waits | 105983 |
| Table_locks_waited | 500813 |
| Tc_log_page_waits | 0 |
+-------------------------------+--------+
My question was... what if I could reduce all those wait times to 0?
Thus I began a years long pursuit into the question of how to make something that is by definition impossible, possible!
And it has been done~
mysql> show status like '%wait%';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| Innodb_buffer_pool_wait_free | 0 |
| Innodb_row_lock_current_waits | 0 |
| Innodb_row_lock_waits | 0 |
| Table_locks_waited | 0 |
| Tc_log_page_waits | 0 |
+-------------------------------+-------+
By offloading nearly 80% of the site traffic to a Read Only database, I've managed to buy us a long term huge performance boost.
In the end, the project can be explained in 9 simple steps, should you want to do it too.
1) get src
2) configure
3) make
4) install
5) bootstrap
6) start
7) connect
8) take snapshot
9) replay snapshot
Understanding each of those steps could take months of study mind you.
------------------
In case anyone is wondering, "What will I notice as different?" there was a problem with adding characters where the site would lock up / lag for an average period of 9 seconds. That should no longer be the case.
Finished some log rotation.
Serving over a million page requests per day can grow some large logs...
-rw-r--r-- 1 www www 1.1G Oct 1 01:10 access-jail-186.log.2.gz
-rw-r--r-- 1 www www 16G Dec 19 02:46 access-jail-186.log.3
Made some updates to our Tag Pages:
http://www.animecharactersdatabase.com/tags.php
http://www.animecharactersdatabase.com/newtags.php
Added a Cloud-like list of who's been online today to our member stats page:
http://www.animecharactersdatabase.com/memberstats.php
Here's what's left on my ToDo list:
Tags
From my profile...
Select my award
1
2 3
1 = desc
2 = img
3 = select/deselect
See my Main Award
1) An updated favorites list would be awesome
2) build hall of fames for ever place members contribute
3) finish the password reset tool
4) isolate mysql & mysqld then craft automated backups and a read only database
5) create a mycounts database table then use it every place COUNT(*)'s happen to show a bar of member accomplishments ... like 99 fav chars, 10 fav series, 77 loved characters, 2 hated characters, etc all with links to the relevant pages. people with all 0's might find motivation to use the tools and change that, and see the changes in real time ^^
6) update all moderation tools
7) try again to create a moderation center that gives a useful heads up of where mods need to direct their attention so we never have to hear again from members complaining about something not being modded for months
8) experience moderation from the non-admin perspective. i'm kinda curious if there is adequate notification of status. new changes. pending moderation. modded approved. modded denied. and why.
update Who
members
after new thread
can delete if no replies yet
can add NSFW
but not remove ...