Morton Tocker just recently wrote the blog article When Should You Store Objects in the Database
where he talks about what Josh Berkus calls the 'E-blob
antipattern'. There is much disagreement on whether this is a
pattern or an antipattern.
This pattern is where you take all the information about
something, and serialize it into a string, usually in JSON
format, and then insert them into a very simple MySQL InnoDB
table that contains only a primary key column and a "data" BLOB
column to keep that serialized string in.
I can understand (and even make) the arguments pro and con.
What bugs me about this pattern is that you have basically
created a document store or an object store, but with all the
complexity and brittleness of running a SQL database that you
can't run SQL …
I have been busy doing things other than modifying MySQL for a few months, but now I am back and have a few more patches to share for the Facebook patch for MySQL 5.0. Activity on this patch will soon end as we will begin working on MySQL 5.1.
Yes, there will be a Facebook patch for MySQL 5.1. There are several people at Facebook who modify MySQL, so we should have good things to share for 5.1. We will also present our work at the MySQL Conference, but our session is not listed yet.
The new patches are available at Launchpad. As with any change to a complex piece of software, it is wise to work with your source code provider (MySQL, MariaDB, Drizzle, Percona, etc) if you are interested in these changes. While I am a big fan of …
[Read more]A while back Friendfeed posted a blog post explaining how they changed from storing data in MySQL columns to serializing data and just storing it inside TEXT/BLOB columns. It seems that since then, the technique has gotten more popular with Ruby gems now around to do this for you automatically.
So when is it a good idea to use this technique?
If the application really is schema-less and has a lot of optional parameters that do not appear in every record, serializing the data in one column can be a better idea than having many extra columns that are NULL. The restriction on this, would be that searching on these columns now becomes more difficult[1]. A good example of this optional nature of data is user preferences - you only really need to store the settings that differ from …
[Read more]I’ve been using a lot of RESTful services these days and have been waiting for a good book that is dedicated to the topic. I recently received a copy of ‘RESTful PHP Web Services’, which does a successful job of outlining proven concepts in current web technology. If you want to learn the methods for creating and consuming RESTful services then you will find many examples in this book. From the architectural plans to well thought out code samples, the book covers a lot of ground in a relatively quick read.
The first chapter gives the reader a quick introduction to RESTful services and the most common PHP frameworks in use at the time of writing. I particularly enjoyed the section on the Zend framework due to the explanation of benefits over the other frameworks. …
[Read more]EC approves Oracle-Sun. Google patents MapReduce. And more.
Follow 451 CAOS Links live @caostheory on Twitter and
Identi.ca
“Tracking the open source news wires, so you don’t have
to.”
EC approves Oracle-Sun
The European Commission cleared Oracle’s proposed acquisition of Sun
Microsystems. While Larry Ellison is set to unveil Oracle’s
Sun strategy on January 27th, Monty Widenius said he will go to the
Court of First Instance to appeal the decision.
# Pro-open source political party formed in Hungary.
# Google …
[Read more]
Sun has made changes in the certification procedures for all
their exams including the MySQL exams. Exam vouchers are no
longer offered through local Sun Sales Offices but exams can be
purchased directly from Prometric. The price has been raised to
$300 per exam.
The exam codes are:
Sun 310-810 Sun Certified MySQL DBA 5.0 part I
Sun 310-811 Sun Certified MySQL DBA 5.0 part II
Sun 310-812 Sun Certified MySQL Developer 5.0 part I
Sun 310-813 Sun Certified MySQL Developer 5.0 part II
Sun 310-814 Sun Certified MySQL Associate
Sun 310-815 Sun Certified MySQL 5.1 Cluster DBA
The new prices went into effect January 19th.
Thanks to a user of Q4M, I have found a bug that would likely lead to data corruption on 32bit versions of Q4M. 64bit versions are unaffected.
Q4M by default uses mmap(2) to read from data files. On 32bit systems, it tries to map max. 1GB per each table into memory using mmap. When mmap fails to map memory due to low memory, Q4M falls back to file I/O to read the data.
However there was a bug in handling the response from mmap, that led to reading corrupt data from database files when mmap(2) failed after the size of the underlying file was grown / shrunk by Q4M. And since Q4M writes back the corrupt data into the database file when rows are being consumed, the bug will likely destroy the database files.
I have fixed the bug and have uploaded Q4M 0.9.2, into the prerelease directory at …
[Read more]After intense antitrust investigation focused on the MySQL database, the European Commission gives an official OK for Oracle to acquire Sun Microsystems.
Introduction
This paper is an introduction to the new 'performance schema' feature, which will be part of the upcoming MySQL 5.5 release. Covering in details every part of the performance schema would require much, much more than a simple article. The pace of this teaser is voluntarily fast, to have a quick overview of the new landscape, and help users already familiar with MySQL to understand by examples what the performance schema provides.
Please refer to the online documentation in the MySQL manual for more content.
Basic setup
Let's start a server, and a client connection for monitoring.
mysql> select version(); +---------------------+ | version() | +---------------------+ | 5.5.99-m3-debug-log | +---------------------+ 1 row in set (0.00 sec) mysql> prompt Monitor> ; PROMPT set to 'Monitor> ' …[Read more]
Welcome!
I write about the techne that is the amazing machine we call "The
Net".
At present, I am mostly interested in Memcached, the Drizzle DB
fork of MySQL, NoSQL, and in open standards, but I will be
writing about other stuff as well.
I used to do my public geek blogging in my personal LiveJournal,
but for various reasons it makes sense to separate my public
writings about technology, my other public writings, and writings
that are of interest only to my closer friends and family.
My day job title is "Director of Community Development" for
Gear6, which means that my main paid interest is memcached and
the memcached community. I read and write technical
articles, research nosql databases and other web-scale open
source software, and go to conferences to attend and to
speak.