<?xml version="1.0" encoding="UTF-8"?>
 <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://pinboard.in">
    <title>Pinboard (jm)</title>
    <link>https://pinboard.in/u:jm/public/</link>
    <description>recent bookmarks from jm</description>
    <items>
      <rdf:Seq>	<rdf:li rdf:resource="https://pocketbase.io/"/>
	<rdf:li rdf:resource="https://github.blog/2021-09-27-partitioning-githubs-relational-databases-scale/"/>
	<rdf:li rdf:resource="https://github.com/nocodb/nocodb"/>
	<rdf:li rdf:resource="https://rbranson.medium.com/10-things-i-hate-about-postgresql-20dbab8c2791"/>
	<rdf:li rdf:resource="http://harelba.github.io/q/"/>
	<rdf:li rdf:resource="https://github.com/simonw/datasette"/>
	<rdf:li rdf:resource="https://github.com/ankane/strong_migrations"/>
	<rdf:li rdf:resource="https://blog.cryptographyengineering.com/2019/02/11/attack-of-the-week-searchable-encryption-and-the-ever-expanding-leakage-function/"/>
	<rdf:li rdf:resource="https://dev.to/jaredsilver/how-do-you-populate-your-development-databases-e8e"/>
	<rdf:li rdf:resource="https://airtable.com/"/>
	<rdf:li rdf:resource="https://blog.timescale.com/when-boring-is-awesome-building-a-scalable-time-series-database-on-postgresql-2900ea453ee2"/>
	<rdf:li rdf:resource="https://eng.uber.com/mysql-migration/"/>
	<rdf:li rdf:resource="https://clickhouse.yandex/"/>
	<rdf:li rdf:resource="http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins"/>
	<rdf:li rdf:resource="https://blog.engineyard.com/2011/5-subtle-ways-youre-using-mysql-as-a-queue-and-why-itll-bite-you"/>
	<rdf:li rdf:resource="http://www.slideshare.net/mikebrittain/mbrittain-continuous-deploymentalm3public"/>
	<rdf:li rdf:resource="https://github.com/soundcloud/lhm"/>
	<rdf:li rdf:resource="https://github.com/comeara/pillar"/>
	<rdf:li rdf:resource="http://www.brunton-spall.co.uk/post/2014/05/06/database-migrations-done-right/"/>
	<rdf:li rdf:resource="https://blog.twitter.com/2014/manhattan-our-real-time-multi-tenant-distributed-database-for-twitter-scale"/>
	<rdf:li rdf:resource="https://groups.google.com/forum/#!msg/redis-db/Oazt2k7Lzz4/-7kDmWJHXLMJ"/>
	<rdf:li rdf:resource="http://www.bailis.org/blog/non-blocking-transactional-atomicity/"/>
	<rdf:li rdf:resource="http://henryr.github.io/cap-faq/"/>
	<rdf:li rdf:resource="http://www.infoq.com/presentations/Project-Voldemort-at-Gilt-Groupe"/>
	<rdf:li rdf:resource="http://research.microsoft.com/apps/pubs/default.aspx?id=178758"/>
	<rdf:li rdf:resource="https://www.facebook.com/notes/mysql-at-facebook/online-schema-change-for-mysql/430801045932"/>
	<rdf:li rdf:resource="http://codeascraft.etsy.com/2012/04/20/two-sides-for-salvation/"/>
	<rdf:li rdf:resource="http://research.google.com/archive/spanner.html"/>
	<rdf:li rdf:resource="http://highscalability.com/blog/2011/12/19/how-twitter-stores-250-million-tweets-a-day-using-mysql.html"/>
	<rdf:li rdf:resource="http://news.ycombinator.com/item?id=2434187"/>
	<rdf:li rdf:resource="http://ewh.ieee.org/r6/scv/computer//nfic/2009/IBM-Jun-Rao.pdf"/>
	<rdf:li rdf:resource="http://engineering.twitter.com/2010/04/introducing-gizzard-framework-for.html"/>
	<rdf:li rdf:resource="http://technology.timesonline.co.uk/tol/news/tech_and_web/the_web/article6718560.ece"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="https://pocketbase.io/">
    <title>PocketBase</title>
    <dc:date>2025-11-28T13:01:42+00:00</dc:date>
    <link>https://pocketbase.io/</link>
    <dc:creator>jm</dc:creator><description><![CDATA["Open Source backend in 1 file".  This is nice; it's a little OSS sqlite database, authentication, file storage and admin dashboard for web apps.]]></description>
<dc:subject>golang opensource database pocketbase web-apps sqlite</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:7e63b498d320/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:golang"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:opensource"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pocketbase"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web-apps"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sqlite"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.blog/2021-09-27-partitioning-githubs-relational-databases-scale/">
    <title>Partitioning GitHub’s relational databases to handle scale</title>
    <dc:date>2021-09-29T09:09:08+00:00</dc:date>
    <link>https://github.blog/2021-09-27-partitioning-githubs-relational-databases-scale/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[wow this is complex. Vitess playing a key part]]></description>
<dc:subject>github mysql architecture database</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:8c92e3000937/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:github"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/nocodb/nocodb">
    <title>nocodb</title>
    <dc:date>2021-05-28T08:57:02+00:00</dc:date>
    <link>https://github.com/nocodb/nocodb</link>
    <dc:creator>jm</dc:creator><description><![CDATA['The Open Source Airtable alternative' -- looks nifty as a quick and easy way to hook up an SQL database to a web-based spreadsheet view]]></description>
<dc:subject>airtable database sql mysql nocodb spreadsheets ui web</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:61352fd4e436/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:airtable"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nocodb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:spreadsheets"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ui"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://rbranson.medium.com/10-things-i-hate-about-postgresql-20dbab8c2791">
    <title>10 Things I Hate About PostgreSQL | by Rick Branson</title>
    <dc:date>2021-04-06T13:39:59+00:00</dc:date>
    <link>https://rbranson.medium.com/10-things-i-hate-about-postgresql-20dbab8c2791</link>
    <dc:creator>jm</dc:creator><description><![CDATA[oh god this brings back painful memories --

<blockquote>On a particularly large deployment, I eventually had to layer in a second pgbouncer tier. One tier ran on the application servers and another tier on the database servers. Altogether it aggregated connections for around 1 million client processes. Tuning it was 40% dark art, 40% brute force, and 10% pure luck.</blockquote>

Amazing to see that these issues are still something that Postgres users have to worry about :)]]></description>
<dc:subject>database postgresql coding postgres pgbouncer ops rick-branson</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:325436d797ce/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postgresql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:coding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postgres"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pgbouncer"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rick-branson"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://harelba.github.io/q/">
    <title>q - Text as Data</title>
    <dc:date>2020-10-21T09:56:28+00:00</dc:date>
    <link>http://harelba.github.io/q/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['a command line tool that allows direct execution of SQL-like queries on CSVs/TSVs (and any other tabular text files). q treats ordinary files as database tables, and supports all SQL constructs, such as WHERE, GROUP BY, JOINs etc. It supports automatic column name and column type detection, and provides full support for multiple encodings.' Awesome!]]></description>
<dc:subject>csv database sql cli data tools unix tsv</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:bbf7da485984/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:csv"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cli"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:unix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tsv"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/simonw/datasette">
    <title>simonw/datasette: A tool for exploring and publishing data</title>
    <dc:date>2019-12-16T11:07:54+00:00</dc:date>
    <link>https://github.com/simonw/datasette</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Datasette is a tool for exploring and publishing data. It helps people take data of any shape or size and publish that as an interactive, explorable website and accompanying API. Datasette is aimed at data journalists, museum curators, archivists, local governments and anyone else who has data that they wish to share with the world.</blockquote>

]]></description>
<dc:subject>database api json python sqlite data exploring csv tsv</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:d1af06975552/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:api"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:json"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:python"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sqlite"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:exploring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:csv"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tsv"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/ankane/strong_migrations">
    <title>ankane/strong_migrations: Catch unsafe Rails migrations at dev time</title>
    <dc:date>2019-04-08T09:39:48+00:00</dc:date>
    <link>https://github.com/ankane/strong_migrations</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>
