<div dir="ltr"><div class="gmail_quote">On Tue, May 3, 2011 at 4:41 AM, Thorsten Göllner <span dir="ltr"><<a href="mailto:tg@ovm-group.com">tg@ovm-group.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div text="#000000" bgcolor="#ffffff">
Am 02.05.2011 15:59, schrieb A E [Gmail]:
<div><div></div><div class="h5"><blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">On Mon, May 2, 2011 at 3:15 AM, A E
[Gmail] <span dir="ltr"><<a href="mailto:all.eforums@gmail.com" target="_blank">all.eforums@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<div dir="ltr"><font color="#663366"><font face="trebuchet
ms,sans-serif">Hello All,</font></font>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif"><br>
</font></font></div>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif">Probably a silly question, but we're
wondering if people have had any experience and have
data to demonstrate if the performance of the
Asterisk system might suffer in terms of latency
etc. if we're to have it retrieve sound files from a
database using odbc as opposed to storing them
locally on the filesystem. Note, these are not
prompts...these are sound files that are being
created through a web-app and being stored in the DB
as BLOB or similar datatype that's good/efficient to
store audio/video files in a DB. We need these be
made available through the asterisk system to play
over the phone. Although the DB uses a SAN, the
Asterisk System has no connectivity to the SAN but
is connected on the same physical ethernet switch
with a multi-Gbps backplane.</font></font></div>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif"><br>
</font></font></div>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif">The way the system is being designed,
it's possible for us to end up with 000s of these
sound files stored in the DB, not to mention several
asterisk systems in a pool/cluster/farm requesting
these files, so using the local filesystem might not
be scalable or efficient. </font></font></div>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif"><br>
</font></font></div>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif">Any advice/comments/suggestions
welcome :)</font></font></div>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif"><br>
</font></font></div>
<div><font color="#663366"><font face="trebuchet
ms,sans-serif"><br>
</font></font></div>
</div>
</blockquote>
</div>
Just realised that this can better be described another way:
<div><br>
</div>
<div>What we're essentially trying to do is be able to do any
one of these</div>
<div><br>
</div>
<div>a) stream an audio/video file stored in the DB via AGI into
the current channel so that it plays on the phone</div>
<div><br>
</div>
<div>OR </div>
<div><br>
</div>
<div>b) Do something like what Realtime Voicemail does, where it
gets the file from the DB, saves as a temp file in the user
mailbox directory and then plays it to the caller but this
needs to happen through AGI, something along the lines of
readsql (a la func_odbc) inside of AGI</div>
<div><br>
</div>
<div>OR </div>
<div><br>
</div>
<div>c) Anything else that's better than a) and b) above that
someone can suggest. </div>
<div><br>
</div>
<div>P.S> I do know about the AGI AddOn of PUT SOUNDFILE and
GET SOUNDFILE which seems to be the only solution we can think
of right now, other than of course having the DB machine
exporting the SAN volume as an NFS share for the Asterisk
server to mount, but that sounds like it'll be bad for
performance?</div>
<div><br>
</div>
</div>
</blockquote>
<br></div></div>
Mediafiles are stored on SAN and the DB stores references to the
files in the SAN. I do not see a problem doing it this way. It's
scaleable and efficient. Where do you suppose to run into problems?<br>
</div>
<br></blockquote><div><br></div><div><font class="Apple-style-span" face="'trebuchet ms', sans-serif" color="#000099">Well the problem as explained above is that the * machine does NOT have direct access to the SAN. So we cannot mount the SAN volume on the * machine as a shared drive. It'll have to either be shared by the DB server for the * machine to read from, OR we can use the GET SOUNDFILE / PUT SOUNDFILE AGI AddOn to copy the sound files from the DB machine to the * machine to play it over the phone. Just wondering if that will have any major performance impact</font></div>
</div></div>