Planet MySQL Planet MySQL: Meta Deutsch Español Français Italiano 日本語 Русский Português 中文
10 Newer Entries Showing entries 91 to 100 of 246 10 Older Entries

Displaying posts with tag: Programming (reset)

MongoDB Early Impressions
+0 Vote Up -0Vote Down

I’ve been doing some prototyping work to see how suitable MongoDB is for replacing a small (in number, not size) cluster of MySQL servers. The motivation for looking at MongoDB in this role is that we need a flexible and reliable document store that can handle sharding, a small but predictable write volume (1.5 – 2.0 million new documents daily), light indexing, and map/reduce operations for heavier batch queries. Queries to fetch individual documents aren’t that common–let’s say 100/sec in aggregate at peak times.

What I’ve done so far is to create a set of Perl libraries that abstract away the data I need to store and provide a “backend” interface to which I can plug in a number of modules for talking to different data stores (including some

  [Read more...]
Tech Messages | 2010-04-24
+0 Vote Up -0Vote Down

A special extended edition of Tech Messages for 2010-04-15 through 2010-04-24:

  [Read more...]
Fixing MySQL group commit (part 3)
+2 Vote Up -0Vote Down

This is the third and final article in a series about group commit in MySQL. The first article discussed the background: group commit in MySQL does not work when the binary log is enabled. The second article explained the part of the InnoDB code that is responsible for the problem.

So how do we fix group commit in MySQL? As we saw in the second article of this series, we can just eliminate the prepare_commit_mutex from InnoDB, extend the binary logging to do group commit by itself, and that would solve the problem.

However, we might be able to do even better. As explained in the first article, with binary logging

  [Read more...]
Fixing MySQL group commit (part 2)
+3 Vote Up -0Vote Down

This is the second in a series of three articles about ideas for implementing full support for group commit in MariaDB. The first article discussed the background: group commit in MySQL does not work when the binary log is enabled. See also the third article.

Internally, InnoDB (and hence XtraDB) do support group commit. The way this works is seen in the innobase_commit() function. The work in this function is split into two parts. First, a "fast" part, which registers the commit in memory:

    trx->flush_log_later = TRUE;
    innobase_commit_low(trx);
    trx->flush_log_later = FALSE;
Second, a "slow" part, which writes and fsync's the commit to disk to make it durable:
    trx_commit_complete_for_mysql(trx)

  [Read more...]
Fixing MySQL group commit (part 1)
+4 Vote Up -1Vote Down

This is the first in a series of three articles about ideas for implementing full support for group commit in MariaDB (for the other parts see the second and third articles). Group commit is an important optimisation for databases that helps mitigate the latency of physically writing data to permanent storage. Group commit can have a dramatic effect on performance, as the following graph shows:

The rising blue and yellow lines show transactions per second when group commit is working, showing greatly improved throughput as the parallelism (number of concurrently running transactions) increases. The flat red and green lines show transactions per second with no group

  [Read more...]
Debugging memory leaks in plugins with Valgrind
+2 Vote Up -0Vote Down

I had an interesting IRC discussion the other day with Monty Taylor about what turned out to be a limitation in Valgrind with respect to debugging memory leaks in dynamically loaded plugins.

Monty Taylor's original problem was with Drizzle, but as it turns out, it is common to all of the MySQL-derived code bases. When there is a memory leak from an allocation in a dynamically loaded plugin, Valgrind will detect the leak, but the part of the stack trace that is within the plugin shows up as an unhelpful three question marks "???":

==1287== 400 bytes in 4 blocks are definitely lost in loss record 5 of 8
==1287==    at 0x4C22FAB: malloc (vg_replace_malloc.c:207)
==1287==    by 0x126A2186: ???
==1287==    by 0x7C8E01: ha_initialize_handlerton(st_plugin_int*) (handler.cc:429)
==1287==    by 0x88ADD6:

  [Read more...]
Reviewed: Python Testing by Daniel Arbuckle
+0 Vote Up -0Vote Down

I’ve recently had the pleasure of reading “Python Testing: An easy and convenient approach to testing your python projects” from Packt Publishing. It’s been a quick read but a solid set of instructions on the different methods for the subject.

The book starts out very quickly with details about the various methods that are available, the means of automation for testing, and of course the environment you’d want to be in for working on the subjects that the book covers. It then, in the second chapter, moves into the guts of testing by describing the basics of doctest via syntax and some simple examples, and then moves on to a real world example via the AVL tree. It’s all very basic

  [Read more...]
Event based programming vs threading by Rob von Behren, Jeremy Condit and Eric Brewer
+0 Vote Up -0Vote Down

Saw this interesting paper about highly concurrent programming methods and figured the word should be spread! It’s not new material but it’s a good read. See the full article here: http://www.usenix.org/events/hotos03/tech/full_papers/vonbehren/vonbehren_html/

“Highly concurrent applications such as Internet servers and transaction processing databases present a number of challenges to application designers. First, handling large numbers of concurrent tasks requires the use of scalable data structures. Second, these systems typically operate near maximum capacity, which creates resource contention and high sensitivity to scheduling decisions; overload must be handled with care to avoid thrashing. Finally, race conditions and subtle corner cases are common, which makes

  [Read more...]
Four short links: 31 March 2010
+0 Vote Up -0Vote Down

  • ZeroMQ -- bold claim of "Fastest. Messaging. Ever." LGPL, C++ with bindings for many languages, past version 2 already. (via edd on Twitter)
  • Prediction Market News (David Pennock) -- HSX is going to be a real marketplace with real $. The real HSX will of course say goodbye to the virtual specialist and the opening weekend adjust, two facets of the game that make it fun to play, but that create significant amounts of (virtual) wealth out of thin air. The Cantor Gaming group is engaged in other interesting initiatives. They are taking over a sportsbook in Las Vegas and turning it into more of a derivatives exchange with live in-game betting, a step toward my dream of a geek-friendly
  •   [Read more...]
    Kontrollcomm – remote database and system command execution webapp
    +2 Vote Up -0Vote Down
    I’m pleased to announce the first release of Kontrollcomm – “The Server Command Automation Interface” is a web-based application that automates remote command execution on linux and unix based servers. There are three main areas of the application: Hosts, Templates, and Commands. The use is very simple: all of your hosts are setup in the [...]
    10 Newer Entries Showing entries 91 to 100 of 246 10 Older Entries

    Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

    Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.