Strong Migrations detects potentially dangerous operations in [Rails database] migrations, prevents them from running by default, and provides instructions on safer ways to do what you want.</blockquote>

]]></description>
<dc:subject>database migrations rails releases ops databases mysql ruby gems</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:11703c588753/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:migrations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rails"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:releases"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:databases"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gems"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.cryptographyengineering.com/2019/02/11/attack-of-the-week-searchable-encryption-and-the-ever-expanding-leakage-function/">
    <title>Attack of the week: searchable encryption and the ever-expanding leakage function</title>
    <dc:date>2019-02-13T14:20:18+00:00</dc:date>
    <link>https://blog.cryptographyengineering.com/2019/02/11/attack-of-the-week-searchable-encryption-and-the-ever-expanding-leakage-function/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>In all seriousness: database encryption has been a controversial subject in our field. I wish I could say that there’s been an actual debate, but it’s more that different researchers have fallen into different camps, and nobody has really had the data to make their position in a compelling way. There have actually been some very personal arguments made about it.  The schools of thought are as follows:

The first holds that any kind of database encryption is better than storing records in plaintext and we should stop demanding things be perfect, when the alternative is a world of constant data breaches and sadness.

To me this is a supportable position, given that the current attack model for plaintext databases is something like “copy the database files, or just run a local SELECT * query”, and the threat model for an encrypted database is “gain persistence on the server and run sophisticated statistical attacks.” Most attackers are pretty lazy, so even a weak system is probably better than nothing.

