John,

   My server uses epoll( ) and runs non-blocking in a single thread. I did
some google and found out that people who need a very fast server that is
highly scalable are using this model. non-blocking seems to be more
complicated at first glance but it actually makes the server design much
simpler. I am planning to release my code as open source when it is more
complete.

Thanks,
-Alex

On Tue, Jun 10, 2008 at 8:48 PM, John Stanton <[EMAIL PROTECTED]> wrote:

> We use an application server I wrote which handles HTTP, serves file and
> has embedded Sqlite for the RPCs.  The RPC can deliver its result either
> in XML for widely distributed applications or as JSON if it is
> responding to a WWW browser in AJAX mode.
>
> We keep a local library of SQL RPCs so that SQl never appears on the
> network and we have immunity from injection attacks.  It also means that
> we can cache compiled SQL, a useful performance win.
>
> We use the Expat parser in remote programs using the XML format.  A
> wrapper makes it a verifying parser to ensure well formed XML.
>
> The server is multi threaded and maintains a pool of live threads so it
> can respond quickly and assign multiple threads to one browser
> connection.  Shared cache in Sqlite and some extra caching to maintain
> multiple open databases and results makes Sqlite behave like a simple to
> use enterprise DB server, but without the overhead of extra processes.
> We use mutexes for synchronization, set up as read and write locks and
> avoid the POSIX file locks.
>
> We installed Javascript as a procedural language to be used by Sqlite
> instead of PL/SQL but that is not a great success (v. slow) and we are
> going to experiment with using Python.
>
> Based on our experience you should be very happy with your Sqlite based
> RPC capability.
>
> Alex Katebi wrote:
> > John & John,
> >
> >    Actually my API used to be XML using SCEW a DOM like XML parser that
> uses
> > Expat.
> >
> >    For my particular application RPC made more sense to me. What could be
> > easier than a function call? Another advantage was that I did not have to
> > create any functions. I am just using SQLite's C API. Now the users of my
> > application can query any table on the server side using select. Since my
> > application is a network server, and network debugging capability is
> > crucial.
> > The only ugliness is that select locks the tables. I wish D. Hipp would
> give
> > us an option for pStmt to create a temporary table of the select result
> set
> > and delete that temp table after finalize automatically. This way a
> client
> > can sit on a prepare/step for a long time.
> >
> >    I solved the endian issue pretty easy by sending the type code.
> >
> > Thanks,
> > -Alex
> >
> >
> > On Tue, Jun 10, 2008 at 3:07 PM, John Elrick <[EMAIL PROTECTED]>
> > wrote:
> >
> >> Alex Katebi wrote:
> >>> Yes I need to do it as 8 byte buffer. Convert the endianess to the
> >> network
> >>> then back to host for 8 byte integer.
> >>> I think XML is great for command validation and CLI auto typing, help
> >> etc.
> >>> Besides parsing issue, XML can not handle binary data directly.
> >>>
> >> As John pointed out, XML is not intended to handle binary data
> >> directly.  We use XML as a transfer medium for binary data and simply
> >> base64 encode it before encapsulation.
> >>
> >>
> >> John Elrick
> >> Fenestra Technologies
> >> _______________________________________________
> >> sqlite-users mailing list
> >> sqlite-users@sqlite.org
> >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> >>
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to