Some good news. I have been able to secure some additional hardware for testing over the next few months. First up I received a pair of Dolphin interconnect cards which I will be putting through the paces sooner rather then later. These cards will really help complete our Waffle Grid Testing. Also I had a conversation last week with Texas Memory Systems who has agreed to let me loose on one of their RamSan 500’s for a few days in February. And Finally I have reached out and made contact with the folks at FusionIO and Violin Memory to try and setup some time to test with their products as well. (Still trying to get my hands on one of the new Sun Storage …
[Read more]Like I mentioned in my previous article, I've been working on refactoring the temporal data handling in Drizzle. The major problem I've been dealing with is poorly or non-documented code. The lack of documentation has led me to rely on the MySQL Manual in some cases, and then additional research and lastly, my own intuition as to what was going on.
One of the earliest cases of me saying "WTF?" was when I was investigating how day numbers were calculated. Here is the original, unmodified code from MySQL (/libmysql/my_time.c:746-778). I've highlighted in blue the massive amount of comments explaining the inner workings of the function and what it is doing.
/* Calculate nr of day since year 0 in new date-system (from 1615) SYNOPSIS calc_daynr() year Year (exact 4 digit year, no year conversions) month Month day Day NOTES: 0000-00-00 is a valid date, and will return …[Read more]
I was recently involved with a client that has to deal with a very large dataset in MySQL NDB cluster. The schema was very simple, a few (one or two) key columns and a large varbinary column. The cluster was large with 14 data nodes having each close to 60 GB devoted to DataMemory (DM) for a total combine size of
The main problem we had with the cluster during this engagement was the lack of disk space and the main cause of this, was the Redo log files. The cluster has been configured according to Johan best practices of 6xDM (http://johanandersson.blogspot.com/2008/04/great-configini.htm) forFragmentLogFileSize and NoOfFragmentLogFiles and, adding the 2 Local CheckPoint (LCP), this mean 8xDM or 480 GB, hard to fit on a pair or 146 GB drives. The purpose for 6xDM is to make sure write transaction are never rejected by the cluster because of a lack of redo log space. The redo log space basically …
[Read more]I am happy to announce Wordcraft 0.7. There are two big changes in this release. On the front end, I added a simple search. It just uses a LIKE clause. But, I figure a lot of blogs never reach 1,000 posts. Even at 10,000 posts, a LIKE would not be too bad. On the backend, I have switched the post editor to TinyMCE. YUI's editor is decent, but it needs polish. Perhaps my time with Wordpress just made me more familiar with it. TinyMCE does save XHTML. I put some code in the PHP side to use Tidy if it is available to convert it to HTML 4.01, which I prefer.
Also in this release:
- Fixed an XSS issue in tag.php.
- Fixing a parsing issue with anchor tags when doing pingbacks.
- Fixed an error when the remote site …
Image via Wikipedia
Recently, my company has decided to go full (or mostly) open
source by moving away from Microsoft technologies. This is a
particularly exciting venture to be part of, but in order to
explain what I mean, I need to go back a bit and explain the
history of the company.
History
Since its inception, the company has been a traditional LAMP
stack. Over time, some internal business applications were needed
to be developed. The initial platform to solve this requirement
was Microsoft Office and specifically Access database and some
Excel sheets. Later on, more and more VBA programming was added
to the Access database. At some stage, a decision was made to
move to VB.NET and port the VBA/VB6 code to it.
So far, this story is …
An outcome of the recent trip by Kohsuke to Japan was last week's Adoption Story with Ratuken (Home, Wikipedia) one of the largest internet companies in the world - their site is currently ranked by Alexa as #62 Worldwide and #5 in Japan. |
The Adoption Story ( …
[Read more]
Just the previous week, Anders mentioned the sql_mode
with regard to
Joomla. Past week, Shlomi's started a nice discussion pertaining to MySQL's sql_mode
. He offers the suggestion to modify the installation
procedure so MySQL is by default installed using a so-called
"strict" sql_mode
. In addition, he suggest it would
be better if it would not be allowed to change …
Over the past three weeks, I've been refactoring the way that Drizzle handles temporal, or time-related, values. It's been a fun little adventure into an area of the server which hasn't changed much in a long time. Today, I wanted to share a couple things I've learned about calendars, MySQL, and dealing with date-related calculations.
To start the conversation, imagine a SQL request like the following:
SELECT TO_DAYS("2008-08-11");
My guess is that many people don't really understand what is going on behind the scenes in the SQL server when they issue a request like the above. Believe it or not, there is quite a bit of calculation going on for a simple request like the above. Furthermore, there are a number of caveats that revolve around the ranges of dates that the SQL server operates on.
To demonstrate, without looking at the MySQL manual, can you …
[Read more]A call for suggestions for information and displays at the MySQL project stand at FOSDEM 2009
MySQL replication is quite different to replication on other DBMSes I’ve used (Sybase). It’s pretty easy to setup, it’s quick and solves many problems. However one thing it can’t do which frustrates me enormously is provide the ability to replicate the contents of multiple source databases into a single destination database. I’ve used this type of functionality before, mainly to allow independent nodes to replicate to a central reporting node.
However, MySQL has almost all the funtionality to do this already. It’s just built into the mysql daemon, mysqld, and not separate from it.
The functionality is there: connectivity to a master (the existing I/O thread), the storage of the replication changes and connectivity to the local db. It’s this last part which currently is part of the mysqld and is not able to talk to an external mysqld. If this were possible you could have a separate mysql …
[Read more]