I've been working in a fully distributed work environment for almost 8 years now (I joined MySQL AB in April, 2002). Therefore I've been reading Toni Schneider's blog post about the "5 reasons why your company should be distributed" with great interest – he raised several points that I fully agree with and which I covered in my talks about "Working for a virtual company - how we do it at MySQL" at last year's next09 conference (slides, video) and at …
[Read more]Updating the MPL. Funding for Lucid and eXo. StatusNet. 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.”
Updating the MPL
# ZDnet reported that the 10-year-old Mozilla Public
License will be updated by the end of 2010, while Mitchell Baker
explained the
process.
Funding for Lucid and eXo
# Lucid Imagination raised $10m in series B funding from Shasta
Ventures, Granite Ventures and Walden International.
# eXo Platform raised $6m from Auriga …
[Read more]This is the 182nd edition of Log Buffer, the weekly review of database blogs. Make sure to read the whole edition so you do not miss where to submit your SQL limerick!
This week started out with me posting about International Women’s Day, and has me personally attending Confoo (Montreal) which is an excellent conference I hope to return to next year. I learned a lot from confoo, especially the blending nosql and sql session I attended.
This week was also the Hotsos Symposium. …
[Read more]This week with a client I saw ext4 used for the first time on a production MySQL system which was running Ubuntu 9.10 (Karmic Koala). I observe today while installing 9.10 Server locally that ext4 is the default option. The ext4 filesystem is described as better performance, reliability and features while there is also information about improvements in journaling.
At OSCON 2009 I attended a presentation on Linux Filesystem Performance for Databases by Selena Deckelmann in which ext4 was included. While providing some improvements in sequential reading and writing, there were issue with random I/O which is the key for RDBMS products.
Is the RAID configuration (e.g. RAID 5, RAID 10), strip size, buffer caches, LVM …
[Read more]
Yesterday we were having a conversation on IRC about the need for
more useful information about the internals of the
database.
"SHOW STATUS" is just too primitive in its design to provide the
sort of detailed information you need to do operations. Yesterday
we got a bug request over the number of "open tables" found after
a particular query. The user had assumed the number was off, but
what they hadn't realized was that the number was accurate (in
this particular case, MySQL fudges a number on open tables
because it can't handle count its derived tables).
One of the patches coming into the tree right now fully exposes
the contents of the table cache and table definition cache to the
user. You can see who holds what locks on what tables, and you
can see the actual count on table access per table.
drizzle> select * from TABLE_DEFINITION_CACHE; …[Read more]
A boat tour of several temples in Bangkok, followed by a dinner with traditional Thai dancing.
First here are some videos from the day:
[Read more]Or…What the Heck is Wrong with CREATE TABLE IF NOT EXISTS ... SELECT?
So, earlier this week, I blogged about an SQL puzzle that had come up in my current work on Drizzle’s new transaction log.
I posed the question to readers what the “correct” result of the following would be:
CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (1,1),(1,2); CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)); BEGIN; INSERT INTO t2 VALUES (100,100); CREATE TEMPORARY TABLE IF NOT EXISTS t2 (PRIMARY KEY (a)) SELECT * FROM t1; # The above statement will correctly produce an ERROR 23000: Duplicate entry '1' for key 'PRIMARY' # What should the below result be? SELECT * FROM t2; COMMIT;
A number of readers responded, and, to be fair, most everyone was “correct” in their own way. Why? Well, because the way that MySQL deals with calls to CREATE TABLE ... …
[Read more]With the recent news by Brian about the Data Dictionary in Drizzle replacing the INFORMATION_SCHEMA, I was looking into the server status variables (aka INFORMATION_SCHEMA.GLOBAL_STATUS) and I came across an interesting discovery.
select * from data_dictionary.global_status; ... | Table_locks_immediate | 0 | | Table_locks_waited | 0 | | Threads_connected | 8134064 | | Uptime | 332 | | Uptime_since_flush_status | 332 | +----------------------------+----------------+ 51 rows in set (0 sec)
This only retrieved 51 rows, which is way less then previous. What I wanted was clearly missing, all the old com_ status variables. Looking at what the data_dictionary actually has available revealed a new table.
drizzle> select * from data_dictionary.global_statements; …[Read more]
Persistence Smoothie: Blending NoSQL and SQL – see user feedback and comments at http://joind.in/talk/view/1332.
Michael Bleigh from Intridea, high-end Ruby and Ruby on Rails consultants, build apps from start to finish, making it scalable. He’s written a lot of stuff, available at http://github.com/intridea. @mbleigh on twitter
NoSQL is a new way to think about persistence. Most NoSQL systems are not ACID compliant (Atomicity, Consistency, Isolation, Durability).
Generally, most NoSQL systems have:
- Denormalization
- Eventual Consistency
- Schema-Free
- Horizontal Scale
NoSQL tries to scale (more) simply, it is starting to go mainstream – NY …
[Read more]
We are excited to announce the availability of the 1.1.0
Alpha release of InfiniDB Community Edition. This is
our initial alpha release for 1.1 and is not recommended for
production work.
New functionality we’ve added with 1.1.0
includes:
Improved support for queries with multiple types of joins.
Improved create table performance and a much smaller footprint on
disk for the system catalog, newly created tables, and tables
that contaRead More...