Home |  MySQL Buzz |  FAQ |  Feeds |  Submit your blog feed |  Feedback |  Archive |  Aggregate feed RSS 2.0 English Deutsch Español Français Italiano 日本語 Русский Português 中文
Showing entries 1 to 19

Displaying posts with tag: libdrizzle (reset)

nanomysql – tiny MySQL client lib
+0 Vote Up -0Vote Down

I recently got pointed towards https://github.com/shodanium/nanomysql/ which is a tiny (less than 400 lines of C++) MySQL client library which is GPL licensed.

If you need to link into non-GPL compatible code, there is the (slightly larger and full featured) libdrizzle library. But if you want something *tiny* and are okay with GPL, then nanomysql may be something to look at.

Libdrizzle 5.1.4 released!
+0 Vote Up -0Vote Down
I've just created a release of Libdrizzle 5.1.4 (the BSD licensed C connector for MySQL servers) which for me is one of the most exciting releases to date.

Why?
Not because the amount of features or anything that we have added, in fact this is mostly a minor release with bug fixes.  It is because Brian Aker and I didn't submit the most code for it.  That honour goes to Wim Lewis from The Omni Group who has done a fantastic job fixing up Libdrizzle.

As for the release itself the main fixes revolve around cleaning up code and many fixes to the server-side prepared statement handling.  Behind the scenes Wim has supplied many improvements to the test suite and Brian has setup




  [Read more...]
First version of Drizzle Tools for MySQL servers released
+1 Vote Up -0Vote Down
Today marks the first release of Drizzle Tools for MySQL servers.  Drizzle Tools aims to be a collection of useful utilities to use with MySQL servers based around the work on the Libdrizzle Redux project.

In this first version there is one utility in the tree called 'drizzle-binlogs'.  If you've seen me talk about this tool before it is because it used to be included in the Libdrizzle 5.1 source but has now been moved here to be developed independently.  For those who haven't 'drizzle-binlogs' is a tool which connects to a MySQL server as a slave, retrieves the binary log files and stores them locally.  This could be used as part of a backup solution or a rapid way to help create a new MySQL master server.

Due to the API changes before the Libdrizzle API became stable



  [Read more...]
Using the Libdrizzle Binlog API
+1 Vote Up -0Vote Down
Now that we have frozen the 5.1 API of Libdrizzle I can blog about how to use parts of the API.

In this blog post I will cover connecting to a MySQL server and retrieving the binary logs.

First of all we need to connect to the MySQL server

#include <libdrizzle-5.1/libdrizzle.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <inttypes.h>