The countervailing school of thought has two points: sometimes the good is much worse than the perfect, particularly if it gives application developers an outsized degree of confidence of the security that their encryption system is going to provide them.

If even the best encryption protocol is only throwing a tiny roadblock in the attacker’s way, why risk this at all? Just let the database community come up with some kind of ROT13 encryption that everyone knows to be crap and stop throwing good research time into a problem that has no good solution.

I don’t really know who is right in this debate. I’m just glad to see we’re getting closer to having it.</blockquote>

(via Jerry Connolly)
]]></description>
<dc:subject>cryptography attacks encryption database crypto security storage ppi gdpr search databases via:ecksor</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:1935af4cab15/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cryptography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:attacks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:encryption"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:crypto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ppi"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gdpr"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:search"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:databases"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:ecksor"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://dev.to/jaredsilver/how-do-you-populate-your-development-databases-e8e">
    <title>How do you populate your development databases?</title>
    <dc:date>2018-11-08T14:56:53+00:00</dc:date>
    <link>https://dev.to/jaredsilver/how-do-you-populate-your-development-databases-e8e</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Lots of comments pro/anti copying from production]]></description>
<dc:subject>database data testing system-tests dev</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:286cf87eafef/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:system-tests"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dev"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://airtable.com/">
    <title>Airtable</title>
    <dc:date>2017-09-27T13:35:21+00:00</dc:date>
    <link>https://airtable.com/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[looks like a nice web-based database, FileMaker Pro-style]]></description>
<dc:subject>filemaker collaboration database tools web sharing teams</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:02166edb17fd/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:filemaker"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:collaboration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sharing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:teams"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.timescale.com/when-boring-is-awesome-building-a-scalable-time-series-database-on-postgresql-2900ea453ee2">
    <title>When Boring is Awesome: Building a scalable time-series database on PostgreSQL</title>
    <dc:date>2017-04-05T15:00:38+00:00</dc:date>
    <link>https://blog.timescale.com/when-boring-is-awesome-building-a-scalable-time-series-database-on-postgresql-2900ea453ee2</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Nice. we built something along these lines atop MySQL before -- partitioning by timestamp is the key.  (via Nelson)]]></description>
