Showing entries 36586 to 36595 of 45392
« 10 Newer Entries | 10 Older Entries »
Thoughts on hashes.... libmemcached...

Inside of libmemcachd (aka the library behind the memcache engine for MySQL) I have a big stack of hash algorithms you can pick to use. libmemcached splits hashing into two concepts.

Hash used for key distribution
Algorithm used for distribution

For the hashing there is a default method that I use. It is pretty generic in nature. There are two other primary methods are MD5 and Hsieh.

So what does the performance look like for each of these?

Default:
Testing generate_data                           14.183
Testing get_read                                     11.144
Testing mget_read                                        1.992
Testing mget_read_result …
[Read more]
MySQL Proxy: a chassis and a MySQL-server

At MySQL I'm writing several different command-line applications from the MEMo Agent to the MySQL Proxy. They all have a common set of requirement:

  • command-line options
  • config-files (mapping cmd-line options to config-files)
  • logfile handling (syslog, SIGHUP, ...)
  • a mainloop (SIGINT, CtrlHandler, ...)
  • daemonizing (daemonize, services, ...)
  • plugin handling

In the proxy svn you see all this a the chassis of the proxy.

At the side it has a MySQL-Server and a MySQL-Client (we usually call it the proxy). Currently this is implemented as libmysql-proxy which is then used by the proxy plugin to implement the proxy.

By splitting up the design into 3 different layers:

  • chassis
  • low-level protocol + protocol states
  • proxy implementation as plugin

we can

  1. use the …
[Read more]
Wishlist for partitioning

I love the way partitioning works in MySQL. I remember in the past how many projects I implemented using application logic to parallelize I/O. Partitioning makes this seamless now. But it's not without its share of problems and workarounds. So I compiled my own wishlist that hopefully might make it into a future version of MySQL.

1. Partition level table locking. Partitions should be treated like tables and locked individually rather than the who table and all of its partitions.
2. Ability to add partitions from existing tables. This is very ueful, especially when trying to perform bulk maintainance operations.
3. Ability to convert a partition to a table.
4. Be able to mix and match storage engines for partitions and subpartitions. How cool would it be to have an archive partition for older data reside using ARCHIVE tables while the remaining partitions are InnoDB or MyISAM.
5. More usuable datatypes for …

[Read more]
Buying the guide

Just to say I’ve bought the book as soon as it was available on lulu.com.

I was waiting for it from april.

Falcon serendipitous performance findings

While researching partitioning performance (expect an article about this topic soon) I come across the news that the Falcon team has released a Falcon Feature Preview with the latest implementation.
The test I was running was based on 9 server instances , using different combinations of MyISAM, InnoDB, and Archive, with and without partitions.
Since I was at it, I quickly added three instances of MySQL 6.0.4 with Falcon (MySQL Sandbox is really handy in these cases) and added Falcon to the test bench.
As I expected, partitioned Falcon is not particularly impressive, but there was a serendipitous result. In addition to large data warehouse oriented queries, the test fires also 180 OLTP queries, with warm indexes, i.e. after the indexes have been …

[Read more]
MySQL Proxy: a chassis and a MySQL-server

At MySQL I'm writing several different command-line applications from the MEMo Agent to the MySQL Proxy. They all have a common set of requirement:

  • command-line options
  • config-files (mapping cmd-line options to config-files)
  • logfile handling (syslog, SIGHUP, ...)
  • a mainloop (SIGINT, CtrlHandler, ...)
  • daemonizing (daemonize, services, ...)
  • plugin handling

In the proxy svn you see all this a the chassis of the proxy.

At the side it has a MySQL-Server and a MySQL-Client (we usually call it the proxy). Currently this is implemented as libmysql-proxy which is then used by the proxy plugin to implement the proxy.

By splitting up the design into 3 different layers:

  • chassis
  • low-level protocol + protocol states
  • proxy implementation as plugin

we can

  1. use the …
[Read more]
Simplified Business Rules Engine

So I was thinking about some of my ideas that I had already previously written in my blog and I was also doing research on some things. Considering that I only recently started database developing, there are some things that I have some slight understanding in. There are also things that I dont have any clue about. But I think that that plays to my advantage when coming up with new idea, since I am not forced into any mindset. Recently a lot of my thoughts and research clicked together and I had a really good idea that I'd like to share with you. I think its somewhat revolutionary and yet simple at the same time.


Simplified Business Rules Engine.

I'd like to start off by first getting your appetite's wet. I am going to say that this idea includes the following buzz phrases:
Business Rule Engine (duh), Expert System, Business Intelligence and Collective Intelligence.

Ok, now that I …

[Read more]
Innodb Locks, ActiveRecord and acts_as_ferret Problem

Last few days one of our customers (one of the largest Ruby on Rails sites on the Net) was struggling to solve some really strange problem - once upon a time they were getting an error from ActiveRecord on their site:

1
(ActiveRecord::StatementInvalid) "Mysql::Error: Lock wait timeout exceeded; try restarting transaction: UPDATE some_table.....

They have innodb_lock_wait_timeout set to 20 seconds. After a few hours of looking for strange transactions we were decided to create s script to dump SHOW INNODB STATUS and SHOW FULL PROCESSLIST commands output to a file every 10 seconds to catch one of those moments when this error occurred.

Today we’ve got next error and started digging in our logs…

After a couple of hours of looking in logs, parsing binary logs from MySQL …

[Read more]
A Zip Code Solution - ...WHERE LEFT(zip_code,3) vs. This Article

The Price is MySql with Jay PipesQuick! Pick a curtain! Do it now!Curtain #1:SELECT zip_code FROM table_name WHERE LEFT(zip_code,3) IN (123,456,789);What's under curtain #2 you ask?Well, I'm glad you asked! It is...ALTER TABLE table_name ADD COLUMN zip3 INTEGER UNSIGNED ZEROFILL NOT NULL, ADD INDEX idx_zip3 (zip3);What?? Another column and another index? My table already has 7,351 columns?

Progress on Maatkit bounty

My initial plans got waylaid! I didn't pull out the checksumming code first, because the code wasn't at all as I remembered it. Instead, I began writing code to handle the more abstract problem of accepting two sets of rows, finding the differences, and doing something with them. I'm ending up with a little more complicated system than I thought I would. However, it's also significantly simpler in some ways. Instead of just passing references to subroutines to use as callbacks, I'm object-ifying the entire synchronization concept...

Showing entries 36586 to 36595 of 45392
« 10 Newer Entries | 10 Older Entries »