Subject | Re: [firebird-support] Firebird embedded scalabilty and SS server stop doubts |
---|---|
Author | Nando Dessena |
Post date | 2004-11-24T10:44:34Z |
Hello,
k> Embedded Server :
actually "embedded engine", or just fbembed. There's no server.
k> In case of embed I hope it will suit for smaller applications.
k> (If I am wrong kindly correct me). But in case of larger applications
k> i.e. when the application need to handle millions of record. I am not
k> sure of the the scalability of embedded database process. Is there is
k> any specific things to be handled in such a case.
I can't help you because I don't deal with very large amounts of data
(except in one case, in which I have actually migrated from Oracle to
fbembed for speed, but the records are very small there).
Yet I can't see why an embedded engine would be less adequate than a
stand-alone one for the task.
k> Do you prescribe me to use not to use embedded DB in such a case?
Well, since switching is a matter of changing the connection string
and nothing else, you have both paths open 24 hrs/day. I suggest you
start with embedded, monitor it in a reasonably realistic environment,
then switch to firebird stand-alone and draw your conclusions.
I can imagine that you can trade some throughput (because you're going
to need a TCP connection to the firebird server - even locally) with
the ability to put the server in a separate box and gain scalability.
k> When Separate Database server is packaged:
k> Since we package the DB server along with our application. We need
k> to start the dbserver when the db gets started and stop it when our
k> application gets stopped. Similar to "fbmgr" in linux is there is any
k> equivalent tool in windows, to stop the firebird server in windows.
what I do is start a separate, private fbserver.exe when my (service)
application starts, and stop it (with TerminateProcess(),
unfortunately, but I take precautions to avoid shutting down the
server when a database is in use). All you need to do for this to
succeed is set the FIREBIRD environment variable in the environment
block of the called fbserver.exe process before starting it, and
possibly choose a TCP port different from 3050 to avoid collisions
with other instances of Firebird or InterBase on the target machine.
Ciao
--
Nando Dessena
http://www.flamerobin.org
======================================================
I support Firebird, I am a Firebird Foundation member!
Join today at http://www.firebirdsql.org/ff/foundation
======================================================
k> Embedded Server :
actually "embedded engine", or just fbembed. There's no server.
k> In case of embed I hope it will suit for smaller applications.
k> (If I am wrong kindly correct me). But in case of larger applications
k> i.e. when the application need to handle millions of record. I am not
k> sure of the the scalability of embedded database process. Is there is
k> any specific things to be handled in such a case.
I can't help you because I don't deal with very large amounts of data
(except in one case, in which I have actually migrated from Oracle to
fbembed for speed, but the records are very small there).
Yet I can't see why an embedded engine would be less adequate than a
stand-alone one for the task.
k> Do you prescribe me to use not to use embedded DB in such a case?
Well, since switching is a matter of changing the connection string
and nothing else, you have both paths open 24 hrs/day. I suggest you
start with embedded, monitor it in a reasonably realistic environment,
then switch to firebird stand-alone and draw your conclusions.
I can imagine that you can trade some throughput (because you're going
to need a TCP connection to the firebird server - even locally) with
the ability to put the server in a separate box and gain scalability.
k> When Separate Database server is packaged:
k> Since we package the DB server along with our application. We need
k> to start the dbserver when the db gets started and stop it when our
k> application gets stopped. Similar to "fbmgr" in linux is there is any
k> equivalent tool in windows, to stop the firebird server in windows.
what I do is start a separate, private fbserver.exe when my (service)
application starts, and stop it (with TerminateProcess(),
unfortunately, but I take precautions to avoid shutting down the
server when a database is in use). All you need to do for this to
succeed is set the FIREBIRD environment variable in the environment
block of the called fbserver.exe process before starting it, and
possibly choose a TCP port different from 3050 to avoid collisions
with other instances of Firebird or InterBase on the target machine.
Ciao
--
Nando Dessena
http://www.flamerobin.org
======================================================
I support Firebird, I am a Firebird Foundation member!
Join today at http://www.firebirdsql.org/ff/foundation
======================================================