Am 10.08.2010 16:44, schrieb Holger Hans Peter Freyther:
do you have an idea why it is stalling? Is the
executed query so complex or is
someone trying to write into the database while we try to find a subscriber?
Yes, if think it is triggered by the size of the database. My hlr.sqlite
is about 20MB big an is growing every day about 2MB. If I take a look at
the Tables, I can see that the only big table is "Counters".
Is there any reason why the table "Counters" is growing this fast?
The size of the database can be reduced by clearing the Counters table
and performing the vaccum command in sqlite3. My database was only 180kB
after cleaning.
I think a query should never block the program flow. In my setup I can
see periodic read and write access to the database which are blocking
the hole system and therefor LCR stalling messages are generated.
At the 26C3 (IIRC) we had issues with blocking the
database as we
had a separate process that locked the database for its queries.
It would be very nice if you could find students as we have plenty DB related
tasks where we could need a hand. Some of these could include:
-) Figure out why we are stalling (rw locks inside sqlite?)
-) Create an index for the sqlite databases... (proof it is making
things faster with a standalone benchmark having the same pattern
as bsc_hack in your network...)
-) Making the DB interface asynchronous (send and forget, send and
async reply)
-) Maybe go so far to use TCAP/MAP and implement a proper VLR module..
I will see what I can do.
Regards
Konrad