As many of you know I'm actively developing libAttachSQL and am rapidly heading towards the first beta release. For those who don't, libAttachSQL is a lightweight C connector for MySQL servers with a non-blocking API. I am developing it as part of my day job for HP's Advanced Technology Group. It was in-part born out of my frustration when dealing with MySQL and eventlet in Python back when I was working on various Openstack projects. But there are many reasons why this is a good thing for C/C++ applications as well.
It has been just over 2 weeks since the last libAttachSQL version was released. I had a great vacation in the middle which for once meant that I didn't do any work for the week I was away :)
For those who don't know about it, libAttachSQL is a lightweight, non-blocking C connector for MySQL servers. It is Apache 2.0 licensed so plays well with both Open Source and Commercially licensed applications. I have been developing it for 2 months now as part of my work for HP's Advanced Technology Group. It is hosted on GitHub and uses many freely available tools (such as Travis CI) to host and test various parts of the project. [Read more...]
Hot on the heals of last week's release we have released version 0.2.0 alpha of libAttachSQL. For those who have missed my previous blog posts, libAttachSQL is a lightweight C connector for MySQL servers I'm creating with HP's Advanced Technology Group. It has an Apache 2 license so is good for linking with most Open Source licenses as well as commercial software projects.
Changes in this release:
Added support for query result buffering
Passive connect on first query is now asynchronous
Improved memory handling
Many documentation changes, including API examples
libAttachSQL is a lightweight C connector for MySQL servers. It is Apache 2 licensed (and therefore compatible with many open source licenses as well as commercial use) and has a new asynchronous API. With the new API you send a command which returns immediately and you poll until the library tells you there are results ready, this is very useful for applications that have many things going on that you do not want held up by waiting for the MySQL server to process a query. In later posts I will give usage examples of this.
One big project I'm working on for HP's Advanced Technology Group right now is an Apache 2.0 licensed C connector for MySQL servers called libAttachSQL. The whole process, not just the code itself, is helping us learn about new and current techniques in Open Source development. Whilst I will be writing many posts about libAttachSQL in the future, today's post is about the free hosted services we are using around it.
Almost all previous Open Source projects I have worked on in the past have been hosted on Canonical's Launchpad platform. Over the last couple of years there has been a shift to using GitHub and almost everything I have worked on at HP has been hosted there. Now [Read more...]
I have spent a few days now playing with CoreOS and helping other members of HP's Advanced Technology Group get it running on their setups. Today I thought I would write about the good and the bad about CoreOS so far. Many components are in an alpha or beta state so things may change over the coming months. Also as a disclaimer, views in this post are my own and not necessarily those of HP.
As stated in my blog post yesterday, I have been using CoreOS on my Macbook Pro using Vagrant and VirtualBox. This made it extremely easy to setup the CoreOS cluster on my Mac. I made a minor mistake to start with, and that is to not configure the unique URL required for Etcd correctly. A mistake a colleague of mine also made on his first try so it [Read more...]
Yesterday someone opened a Launchpad question asking "is Drizzle dead?". I have answered that question on Launchpad but wanted to blog about it to give a bit of background context.
As I am sure most of the people who read this know, Drizzle is an Open Source database which was originally forked from the alpha version of MySQL 6.0. At the time it was an extremely radical approach to Open Source development, many features were stripped out and re-written as plugins to turn it into a micro-kernel style architecture. Every merge request was automatically throughly tested on several platforms for regressions, memory leaks and even positive/negative performance changes.
In fact Drizzle has influenced many Open Source projects [Read more...]
The Stackforge Libra project as with most Openstack based projects is written in Python. As anyone who has used Python before probably knows, Python has something called a GIL (Global Interpreter Lock). The GIL basically causes Python to only execute one thread at a time, context switching between the threads. This means you can't really use threads for performance reasons in Python.
One solution to get a little more performance is to use Eventlet. Eventlet is a library which uses what is called "Green Threads" and hacks on top of the networking libraries to give a mutli-threaded like feel to an application. As part of this blogging series for HP's Advanced Technology Group I'll write about some of the things I found out [Read more...]
I have recently moved to HP's Advanced Technology Group which is a new group in HP and as part of that I will be blogging a lot more about the Open Source things I and others in HP work on day to day. I thought I would kick this off by talking about work that a colleague of mine, Patrick Crews, worked on several months ago.
For those who don't know Patrick, he is a great Devops Engineer and QA. He will find new automated ways of breaking things that will torture applications (and the Engineers who write them). I don't know if I am proud or ashamed to say he has found many bugs in code that I have written by doing the software equivalent of beating it with a sledgehammer.
Every Devops Engineer worth his salt knows that backups are important, but one thing that is regularly forgotten about is [Read more...]
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.