int main(void)
{
  drizzle_st *con;
  drizzle_binlog_st *binlog;
  drizzle_return_t ret;
 
  con= drizzle_create("localhost", 3306, "user", "pass", "", NULL);
  ret= drizzle_connect(con);
  if (ret != DRIZZLE_RETURN_OK)
  {
    printf("Could not connect to server: %s\n", drizzle_error(con));
    return






















  [Read more...]
Libdrizzle 5.1.3 released
+1 Vote Up -0Vote Down
A couple of days ago we released Libdrizzle 5.1.3.  With this release of the C connector for MySQL servers we are freezing the 5.1 API and declaring it stable.  This is also one of our biggest releases after incorporating code from a Seattle developer day.  The diff since 5.1.2 is over 6000 lines long and around 180KBytes, incorporating many bug fixes and improvements.

The most notable changes in this release are:
  • the drizzle_binlogs tool has been removed, it is now in the Drizzle Tools tree which will have its first release soon.
  • the connection API has been refactored, options processing has been re-written and the connection API has been simplified in general
  • drizzle_escape_string has been made safer
  • drizzle_hex_string and drizzle_mysql_password_hash has been



  [Read more...]
Developing Libdrizzle
+2 Vote Up -2Vote Down
This weekend I am supposed to be giving a talk at FOSDEM on Libdrizzle.  Unfortunately my kids and I all fell ill on Thursday (my wife appears to be immune) so I had to cancel my plans (infecting 5000 people didn't seem wise :)

Instead I am writing this blog post about Libdrizzle and my part in it which covers some of what I was going to talk about.

History of Libdrizzle

Libdrizzle started out as a from-scratch C connector for Drizzle and MySQL originally created by Eric Day.  It was designed to be high performance and use common standards to make it easy to work on.  In the summer of 2010 it was merged into the main Drizzle tree where development has been focused.  There were several attempts to split it out again but until now none were truly successful.

For a few





  [Read more...]
Introducing Drizzle Tools
+1 Vote Up -2Vote Down
As part of the Libdrizzle Redux project I created an example tool which was bundled with it which will connect to a MySQL server as a slave and download the binary logs to local files.  This was developed as a quick example of what can be done with the new binlog API.

Two things quickly became apparent:
  • We shouldn't really be distributing applications in a library
  • I am going to be developing more useful tools around libdrizzle and they certainly shouldn't be in the same package
  • BSD is a fantastic license for a library, but I personally prefer GPLv2 for applications
  • With this in mind I have pulled the drizzle_binlogs utility from Libdrizzle trunk (and therefore won't be in the 5.1.3 release) and put it in its own repository.  It has been licensed appropriately (GPLv2) and I am already beginning to develop more tools to go with it.


      [Read more...]
    Libdrizzle 5.1.2 released and Libdrizzle at FOSDEM
    +1 Vote Up -0Vote Down
    Libdrizzle is getting better and better with every release, and to reflect this we have two announcements to make.

    First of all, Libdrizzle 5.1.2 has been released.  This release has several major bug fixes and performance enhancements.  Changes are as follows:
    • Non-blocking Windows connections are now more stable
    • Improvements to Windows building
    • Unix Socket connections are now more stable
    • Memory allocation/freeing cleanups (for performance and ease of code)
    • Network packet buffer now much more flexible
    • Many performance improvements (the bundled drizzle_binlogs tool is now around 10x faster on my i7 laptop)
    • Several other minor bug fixes
    API chages:
    • drizzle_query_str() has been removed, drizzle_query() with a 0 byte length parameter now does the same thing.
    As



      [Read more...]
    Libdrizzle 5.1.1 released!
    +2 Vote Up -0Vote Down
    A new version of the BSD licensed, MySQL compatible C client library, called Libdrizzle (5.1.1 codename Carbrooke) has been released today.

    Since the last release (less than 2 weeks ago) the diff is 7725 lines long, 224KB in size.  So we have been really busy :)

    There have been a few API changes in this version, especially around the prepared statement API.  We have made this API much simpler to use.  So applications will very likely need slight modifications and recompiling.

    Major changes in this version:
    • Windows support (using MinGW) - Big thanks to Brian Aker, he worked very hard on this
    • More cleanups and improvements to the general API
    • Faster, more stable non-blocking connection handling - Something else Brian has been working hard on
    • Almost the







      [Read more...]
    A MySQL Christmas present - Libdrizzle 5.1.0
    +2 Vote Up -0Vote Down
    Brian Aker and I have been working hard in the last few weeks to give you a great Christmas present, Libdrizzle 5.1.0.  The MySQL compatible, BSD licensed C connector (so static compiling with commercial software gets the thumbs up!).

    The latest changes include:
    • A server-side prepared statement API
    • Improved binary log API
    • An example binary log remote retrieval utility using the binlog API called "drizzle_binlogs"
    • A new build system, DDM4 which is used by Gearman and Memcached
    • Many bugs fixes
    The source and manuals can be found on the Launchpad downloads page.  Please enjoy, feel free to file bugs, questions and hack on code on our Launchpad page.  Happy holidays to all!
    Libdrizzle Redux 5.0-alpha1 Released!
    +1 Vote Up -0Vote Down
    Over the past few months I have been spending my spare time on a new project.  A new version of libdrizzle which is much simpler to use and with many new features.  Today the first version of this MySQL compatible client is released, called Libdrizzle Redux.

    Why 5.0?  Because Libdrizzle 1.0 and 2.0 have already been released, in packaging versions 3.0 and 4.0 used as API revisions.  So 5.0 is the fresh start.


    Main Features

    These are the main features of the library:

    • A BSD licensed MySQL compatible C connector, so you can statically link it with commercial software
    • A simplified API compared to Libdrizzle.  No more confusion over whether the client or library should be allocating/freeing.  There isn't a big difference to the MySQL C API for most things.
    • New






      [Read more...]
    Slides for Connectors Talk
    +5 Vote Up -0Vote Down
    I could not find a way to upload my slides for today's talk entitled "MySQL Compatible Open Source Connectors" on the Percona Live website so the PDF can be viewed on Slideshare.  Enjoy!
    Thoughts on node.js and libdrizzle
    +2 Vote Up -0Vote Down
    Today I was chatting with a technical friend, and she mentioned that she has a "todo" of writing a decent node.js driver for MySQL. A bit more chatting back and forth, and http://nodejsdb.org/db-drizzle/ was discovered. It was written to use libdrizzle and drizzled, but since libdrizzle can talk to MySQL, it should work for her needs as well.

    I would love to see some work done on how well libmysql+mysqld, libdrizzle+mysqld, and libdrizzle+drizzled handle highly concurrent asynchronous event-oriented workloads such as those generated by all these new node.js applications.

    I suspect that all sorts of surprising bugs will be discovered.

    Please help us discover those bugs.
    Last Week in Drizzle
    +2 Vote Up -0Vote Down

    Welcome to this week’s edition of “Last Week in Drizzle”.  As an introduction this week I would like to quote John David Duncan’s recent Facebook post: “And what’s in the weather forecast for next week? Drizzle.”.  Yes, our first GA release is due next week, does that mean the development pace has slowed?  Heck no!  Over 150,000 lines of bzr diff in the trunk since last week and quite a few branches still in the merge queue going through our extensive regression testing system.

    Google Summer of Code

    We have once again applied to be part of the Google Summer of Code program.  We had some great students last year and some new faces interested in being students on projects for Drizzle have already started taking on some low-hanging-fruit tasks to get them used to our code and processes.  We will have a sign-up form up soon so that anyone interested in

      [Read more...]
    Last Week in Drizzle
    +0 Vote Up -0Vote Down
    Welcome to this week's edition of "Last Week in Drizzle".  As an introduction this week I would like to quote John David Duncan's recent Facebook post: "And what's in the weather forecast for next week? Drizzle.".  Yes, our first GA release is due next week, does that mean the development pace has slowed?  Heck no!  Over 150,000 lines of bzr diff in the trunk since last week and quite a few branches still in the merge queue going through our extensive regression testing system.

    Google Summer of Code


    We have once again applied to be part of the Google Summer of Code program.  We had some great students last year and some new faces interested in being students on projects for Drizzle have already started taking on some low-hanging-fruit tasks to get them used to our code and processes.  We will have a sign-up form up soon so that anyone interested in being part of the

      [Read more...]
    libdrizzle
    +0 Vote Up -0Vote Down
    We have had several users report issues with libdrizzle lately, but on closer inspection it has been found they are using an old version with known problems.

    Back in October we merged libdrizzle into the main drizzle trunk.  All libdrizzle development since then has happened in drizzle rather than the separate libdrizzle project.  We had intended to shut down the libdrizzle project page but for several reasons it had not happened.  The libdrizzle project page now has a message to state that you should use drizzle instead and we have pulled the downloads down.  In the next few weeks we intend to:

  • kill the libdrizzle project page completely

  • devise a way to compile just libdrizzle when using the drizzle trunk, omitting the need to have all of drizzle's dependencies to compile





  •   [Read more...]
    Dogfooding a pastebin
    +1 Vote Up -0Vote Down

    http://pastebin.flamingspork.com/

    A pastebin running Drizzle and  the Drizzle PHP Extension (which is on top of libdrizzle).

    Saying farewell to drizzleadmin
    +0 Vote Up -0Vote Down

    For the last couple of days I’ve been working on removing drizzleadmin (formerly mysqladmin) from Drizzle‘s source tree and I’m happy to announce that the code is now merged to the trunk.

    So why did we decide to throw out a program that’s been around for a long time? Well, the tool wasn’t really useful to drizzle since mysqladmin is designed for MySQL and we wanted to factor out these old command line tools in the tree (explained later). With that in mind, I’ve been gradually removing code from drizzleadmin and by the end of it’s lifetime, only two commands remained: “shutdown” and “ping”. These commands are now moved to the drizzle command line tool.

    Here’s the new standard way to shutdown

      [Read more...]
    Fascinating libdrizzle benchmark results
    +0 Vote Up -0Vote Down

    Spreading the word about Jay’s awesome findings on the libdrizzle benchmark against the original library inherited from MySQL. For those that aren’t familiar with libdrizzle, it is a fresh new (modern implementation) MySQL compatible client library for Drizzle that leverages asynchronous I/O and smarter memory usage founded by Eric Day.

    You can read how this library came to life in this thread:

    As you can see in Jay’s findings with sysbench, libdrizzle outperforms the original library in all concurrency

      [Read more...]
    Showing entries 1 to 19

    Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

    Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.