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