<dc:subject>database postgresql postgres timeseries tsd storage state via:nelson</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:9956c3efa969/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postgresql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postgres"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:timeseries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:tsd"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:state"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:nelson"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://eng.uber.com/mysql-migration/">
    <title>Why Uber Engineering Switched from Postgres to MySQL</title>
    <dc:date>2016-07-27T09:47:20+00:00</dc:date>
    <link>https://eng.uber.com/mysql-migration/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Uber bringing the smackdown for the HN postgres fanclub, with some juicy technical details of issues that caused them pain.  FWIW, I was bitten by crappy postgres behaviour in the past (specifically around vacuuming and pgbouncer), so I've long been a MySQL fan ;)]]></description>
<dc:subject>database mysql postgres postgresql uber architecture storage sql</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:bb13fe501b54/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postgres"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postgresql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:uber"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://clickhouse.yandex/">
    <title>ClickHouse — open-source distributed column-oriented DBMS</title>
    <dc:date>2016-06-15T16:01:27+00:00</dc:date>
    <link>https://clickhouse.yandex/</link>
    <dc:creator>jm</dc:creator><description><![CDATA['ClickHouse manages extremely large volumes of data in a stable and sustainable manner. It currently powers Yandex.Metrica, world’s second largest web analytics platform, with over 13 trillion database records and over 20 billion events a day, generating customized reports on-the-fly, directly from non-aggregated data. This system was successfully implemented at CERN’s LHCb experiment to store and process metadata on 10bn events with over 1000 attributes per event registered in 2011.'

Yandex-tastic, but still looks really interesting]]></description>
<dc:subject>yandex analytics database storage sql clickhouse</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5defba0ab614/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:yandex"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:analytics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:clickhouse"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins">
    <title>Visual Representation of SQL Joins</title>
    <dc:date>2016-03-25T15:48:55+00:00</dc:date>
    <link>http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins</link>
    <dc:creator>jm</dc:creator><description><![CDATA[useful bookmark to have (via Nelson)
]]></description>
<dc:subject>sql joins mysql reference database</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:da83d142d2e3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:joins"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.engineyard.com/2011/5-subtle-ways-youre-using-mysql-as-a-queue-and-why-itll-bite-you">
    <title>5 subtle ways you're using MySQL as a queue, and why it'll bite you</title>
    <dc:date>2016-01-06T12:42:41+00:00</dc:date>
    <link>https://blog.engineyard.com/2011/5-subtle-ways-youre-using-mysql-as-a-queue-and-why-itll-bite-you</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Excellent post from Percona. I particularly like that they don't just say "don't use MySQL" -- they give good advice on how it can be made work: 1) avoid polling; 2) avoid locking; and 3) avoid storing your queue in the same table as other data.]]></description>
<dc:subject>database mysql queueing queue messaging percona rds locking sql architecture</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5081114f1b88/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:queueing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:queue"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:messaging"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:percona"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rds"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:locking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.slideshare.net/mikebrittain/mbrittain-continuous-deploymentalm3public">
    <title>'Continuous Deployment: The Dirty Details'</title>
    <dc:date>2015-04-22T10:08:00+00:00</dc:date>
    <link>http://www.slideshare.net/mikebrittain/mbrittain-continuous-deploymentalm3public</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Good slide deck from Etsy's Mike Brittain regarding their CD setup.  Some interesting little-known details:

Slide 41: database schema changes are not CD'd -- they go out on "Schema change Thursdays".

Slide 44: only the webapp is CD'd -- PHP, Apache, memcache components (Etsy.com, support and back-office tools, developer API, gearman async worker queues).  The external "services" are not -- databases, Solr/JVM search (rolling restarts), photo storage (filters, proxy cache, S3), payments (PCI-DSS, controlled access).

