Showing entries 32806 to 32815 of 44049
« 10 Newer Entries | 10 Older Entries »
Talkin' with Charlie and Tom, the JRuby Guys

Last week, at the end of JavaOne day one, I was able to grab the JRuby dynamic duo for a podcast.  Tom Enebo and Charlie Nutter turned out to be really nice guys, must be their midwestern roots, and were a pleasure to talk to (I also learned a lot :). 

My interview with Tom and Charlie (14:19)  Listen (Mp3)   Listen (ogg)


Charlie Nutter and Tom Enebo -- the JRuby dyanmic duo (and wearing the shirts to prove it).

[Read more]
Trouble in paradise?

Maybe it’s a coincidence but this week has seen evidence of tension between commercial open source vendors and elements of the open source user community. Matt Asay stirred up something of a hornet’s nest with his post questioning how open source vendors can find ways of encouraging users to contribute either code of cash in return for free software.

The question itself might be innocuous but Matt’s use of the term “free-riders” prompted a couple of angry responses. Storm in a tea-cup stuff really.

Meanwhile, in a unrelated …

[Read more]
Memcached, but do you need it?

With all due respect to the technology and it's advocates (myself included), after a surge in articles describing the merits of using memcached I'm just pushing a thought breakpoint for developers to think whether they actually need it or not?

Recently, I ran into cases where the developers have decided to use memcached over MySQL style architecture after reading some/many good/nice articles about it without giving a damn to their requirements. I would like to list few things as a checklist for developers to decide on their architecture. There is still no precise answer but sometimes few cases can be just ruled out :).

  1. What is the total size of your data? It might be a possibility that you can keep the data in memory in each node, or MySQL can just keep the whole thing (data+indexes) in a buffer.
  2. How frequently your data is updated? Very frequent updates may lead to low cache hit ratio for memcached …
[Read more]
MySQL: Free Software but not Open Source

The title of MySQL’s website states that they are the world’s most popular open-source database. This is false; MySQL is not an open-source database. That assertion is a fact, not an opinion.

MySQL is Free Software, licensed under the GNU GPL. People frequently use the two phrases “Free Software” and “Open Source Software” as synonyms, but there are very large, very important differences.

The difference between Free and Open Source

Open Source is much more of a development methodology than a philosophical standpoint. The first thing on the Open Source Initiative’s website is this introduction:

Open source is a development method for software that harnesses the power of distributed peer review and transparency of …

[Read more]
Datagrid and arrays (again)

So I got bored and I've just added array support to the Datagrid class. You can see it in action by looking at example9.php. Instead of supplying the connection parameters and the SQL query to the static Create() method, you simply supply the array. The array should be two dimensional, like that returned by mysql_fetch_assoc(). Indexed first numerically, and then by "column name". Barring any problems, this will be "released" shortly.

Zenoss Deathmatch

I've been working for the last week on implementing Zenoss to replace Nagios and Cacti. Individually Nagios and Cacti are pretty good at what they do, but they don't integrate well.

Nagios is primarily an availability monitor, so it's good for notifying you when something goes down, or a disk is filling up, or the load average is too high. etc., but it's not so great for monitoring performance. Nagios 1.4 uses text configuration files. There is a templating system which can be helpful if you have a lot of identical systems.

Cacti, on the other hand, is pretty good at monitoring performance, as in how much bandwidth are you using, resource utilization, and so on with nice long-term graphs using RRDtool, but it's not so great for notifying if something is …

[Read more]
MySQL Log Rotation


Ok. So I just looked at two blog posts about MySQL log rotation. While not technically incorrect, I’d like to disagree with the final answer, mainly because recreating the wheel drives me crazy.

Rather than writing a custom script to do this and putting that script in cron, why not use logrotate?

We already ship fully functional log rotate scripts in the Debian MySQL packages. Here’s an example:

/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log {
        daily
        rotate 7
        missingok
        create 640 mysql adm
        compress
        sharedscripts
        postrotate
                test -x /usr/bin/mysqladmin || exit 0

                # If this fails, check debian.conf! …
[Read more]
Datagrid and arrays (again)

So I got bored and I've just added array support to the Datagrid class. You can see it in action by looking at example9.php. Instead of supplying the connection parameters and the SQL query to the static Create() method, you simply supply the array. The array should be two dimensional, like that returned by mysql_fetch_assoc(). Indexed first numerically, and then by "column name". Barring any problems, this will be "released" shortly.

Plaxo acquired by Comcast

I was about to bitch about Plaxo being bought by Comcast (and therefor creating an opportunity in the market)... but twitter was down!

I feel like I am slumming by blogging this, when for me this would be better off as twitter blather.

Twitter is giving me deja-vu memories of Friendster.

How did Friendster solve their problems?

They latched on their graph engine to the internals of MySQL, and pushed joins into the database.

Anybody up for writing a quick queue engine? I bet you can figure out which website really needs one about now...

Concurrent inserts on MyISAM and the binary log

Recently I had an interesting surprise with concurrent inserts into a MyISAM table. The inserts were not happening concurrently with SELECT statements; they were blocking and the process list was filling up with queries in Locked status.

My first thought was that the customer had deleted from the table, which leaves "holes" in the middle of it and prevents concurrent inserts. (You can configure the server to permit concurrent inserts even when there are holes, but it's disabled by default.) However, that turned out not to be the cause; the table was only inserted into (and selected from). Instead, the blocked statements were because of INSERT... SELECT statements that were running against the table, selecting data from it and inserting into another table.

Let's look at what happens here: suppose you have two tables tbl1 and tbl2 and concurrent inserts into tbl2 are running fine. If you now run the following query,

[Read more]
Showing entries 32806 to 32815 of 44049
« 10 Newer Entries | 10 Older Entries »