It is striking how much harder it is to make money from open
source than to write it in the first place. Open source
development is a sophisticated and well-understood social
activity. However, the economic model is often laughably
primitive: "if you build it, they will come." That applies to the
question of turning your open source project into a real job.
More interestingly, it applies to the question of how to make
open source projects as valuable as possible to the largest
number of people. In this post I would like to propose an answer
to both questions.
To illustrate open source sophistication, just look how easy it
has become to start and manage projects. It is almost a
cookie-cutter procedure. You pick one of a number of well known
licenses, manage the code on SourceForge.net or Launchpad, communicate
with the project …
Every once in a while, I find myself needing to round a number up to the nearest even power of 10, or round a time interval to the nearest quarter of an hour, or something like that. This is actually quite simple, but for some reason I always find myself confused about how to do it. I have to reason it out all over again, instead of just remembering how to do it. Perhaps writing this blog post will help me remember next time.
The basic idea for rounding to whole multiples is to divide the number, losing precision. Then round, floor, or ceiling the resulting number, and multiply to get back to the original magnitude. For rounding to fractions, reverse the process: multiply, round and divide again.
This actually works for any programming language, not just SQL. But I find myself doing it in SQL most often.
Here’s an example of how to turn a year into a decade:
mysql> SELECT FLOOR(YEAR(NOW()) / 10) * 10 AS …
[Read more]
On Wednesday, August 12th there will be a webinar introducing new
features in MySQL Cluster 7.0. Presenting are Andrew Morgan and
Mat Keep (MySQL Cluster Product Management).
I'll be assisting the panel answering any questions you might
have.
Whether you're racing to introduce a new service, or trying to manage an avalanche of data in real time, your database has to be scalable, fast and highly available to meet ever-changing market conditions and stringent SLAs.
By attending this webinar, you will learn more about the next generation of MySQL Cluster, and how it enables you to deliver 99.999% database availability, with real time performance and linear scalability, while slashing TCO.
Boasting a range of breakthrough capabilities, MySQL Cluster 7.0 will enable you to stay ahead of your most demanding, mission-critical application requirements. Enhanced scalability delivers higher database performance with …
[Read more]I was reviewing what I had written over the last 2 years, and how people had reacted via comments and page views, even what keywords were most popular.
Here is the first draft (pending input from interested readers via adding a comment)
- More dbt2 benchmark articles.
- Amazon EC2 LVM snapshots vs EBS snapshots.
- Backup software for MySQL and specifically on EC2.
- Benchmarking Amazon EBS using iozone.
- Installing, testing and benchmarking the non-standard MySQL engines such as OurDelta and XtraDB and plugins.
- Using EC2 as a test bed for new versions of MySQL and Oracle and other dbs.
- New: Using Microsoft SQL …
If you were ever wondering what other people check out on this site, here are the most popular articles by pageviews for the last 12 months. Seems most people like the LVM snapshots article, articles about running multiple MySQL instances … Continue reading →
If you were ever wondering what other people check out on this site, here are the most popular articles by pageviews for the last 12 months. Seems most people like the LVM snapshots article, articles about running multiple MySQL instances and the various benchmark articles. mysql backups using lvm snapshots oracle 11g on ec2 using silent install mysql multi master master replication
I'm pleased to announce the release of Spider storage engine
version 0.17.(RC)
Development status is RC from this version.
http://spiderformysql.com/
The main changes in this version are following.
- Add table parameter "use_table_charset".
- Add server parameter "spider_use_table_charset" and
"spider_local_lock_table".
"use_table_charset" and "spider_use_table_charset"
are used for choosing the communication charset (UTF8 or table
charset) at connections from Spider to remote server. Basically,
you don't need changing this option but you can change this
option for performance improvement if the SQL has very longer
table and column name string than column data string.
"spider_local_lock_table" is used for suppressing
sending "lock table" statement to remote server for locking table
at local server only. This option …
Do you test your application systematically when you upgrade or reconfigure your database server? You should! Here’s a real (anonymized) story of what happens if you don’t.
When we upgraded to 5.0.62 (from 5.0.27 and 5.0.45), our code broke for queries like this:
SELECT SUM(amt) FROM daily_amt WHERE day =
FROM_UNIXTIME(1222889772);
The problem here was a wrong DATE/DATETIME comparison and other bug fixes in MySQL 5.0.62; it was stricter in enforcing the comparison.
This resulted in an outage and revenue loss to the company.
Daniel and I (mostly Daniel) continue to improve mk-upgrade to make it easy and inexpensive to find these kinds of scenarios before they bite you. Don’t get caught with your pants down — next time you make …
[Read more]Inspired by NILFS: A File System to Make SSDs Scream and some customers asked if they should try NILFS on their SSD disks I decided to run quick tests to see how it performs.
Installation on our Ubuntu 8.10 with SSD disk (Intel X25-E, 32GB) was pretty plain and I got partition with NILFS without problem. After that I run script for sysbench fileio:
PLAIN TEXT CODE:
- for size in 256M 16G; do
- for mode in seqwr seqrd rndrd rndwr rndrw; do
- ./sysbench --test=fileio --file-num=1 --file-total-size=$size prepare
- for threads in 1 4 8; do
- echo PARAMS $size $mode $threads> sysbench-size-$size-mode-$mode-threads-$threads …
Like many other languages, PL/SQL has its own "dot notation". If we assume that most people can intuit or easily look up things like the syntax for '''IF/THEN/ELSIF''', that means that first-timer users might quickly run into dots and want to understand their significance.The authoritative docs on the dots is in the Oracle Database 11g PL/SQL Language Reference, in particular Appendix B, How PL/