They avoid schema changes and breaking changes using an approach they call "non-breaking expansions" -- expose new version in a service interface; support multiple versions in the consumer.  Example from slides 50-63, based around a database schema migration.

Slide 66: "dev flags" (rollout oriented) are promoted to "feature flags" (long lived degradation control).

Slide 71: some architectural philosophies: deploying is cheap; releasing is cheap; gathering data should be cheap too; treat first iterations as experiments.

Slide 102: "Canary pools".  They have multiple pools of users for testing in production -- the staff pool, users who have opted in to see prototypes/beta stuff, 0-100% gradual phased rollout.

]]></description>
<dc:subject>cd deploy etsy slides migrations database schema ops ci version-control feature-flags</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:7b09e64e7d8f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cd"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:deploy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:etsy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:slides"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:migrations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:schema"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ci"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:version-control"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:feature-flags"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/soundcloud/lhm">
    <title>soundcloud/lhm</title>
    <dc:date>2015-03-09T23:08:39+00:00</dc:date>
    <link>https://github.com/soundcloud/lhm</link>
    <dc:creator>jm</dc:creator><description><![CDATA[The Large Hadron Migrator is a tool to perform live database migrations in a Rails app without locking.

<blockquote>
The basic idea is to perform the migration online while the system is live, without locking the table. In contrast to OAK and the facebook tool, we only use a copy table and triggers.  The Large Hadron is a test driven Ruby solution which can easily be dropped into an ActiveRecord or DataMapper migration. It presumes a single auto incremented numerical primary key called id as per the Rails convention. Unlike the twitter solution, it does not require the presence of an indexed updated_at column.</blockquote>

]]></description>
<dc:subject>migrations database sql ops mysql rails ruby lhm soundcloud activerecord</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:7319dc67d62e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:migrations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:rails"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lhm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:soundcloud"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:activerecord"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/comeara/pillar">
    <title>Pillar</title>
    <dc:date>2014-06-16T12:56:53+00:00</dc:date>
    <link>https://github.com/comeara/pillar</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Manages migrations for your Cassandra data stores. Pillar grew from a desire to automatically manage Cassandra schema as code. Managing schema as code enables automated build and deployment, a foundational practice for an organization striving to achieve Continuous Delivery.

Pillar is to Cassandra what Rails ActiveRecord migrations or Play Evolutions are to relational databases with one key difference: Pillar is completely independent from any application development framework.</blockquote>

]]></description>
<dc:subject>migrations database ops pillar cassandra activerecord scala continuous-delivery automation build</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:acc70894611d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:migrations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pillar"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cassandra"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:activerecord"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:continuous-delivery"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:automation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:build"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.brunton-spall.co.uk/post/2014/05/06/database-migrations-done-right/">
    <title>Database Migrations Done Right</title>
    <dc:date>2014-05-08T16:53:32+00:00</dc:date>
    <link>http://www.brunton-spall.co.uk/post/2014/05/06/database-migrations-done-right/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>The rule is simple. You should never tie database migrations to application deploys or vice versa. By minimising dependencies you enable faster, easier and cleaner deployments.</blockquote>

A solid description of why this is a good idea, from an ex-Guardian dev.]]></description>
<dc:subject>migrations database sql mysql postgres deployment ops dependencies loose-coupling</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:2e8db5bfa149/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:migrations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:postgres"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:deployment"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:dependencies"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:loose-coupling"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://blog.twitter.com/2014/manhattan-our-real-time-multi-tenant-distributed-database-for-twitter-scale">
    <title>Manhattan, our real-time, multi-tenant distributed database for Twitter scale | Twitter Blogs</title>
    <dc:date>2014-04-03T12:59:08+00:00</dc:date>
    <link>https://blog.twitter.com/2014/manhattan-our-real-time-multi-tenant-distributed-database-for-twitter-scale</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Impressive, but a fierce whiff of "NIH" off of this]]></description>
