On Mon, Apr 22, 2013 at 2:43 AM, Zen Shell <[email protected]> wrote:

> Hi again,
>
> During the last week I am going through the project's source code, now
> I've got a general view about the relation between major components of
> monkey server.
> Meanwhile, I'm also doing some research on relational database
> asynchronous libraries.
>
> After checking out and evaluating some available C libraries, here are
> some summings-up:
> For PostgreSQL, the official c library libpq natively supports async
> database access.[1] Seems we don't need third-party lib, a wrapper around
> the official lib may suit our need.
> For MySQL, libmysqlclient use blocking calls, and doesn't have a true
> async interface.
> Some availabe async thrid party libraries for MySQL:
> 1.MySAC[2]: written in C, latest version 1.1.1(released on June 06,2011),
> not active development
> 2.libdrizzle[3]: written in C/C++, latest version 5.1.3(released on Feb
> 07, 2013), active development
> 3.mysqlplus[4]: mainly written in C/C++ and some Ruby, not active
> development.
> All of the above libs do not seem to be widely used.
> Also there are other libraries which are mainly written in Java,
> JavaScript, Perl, Ruby.
>
> As an alternative, MariaDB supports non-blocking operations in the
> client-library starting with version 5.5.21.[5] And the library is
> MySQL-compatible.[6]
> I think this one may be a better choice becasue MariaDB comes with a
> better community support.
> There's already a node.js binding that makes use of MariaDB's non-blocking
> client API.[7]
> A tutorial on how to use MariaDB's non-blocking client API is avaiable
> here.[8]
>
>
I totally agree with you, we should use the MariaDB client library for our
purposes.


> And here are some questions:
> 1.Should we implement a connection pooling mechanism in the MySQL and
> PostgreSQL Duda I/O extentions? Or leave this to the user?
>

the user only want to know the callbacks, it must be as simple possible for
him to query a database using the Async API of Duda



> 2.Should the thrid party library be purely written in C?
>
>
preferred, unless you can wrap it without problems from Duda.


> My following works:
> 1.get familiar with the async database client API
> 2.write some code with the existing duda package to understand how they
> interact with web service
>
>
good.


> p.s. Due to the asynchronous nature of node.js, I think the popular
> node-mysql[9] and node-postgres[10] modules may provide us some reference.
>
> [1]libpq/asynchronous command processing
> http://www.postgresql.org/docs/9.2/static/libpq-async.html
> [2]MySAC(MySQL Simple Asynchronous Clinet)
> http://www.arpalert.org/mysac.html
> [3]Drizzle Client & Protocol Library https://launchpad.net/libdrizzle
> [4]mysqlplus https://github.com/oldmoe/mysqlplus
> [5]About Non-blocking Operation in the Client Library
> https://kb.askmonty.org/en/about-non-blocking-operation-in-the-client-library/
> [6]MariaDB Client Library for C
> https://kb.askmonty.org/en/mariadb-client-library-for-c/
> [7]mariasql https://npmjs.org/package/mariasql
> [8]Using the non-blocking library
> https://kb.askmonty.org/en/about-non-blocking-operation-in-the-client-library/
> [9]felixge/node-mysql https://github.com/felixge/node-mysql
> [10]brianc/node-postgres https://github.com/brianc/node-postgres
>
>
thanks!


> Best Regards,
> swpd
>
>
> On Thu, Apr 11, 2013 at 2:27 AM, Zen Shell <[email protected]> wrote:
>
>> Hi Eduardo,
>>
>> Thank you very much for your advices!
>>
>> I am reading about this great and informative article now.
>>
>> :)
>> Regards,
>> swpd
>>
>>
>>
>> On Thu, Apr 11, 2013 at 2:20 AM, Eduardo Silva <[email protected]> wrote:
>>
>>> Hi Zen,
>>>
>>>
>>> On Wed, Apr 10, 2013 at 12:16 PM, Zen Shell <[email protected]> wrote:
>>>
>>>> Hi all,
>>>> My name is Zeying Xie(@swpd on irc).I am an undergraduate student from
>>>> China.
>>>> I am more than willing to participate in the GSOC 2013 program and code
>>>> for Monkey this summer.The performance and compact size of Monkey has
>>>> caught my attention. It's a good place to learn about web server,
>>>> communication protocols details, network programming and lots of stuffs.
>>>>
>>>> After reading the GSOC ideas[http://monkey-project.com/gsoc2013/ideas]
>>>> of Monkey project, I found the "Add MySQL and PostgreSQL extensions to Duda
>>>> I/O" project very interesting and would like to contribute to it.
>>>> *
>>>> My Skills:*
>>>> I am fimiliar with C programming(3 years' experience).
>>>> I've totally switched to Linux for more than 2 years and have a good
>>>> knowledge of Linux and the development toolchains.
>>>> I have experience in working with relational database.
>>>> I have a good understanding of common data structures and algorithms.
>>>>
>>>> Currently I am getting myself fimiliar with Monkey's design and code
>>>> base.
>>>> I need some guides on where to start with the database extensions
>>>> project.
>>>> Any suggestions or comments would be very appreciated, Thanks in
>>>> advance!
>>>> :)
>>>>
>>>>
>>> before to get into the project it self, get familiar with the Monkey
>>> Architecture and how Duda works:
>>>
>>>
>>> http://edsiper.linuxchile.cl/blog/2013/02/27/architecture-of-a-linux-based-web-server/
>>>
>>>
>>> Check http://duda.io , our git repositories 
>>> git.monkey-project.com(duda-examples) and understand the relation between 
>>> them, as weel what
>>> means a Duda Package and how the API objects are mapped,
>>>
>>> feel free to reach us on irc.freenode.net #monkey
>>>
>>> best,
>>>
>>> --
>>> Eduardo Silva
>>> http://edsiper.linuxchile.cl
>>> http://www.monkey-project.com
>>>
>>
>>
>


-- 
Eduardo Silva
http://edsiper.linuxchile.cl
http://www.monkey-project.com
_______________________________________________
Monkey mailing list
[email protected]
http://lists.monkey-project.com/listinfo/monkey

Reply via email to