email at mattruby.com Guest
|
Posted: Sun Mar 09, 2008 11:23 am Post subject: [asterisk-users] replace astdb with a cluster-capable sql da |
|
|
unix-odbc with Asterisk Realtime is one good way to use a different
backend DB than MySQL. I haven't heard of "bit rot" problems running it
over long times, but I'd like to if there are any. I'm particularly
interested in seeing reports of Asterisk Realtime backed by Postgres.
The problem with pointing dialplan DB functions like Set(DB) at
unix-odbc (or any relational driver) is that the native functions use
the very fast BDB, not a relational one, that has very different
(better) scaling profiles than running those calls over a database
driver, especially across a network. Having all those BDB data available
in the relational DB for joins and other integrated queries (and backup
and other RDBMS features) would be great, but there is danger in
switching from the simple and high performance BDB into a more complex
RDBMS. One way to do it is to leave the native BDB system, but interface
a replica in the RDBMS to it. A polling process that replicates the BDB
data into the RDBMS, and (if not negligible) updates the RDBMS with a
read whenever the RDBMS copy is used (and then writes to the BDB when
the RDBMS replica changes) would let the BDB remain as a fast/reliable
"cache" directly to Asterisk, but use its data properly in the RDBMS.
I'm interested in seeing any work performed on integrating Asterisk's
data tier away from its defaults. Especially when that work is making
Postgres the authoritive data store. I have various info that can help
such a project, if people are really working on it.
On Sat, 2008-03-08 at 20:08 -0600,
asterisk-users-request at lists.digium.com wrote:
Quote: | Date: Sat, 8 Mar 2008 10:01:28 -0800 (PST)
From: Vieri <rentorbuy at yahoo.com>
Subject: [asterisk-users] replace astdb with a cluster-capable sql
database engine
To: asterisk-users at lists.digium.com
Message-ID: <955964.50841.qm at web32608.mail.mud.yahoo.com>
Content-Type: text/plain; charset=iso-8859-1
I've been searching the Internet for information
regarding the replacement of astdb with a modern sql
engine.
There are several reasons one would like to do this.
First of all, external applications have a hard time
reading/writing to the now-old astdb format.
Also (and this is what interests me most), the sql
astdb could easily be clustered throughout several
servers (I'm looking for a master-master MySQL
2-server cluster solution).
Asterisk has brought up Realtime which is very
powerful but, correct me if I'm wrong, it still
requires astdb internally. In other words, if I call
Set(DB) in the dialplan then it will always be using
astdb regardless of realtime.
Some projects like Callweaver have forked from
Asterisk 1.2 and replaced astdb with sqlite.
I'm wondering if Asterisk has plans to allow the user
to choose the astdb backend: standard db1, sqlite,
MySQL (which I would use with nbcluster for my
clustering purposes), Postgresql with Slony-II,
PGcluster, etc.
Or is it already possible?
There has been some talk on this before:
http://lists.digium.com/pipermail/asterisk-dev/2004-December/007846.html
Also, the func_odbc feature seems to be very powerful:
http://www.asteriskpbx.org/func_odbc
but:
1) would there be potential issues with db handles on
a very busy asterisk system after a relatively long
run time?
2) would there be a way to "map" the odbc function(s)
to the DB functions (Set(DB), read and write, DBdel,
etc) so that rewriting the whole dialplan would not be
necessary? (that's the whole point of defining a
different astdb "backend")
If there are known
problems/issues/projects/alternatives then please let
me know.
Thanks
| --
(C) Matthew Rubenstein |
|