Fajar A. Nugraha wrote:
For comparison purposes, we currently implement some config and db schema modifications to better handle accounting packets. For example: - always return ok on accounting packets that the NAS sends. Implementing it requires using detail reader/writer and some unlang blocks to catch some weird corner cases (e.g. Acct-Session-Time=0)
OK. What does the detail reader/writer do? Catch cases where the SQL DB is down?
- use unique constraint on acctuniqueid
The git "master" branch has some additional changes to help make a more unique accounting ID.
- remove all *_alt queries
Yeah. I've never really understood the need for them. The module failover can do the work just as well, I think.
- split "live" accounting table (those with Acct-Status-Type <> 'Stop') and "archive" accounting table
That's necessary. It can speed up Simultaneous-Use checking, too.
- change most insert/update queries to "INSERT .... ON DUPLICATE KEY UPDATE ...." - use "DELETE IGNORE" to delete records from "live" accounting table
That's MySQL specific, but useful.
Took some effort, but it works. @Alexandre: some of the logic might be relevant for your situation as well.
I'd like to see that added into the server for 3.0. Patches? Alan DeKok.