<dc:subject>manhattan consistency database twitter eventual-consistency nosql voldemort cassandra riak time-series</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:5ce9c084548e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:manhattan"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:consistency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:twitter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:eventual-consistency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nosql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:voldemort"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cassandra"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:riak"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:time-series"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://groups.google.com/forum/#!msg/redis-db/Oazt2k7Lzz4/-7kDmWJHXLMJ">
    <title>Kelly &quot;kellabyte&quot; Sommers on Redis' &quot;relaxed CP&quot; approach to the CAP theorem</title>
    <dc:date>2013-12-07T21:18:08+00:00</dc:date>
    <link>https://groups.google.com/forum/#!msg/redis-db/Oazt2k7Lzz4/-7kDmWJHXLMJ</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>
Similar to ACID properties, if you partially provide properties it means the user has to _still_ consider in their application that the property doesn't exist, because sometimes it doesn't. In you're fsync example, if fsync is relaxed and there are no replicas, you cannot consider the database durable, just like you can't consider Redis a CP system. It can't be counted on for guarantees to be delivered. This is why I say these systems are hard for users to reason about. Systems that partially offer guarantees require in-depth knowledge of the nuances to properly use the tool. Systems that explicitly make the trade-offs in the designs are easier to reason about because it is more obvious and _predictable_.</blockquote>

]]></description>
<dc:subject>kellabyte redis cp ap cap-theorem consistency outages reliability ops database storage distcomp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:07f669c99101/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:kellabyte"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:redis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cap-theorem"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:consistency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:outages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:reliability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.bailis.org/blog/non-blocking-transactional-atomicity/">
    <title>Non-blocking transactional atomicity</title>
    <dc:date>2013-10-07T21:01:01+00:00</dc:date>
    <link>http://www.bailis.org/blog/non-blocking-transactional-atomicity/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[interesting new distributed atomic transaction algorithm from Peter Bailis]]></description>
<dc:subject>algorithms database distributed scalability storage peter-bailis distcomp</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:b97a35baf620/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scalability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:peter-bailis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://henryr.github.io/cap-faq/">
    <title>The CAP FAQ by henryr</title>
    <dc:date>2013-06-09T21:42:47+00:00</dc:date>
    <link>http://henryr.github.io/cap-faq/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>No subject appears to be more controversial to distributed systems engineers than the oft-quoted, oft-misunderstood CAP theorem. The purpose of this FAQ is to explain what is known about CAP, so as to help those new to the theorem get up to speed quickly, and to settle some common misconceptions or points of disagreement.</blockquote>

]]></description>
<dc:subject>database distributed nosql cap consistency cap-theorem faqs</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:598f6bda75fe/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nosql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:consistency"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cap-theorem"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:faqs"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.infoq.com/presentations/Project-Voldemort-at-Gilt-Groupe">
    <title>Project Voldemort at Gilt Groupe: When Failure Isn't an Option [slides]</title>
    <dc:date>2013-04-12T16:56:57+00:00</dc:date>
    <link>http://www.infoq.com/presentations/Project-Voldemort-at-Gilt-Groupe</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>Geir Magnusson explains how Gilt Groupe is using Project Voldemort to scale out their e-commerce transactional system. The initial SQL solution had to be replaced because it could not handle the transactional spikes the site is experiencing daily due to its particular way of selling their inventory: each day at noon. Magnusson explains why they chose Voldemort and talks about the architecture. </blockquote>
