[Home]

Summary:ASTERISK-27383: astdb: Document performance issues and alternatives
Reporter:Corey Farrell (coreyfarrell)Labels:
Date Opened:2017-10-30 13:56:43Date Closed:
Priority:MinorRegression?
Status:Open/NewComponents:Applications/app_db Core/AstDB Functions/func_db
Versions:13.18.0 GIT 15.1.0 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:All operations against astdb occur behind a global mutex.  This can lead to performance issues when astdb is used heavily by dialplan.

* Add a warning to xmldoc for all astdb actions.
* Best practice documents and examples?

asterisk-dev discussion: http://lists.digium.com/pipermail/asterisk-dev/2017-October/076573.html
Comments:By: Corey Farrell (coreyfarrell) 2017-12-19 07:28:49.170-0600

Hey Sean is this still an issue after all the work you've done?

By: Sean Bright (seanbright) 2017-12-20 13:15:48.408-0600

The changes I made only dealt with the specific use case of sorcery, so I can't speak to the general performance of astdb.

By: George Joseph (gjoseph) 2017-12-21 17:17:20.801-0600

Are either of you planning to work this?  If not, ok to close?


By: Corey Farrell (coreyfarrell) 2017-12-21 17:54:06.192-0600

I opened this after a asterisk-dev thread with [~greenfieldtech], let's see what he thinks before we close it.

By: Nir Simionovich (GreenfieldTech - Israel) (greenfieldtech) 2017-12-22 06:13:17.216-0600

Hmmm...

Personally, I do believe that the general "butchering" of AstDB among the various platform developers
had gotten to a point where an alternative should be created. I don't believe that digging into the existing
AstDB code base and investing efforts in resolving the performance issue is worth while. When used within
the parameters of its creation, AstDB performs very well and delivers on its promise.

Creating a new backend (or backends) for "Key/Value" operations, or maybe a "NoSQL" connector for such
is a worth while effort. Currently, most of us will use an AGI (or other variant) approach to doing this, while
providing such a tool from the dialplan can prove both powerful and appealing to many developers.





By: Rijnhard Hessel (rijnhard) 2021-04-28 13:11:54.937-0500

not going to lie, it's pretty frustrating to have to manage multiple databases as performance bottlenecks, especially since ODBC is used in many other places. I would really have expected this to leverage ODBC aswell.
Very few applications (outside of the enterprise tech stacks) have any real reason to use multiple databases for their operations, and most end up compromising in some aspect and picking the database that's best suited for the primary use case.

I mean, it's not like you cant emulate key/value tables in any self-respecting RDBMS.

In general from a maintenance and support perspective (running a few hundred individual instances) asterisk has too many different components to manage, so axing sqllite and having all the data work through ODBC would go a long way to simplifying its management.