Avoid LCR-Stalling

Konrad Meier meierk at informatik.uni-freiburg.de
Wed Aug 11 16:33:50 UTC 2010

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.


More information about the OpenBSC mailing list