OPEN SOURCE IS ABOUT BEING OPEN NOT JUST ABOUT SOURCE CODE.
MariaDB makes changes to the storage engine API without even
consulting the mailing list. In fact, some MariaDB replication
features don't work with TokuDB because a new storage engine API
call is required, and this call requires functionality that might
not exist in all engines, that is, the engine must be able to
convert a transaction id into a THD object. No API is provided by
the SE to make this translation. MariaDB must communicate changes
to the storage API to the public so that the public can ensure
that tools made to work with MariaDB continue to work with
MariaDB. It doesn't matter that TokuDB is made by a competitor.
In a foreign language article, Kaj recently said MariaDB is more
open than Oracle because it includes many storage engines. This
is a crappy argument. MariaDB is trying to say they are better
than Oracle because they profit more from including code they
didn't …
Open Source is a whole-of-process approach to development that can produce high-quality products better tailored to users’ real world needs. A key reason for this is the early feedback cycle built into that complete process.
Simply publishing something under an Open Source license (while not applying Open Source development processes) does not yield the same quality and other benefits. So, not all Open Source is the same.
Publishing source of a product “later” (for instance when the monetary benefit has diminished for the company) is meaningless. In this scenario, there is no “Open Source benefit” to users whatsoever, it’s simply a proprietary product. There is no opportunity for the client to make custom modifications or improvements, or ask a third party to work on such matters – neither is there any third party opportunity to verify and validate either code …
[Read more]The behavior of vm.swappiness was always a bit confusing for novice linux users, as setting vm.swappiness to 0 would not completely disable swapping in the system during a memory crunch. vm.swappiness would only affect the agressiveness of swapping.
Following upstream commit tried to give more control to parameter. This commit tried to avoid swapping completely when vm.swappiness is set to 0.
commit fe35004fbf9eaf67482b074a2e032abb9c89b1dd
Author: Satoru Moriya
Date: Tue May 29 15:06:47 2012 -0700
mm: avoid swapping out with swappiness==0
With above commit, setting vm.swappiness to “0” instructs the
kernel not to initiate swapping until the amount of free and
file-backed pages is less than the high water mark in a memory
zone. In other words, it tries to reclaim as much memory that can
be reclaimed, before swapping starts.
This greatly reduced the chances of swapping.
When this …
[Read more]This blog is a 2nd part of a multi-part series on areas of failover for MySQL. The first installment looked at design considerations, giving us a “thinking” perspective on what we might want to adopt. Later I will take a look at more of a business and operational way of thinking through these details. In… Read More »
This will be a multi-part series covering various areas of failover for MySQL. This first installment will primarily look at some design considerations, which you can then apply to your own environment in your own way. The concepts presented here are merely suggestions and not out-right “how-to”. Every company has specific technologies or skill-sets in… Read More »
Introduction
The early architecture of Uber consisted of a monolithic backend application written in Python that used Postgres for data persistence. Since that time, the architecture of Uber has changed significantly, to a model of microservices and new data platforms. …
The post Why Uber Engineering Switched from Postgres to MySQL appeared first on Uber Engineering Blog.
Uber Engineering
Uber’s mission is transportation as reliable as running water, everywhere, for everyone. Last time, we talked about the foundation that powers Uber Engineering. Now, we’ll explore the parts of the stack that face riders and drivers, starting …
The post The Uber Engineering Tech Stack, Part II: The Edge and Beyond appeared first on Uber Engineering Blog.
Overview
When working with Amazon AWS Aurora, there are some steps to consider when trying to get data out of an active Aurora master into a slave, potentially into a EC2 instance or offsite in another data centre. Creating an external mysql to Aurora gives the option to move out of Aurora, or to have the flexibility to move data around as desired. With AWS RDS instances this task is pretty simple because you can do the following :
- Create a read replica
- Stop the slave process
- Capture the positioning
- Dump the database
With Aurora it’s a little trickier, because a read replica in Aurora has no slave process. All of the replication is handled on the back end and cannot be controlled. However, setting up an external slave can be done.
Amazon AWS Documentation
In …
[Read more]When it comes to building database applications and solutions, developers, DBAs, engineers and architects have a lot of new and exciting tools and technologies to play with, especially with the Hadoop and NoSQL environments growing so rapidly.
While it’s easy to geek out about these cool and revolutionary new technologies, at some point in the development cycle you’ll need to stop to consider the real-world business implications of the application you’re proposing. After all, you’re bound to face some tough questions, like:
Why did you choose that particular database for our mission-critical application? Can your team provide 24/7 support for the app? Do you have a plan to train people on this new technology? Do we have the right hardware infrastructure to support the app’s deployment? How are you going to ensure there won’t be any bugs or security vulnerabilities?
If you don’t have a plan for …
[Read more]MySQL-Sandbox 3.1.11 introduces a new utility, different from anything I have put before in the MySQL Sandbox toolkit.
make_sandbox_from_url downloads a tiny MySQL tarball
from a repository and install it straight away.
As of today, the following packages are available
| Major release | versions |
package size (what you download) |
expanded size (storage used) |
original size (not included) |
|---|---|---|---|---|
| 5.0 | 5.0.96 | 20M | 44M | 371M |
| 5.1 | … |