via Filippo
]]></description>
<dc:subject>via:filippo database architecture nosql data voldemort gilt-groupe ops storage presentations</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:44f4ba430e85/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:filippo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nosql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:voldemort"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gilt-groupe"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:presentations"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://research.microsoft.com/apps/pubs/default.aspx?id=178758">
    <title>The Bw-Tree: A B-tree for New Hardware - Microsoft Research</title>
    <dc:date>2013-04-10T17:11:17+00:00</dc:date>
    <link>http://research.microsoft.com/apps/pubs/default.aspx?id=178758</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>The emergence of new hardware and platforms has led to reconsideration of how data management systems are designed. However, certain basic functions such as key indexed access to records remain essential. While we exploit the common architectural layering of prior systems, we make radically new design decisions about each layer. Our new form of B tree, called the Bw-tree achieves its very high performance via a latch-free approach that effectively exploits the processor caches of modern multi-core chips. Our storage manager uses a unique form of log structuring that blurs the distinction between a page and a record store and works well with flash storage. This paper describes the architecture and algorithms for the Bw-tree, focusing on the main memory aspects. The paper includes results of our experiments that demonstrate that this fresh approach produces outstanding performance.</blockquote>

]]></description>
<dc:subject>bw-trees database paper toread research algorithms microsoft sql sql-server b-trees data-structures storage cache-friendly mechanical-sympathy</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:6ffba3a01727/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:bw-trees"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:paper"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:toread"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:research"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:microsoft"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql-server"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:b-trees"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data-structures"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cache-friendly"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mechanical-sympathy"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.facebook.com/notes/mysql-at-facebook/online-schema-change-for-mysql/430801045932">
    <title>Online Schema Change for MySQL</title>
    <dc:date>2013-03-06T09:44:53+00:00</dc:date>
    <link>https://www.facebook.com/notes/mysql-at-facebook/online-schema-change-for-mysql/430801045932</link>
    <dc:creator>jm</dc:creator><description><![CDATA[A tool written by Facebook to ease the pain of online MySQL schema-change migrations.

<blockquote>Some ALTER TABLE statements take too long form the perspective of some MySQL users. The fast index create feature for the InnoDB plugin in MySQL 5.1 makes this less of an issue but this can still take minutes to hours for a large table and for some MySQL deployments that is too long.
 
A workaround is to perform the change on a slave first and then promote the slave to be the new master. But this requires a slave located near the master. MySQL 5.0 added support for triggers and some replication systems have been built using triggers to capture row changes. Why not use triggers for this? The openarkkit toolkit did just that with oak-online-alter-table. We have published our version of an online schema change utility (OnlineSchemaChange.php aka OSC).</blockquote>

]]></description>
<dc:subject>facebook mysql sql schema database migrations ops alter-table</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:f2bd9f37b00f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:facebook"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:schema"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:migrations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ops"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:alter-table"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://codeascraft.etsy.com/2012/04/20/two-sides-for-salvation/">
    <title>Two Sides For Salvation « Code as Craft</title>
    <dc:date>2012-12-12T13:28:36+00:00</dc:date>
    <link>http://codeascraft.etsy.com/2012/04/20/two-sides-for-salvation/</link>
    <dc:creator>jm</dc:creator><description><![CDATA[Etsy's MySQL master-master pair configuration, and how it allows no-downtime schema changes]]></description>
<dc:subject>database etsy mysql replication schema availability downtime</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:3662d0721dbe/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:etsy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:replication"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:schema"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:availability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:downtime"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://research.google.com/archive/spanner.html">
    <title>Spanner: Google's Globally-Distributed Database [PDF]</title>
    <dc:date>2012-09-15T21:32:32+00:00</dc:date>
    <link>http://research.google.com/archive/spanner.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[<blockquote>
Abstract: Spanner is Google's scalable, multi-version, globally-distributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: non-blocking reads in the past, lock-free read-only transactions, and atomic schema changes, across all of Spanner.

To appear in:
OSDI'12: Tenth Symposium on Operating System Design and Implementation, Hollywood, CA, October, 2012.</blockquote>

]]></description>
<dc:subject>database distributed google papers toread pdf scalability distcomp transactions cap consistency</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:7dec089086fc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distributed"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:google"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:papers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:toread"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pdf"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scalability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:distcomp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:transactions"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:consistency"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://highscalability.com/blog/2011/12/19/how-twitter-stores-250-million-tweets-a-day-using-mysql.html">
    <title>High Scalability - How Twitter Stores 250 Million Tweets a Day Using MySQL</title>
    <dc:date>2011-12-19T21:49:50+00:00</dc:date>
    <link>http://highscalability.com/blog/2011/12/19/how-twitter-stores-250-million-tweets-a-day-using-mysql.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[MySQL as a storage backend -- basically an InnoDB store]]></description>
