Stats Server Day 3 Jul 15, 2011 | Rei
Another tough day writing this stats server.

Progress has been made on the core 5 handlers.

void handle_lookup( char * buf, int cfd );
void handle_record( char * buf, int cfd );
void handle_count( char * buf, int cfd );
void handle_update( char * buf, int cfd );
void handle_insert( char * buf, int cfd );

Each of those expands into multiple functions and already hundreds of lines of code.

mysql> select count(*) as n from ustats;
| n |
| 2747 |
1 row in set (0.00 sec)

Hm, interesting. It's not 1,000,000+ records as I feared. Reminds me, I need a means to delete old records. Like our current stats implementation, will keep track of your page views until it is 24 hours old. At which point, it is scheduled for deletion at midnight when our garbage handler runs. However, if like me you use the site day after day, same browser... er, apparently that doesn't matter. I just delete everything at midnight? lol Ah to have a simple implementation that makes sense... oh well, still time to sort all this out.

I'm gradually rewriting the PHP Include file that this aims to replace. Every function using MySQL API's will use Goral Software's Database API's. hehe

With a little luck, might be able to do some live testing this weekend.

Hm... although, I might want to run this through a Memory Leak detector before going live. Tho with 10GB of RAM, it's not like the server would instantly go down. haha. but nonetheless, it'd be a good idea
Stats Server Jul 14, 2011 | Rei
Sadly our current Stats implementation, which is tasked with being a software level DoS Protection, is itself causing minor DoS issues.

Every page requires access to the stats server, and despite a fairly well optimized MySQL implementation ... it's just not fast enough.

Luckily, I can do better. I'm coding a complete replacement in C. Writing my own database back-end, drafting my own API, implementing all the functions, and writing my own DBA Protocols.

Everything has been moving forward well...

A) Wrote a server in C that binds to a UNIX Domain SOCKET and listens for connections.
B) Write a client in PHP that connects to the database, sends a command, reads a reply.
C) Coded the server to read and parse commands, call handler functions.
D) Coded a handler for inserting new records.
E) Drafted the database as a structure, wrote a linked list storage engine
F) Wrote a primary key lookup handler
G) Retrieved records by primary key

Still a hell of a lot more to do.

I'll be reading about "man 3 dbopen" and "man 3 btree" tomorrow.

Creating working binary tree indexes will be something to explore.

We have very expensive CPU: Intel(R) Xeon(R) CPU X5670 @ 2.93GHz (2926.02-MHz K8-class CPU)

So it's possible it could linearly scan 1,000,000 records many, many, many times per second. But proper testing is necessary before I take that on faith alone. haha
More Roles Jul 11, 2011 | Rei
I expanded the Character Roles from 3 options to 8.

Protagonist's Nakama

Hope it'll be enough to cover most of the important characters in each series.

Protagonist's Nakama can be used to cover the people who hang around the main character.

Nakama = 仲間 なかま (n) company; fellow; colleague; associate; comrade; mate; group; circle of friends; partner

Working on some Rank advancement cron scripts next ~

Please know that cookies are required to operate and enhance our services as well as for advertising purposes. We value your privacy. If you are not comfortable with us using this information, please review your settings before continuing your visit. [close]

Anime Characters Database Logo Who's This Character Board | New Thread

12:33 am
Who is this ?
12:32 am
Who is this ?
Yesterday 11:12 pm
Who is this ?

New Thread

All images are copyright of their respective owners. Copyright © 2007-2021 Goral Software

We had 75231 visitors yesterday. Tell a friend about ACDB and let's get that over 100000 tomorrow!