<dc:subject>mysql twitter scalability gizzard innodb performance database</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jm/b:bf5a9b9e5b85/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mysql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:twitter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scalability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gizzard"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:innodb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://news.ycombinator.com/item?id=2434187">
    <title>Hacker News | Copy-on-write B-tree finally beaten</title>
    <dc:date>2011-04-13T21:45:40+00:00</dc:date>
    <link>http://news.ycombinator.com/item?id=2434187</link>
    <dc:creator>jm</dc:creator><description><![CDATA[interesting discussion ]]></description>
<dc:subject>algorithms database data-structures b-trees hacker-news cassandra</dc:subject>
<dc:identifier>https://pinboard.in/u:jm/b:5576a3613ad1/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:algorithms"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data-structures"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:b-trees"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hacker-news"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cassandra"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://ewh.ieee.org/r6/scv/computer//nfic/2009/IBM-Jun-Rao.pdf">
    <title>BlueRunner: Email in the Cloud with Cassandra [PDF]</title>
    <dc:date>2010-04-15T11:14:59+00:00</dc:date>
    <link>http://ewh.ieee.org/r6/scv/computer//nfic/2009/IBM-Jun-Rao.pdf</link>
    <dc:creator>jm</dc:creator><description><![CDATA[interesting prez from some IBM researchers on using Cassandra as a mail store, via Jeremy]]></description>
<dc:subject>via:jzawodny mail cassandra database data ibm nosql performance presentation pdf</dc:subject>
<dc:identifier>https://pinboard.in/u:jm/b:6e9057ce7983/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:via:jzawodny"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:mail"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:cassandra"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:ibm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nosql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:presentation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:pdf"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://engineering.twitter.com/2010/04/introducing-gizzard-framework-for.html">
    <title>Gizzard, a framework for creating distributed datastores</title>
    <dc:date>2010-04-08T11:18:28+00:00</dc:date>
    <link>http://engineering.twitter.com/2010/04/introducing-gizzard-framework-for.html</link>
    <dc:creator>jm</dc:creator><description><![CDATA[from Twitter.  looks interesting]]></description>
<dc:subject>twitter gizzard database nosql storage sharding scalability scala replication</dc:subject>
<dc:identifier>https://pinboard.in/u:jm/b:d31219a6d2c7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:twitter"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:gizzard"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:nosql"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:storage"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:sharding"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scalability"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:scala"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:replication"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://technology.timesonline.co.uk/tol/news/tech_and_web/the_web/article6718560.ece">
    <title>UK company selling &quot;have you been phished&quot; check using stolen data</title>
    <dc:date>2009-07-22T08:56:42+00:00</dc:date>
    <link>http://technology.timesonline.co.uk/tol/news/tech_and_web/the_web/article6718560.ece</link>
    <dc:creator>jm</dc:creator><description><![CDATA[according to this, a retired cop has set up a company called Lucid Intelligence with 'the records of four million Britons, and 40 million people worldwide, mostly Americans', and plans to 'charge members of the public for access to his database to check whether their data security has been breached.'  How is this legal under Data Protection law? wtf]]></description>
<dc:subject>privacy uk law hacking phishing fraud crime police database identity-theft lucid-intelligence data-protection security colin-holder</dc:subject>
<dc:identifier>https://pinboard.in/u:jm/b:882475f1ee04/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:privacy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:uk"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:law"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:hacking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:phishing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:fraud"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:crime"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:police"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:database"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:identity-theft"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:lucid-intelligence"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:data-protection"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:security"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jm/t:colin-holder"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>