Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save eiri/79d91a797af9c6a6ff6d to your computer and use it in GitHub Desktop.
Save eiri/79d91a797af9c6a6ff6d to your computer and use it in GitHub Desktop.
Effect of variable compressor on database size in CouchDB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Effect of variable compressor on database size in CouchDB\n",
"\n",
"\n",
"## What is it\n",
"\n",
"CouchDB allows to configure a compression library used to store data on disk. The choises are [snappy] vs zlib's [deflate]. As an optimization at compression phase the data compressed with both libraries and smaller one is used even if it is not a configured option.\n",
"\n",
"This document is an attempt to find out the real effect of this optimization on used disk size.\n",
"\n",
"\n",
"## How the data was gathered\n",
"\n",
"For the measurments used a standard three nodes CouchDB 2.0 cluster configured as:\n",
"\n",
"---\n",
"```\n",
"[cluster]\n",
"q=8\n",
"r=2\n",
"w=2\n",
"n=3\n",
"```\n",
"---\n",
"\n",
"The new test database created for each run and propagated with 1024 documents through individual POST on `/db/doc` end-point. Each document is exactly 1024 byte big as per `Content-Length` header. The total database data size expected to be around 1M. Pull of `_all_docs` with `include_docs=true` confirms that by returning 1.2M JSON document where additional size is an overhead of the description fields.\n",
"\n",
"After the propogation, the data directories of the cluster recursivly walked and the size of each test database shard file sums up. At the next step a compaction run on each shard and the sum of all shard files calculated again.\n",
"\n",
"The test ran 8 times for each case with and without the compression optimization.\n",
"\n",
"\n",
"## Result\n",
"\n",
"This naïve testing demonstrate that on cluster with `n=3` the compression optimization allows to save less than one percent of the total disk space.\n",
"\n",
"[deflate]: https://en.wikipedia.org/wiki/DEFLATE\n",
"[snappy]: https://en.wikipedia.org/wiki/Snappy_(software)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.ticker import FuncFormatter"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"byte_func = lambda x, pos: '%1.1fM' % (x * 1e-6) if x >= 1e6 else '%1.1fK' % (x * 1e-3) if x >= 1e3 else '%1.1f' % x\n",
"majorFormatter = FuncFormatter(byte_func)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Shards sizes without compaction"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"with_optimization = (61158008, 61534840, 61993592, 61612664, 61457016, 61813368, 61604472, 61788792)\n",
"\n",
"without_optimization = (61993592, 61616760, 61948536, 61641336, 61588088, 61203064, 61837944, 61981304)\n",
"\n",
"data1 = {\n",
" 'with optimization' : with_optimization,\n",
" 'without optimization' : without_optimization\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x109b54e90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.boxplot(data1.values())\n",
"ax.set_xticklabels(data1.keys())\n",
"ax.yaxis.set_major_formatter(majorFormatter)\n",
"plt.title('Database size')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>with optimization</th>\n",
" <th>without optimization</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>8.000000</td>\n",
" <td>8.00000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>61620344.000000</td>\n",
" <td>61726328.00000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>254389.889754</td>\n",
" <td>270032.17559</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>61158008.000000</td>\n",
" <td>61203064.00000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>61515384.000000</td>\n",
" <td>61609592.00000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>61608568.000000</td>\n",
" <td>61739640.00000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>61794936.000000</td>\n",
" <td>61956728.00000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>61993592.000000</td>\n",
" <td>61993592.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" with optimization without optimization\n",
"count 8.000000 8.00000\n",
"mean 61620344.000000 61726328.00000\n",
"std 254389.889754 270032.17559\n",
"min 61158008.000000 61203064.00000\n",
"25% 61515384.000000 61609592.00000\n",
"50% 61608568.000000 61739640.00000\n",
"75% 61794936.000000 61956728.00000\n",
"max 61993592.000000 61993592.00000"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1 = pd.DataFrame(data1)\n",
"df1.describe()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Average increase of used space: 0.17%\n"
]
}
],
"source": [
"mean_with = df1.mean()['with optimization']\n",
"mean_without = df1.mean()['without optimization']\n",
"print \"Average increase of used space: {:.2%}\".format((mean_without - mean_with) / mean_with)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Shards sizes after compaction"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"with_optimization_compacted = (3678840, 3666552, 3666552, 3666552, 3666552, 3678840, 3678840, 3678840)\n",
"\n",
"without_optimization_compacted = (3691128, 3715704, 3703416, 3691128, 3740280, 3703416, 3703416, 3691128)\n",
"\n",
"data2 = {\n",
" 'with optimization' : with_optimization_compacted,\n",
" 'without optimization' : without_optimization_compacted\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x109bf0350>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.boxplot(data2.values())\n",
"ax.set_xticklabels(data2.keys())\n",
"ax.yaxis.set_major_formatter(majorFormatter)\n",
"plt.title('Compacted database size')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>with optimization</th>\n",
" <th>without optimization</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>8.000000</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>3672696.000000</td>\n",
" <td>3704952.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>6568.212281</td>\n",
" <td>16665.018555</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>3666552.000000</td>\n",
" <td>3691128.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>3666552.000000</td>\n",
" <td>3691128.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>3672696.000000</td>\n",
" <td>3703416.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>3678840.000000</td>\n",
" <td>3706488.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3678840.000000</td>\n",
" <td>3740280.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" with optimization without optimization\n",
"count 8.000000 8.000000\n",
"mean 3672696.000000 3704952.000000\n",
"std 6568.212281 16665.018555\n",
"min 3666552.000000 3691128.000000\n",
"25% 3666552.000000 3691128.000000\n",
"50% 3672696.000000 3703416.000000\n",
"75% 3678840.000000 3706488.000000\n",
"max 3678840.000000 3740280.000000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2 = pd.DataFrame(data2)\n",
"df2.describe()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Average increase of used space: 0.88%\n"
]
}
],
"source": [
"mean_with = df2.mean()['with optimization']\n",
"mean_without = df2.mean()['without optimization']\n",
"print \"Average increase of used space: {:.2%}\".format((mean_without - mean_with) / mean_with)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Data size growth rate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Setup\n",
"\n",
"The documents of fixed size 1024 byte added in groups by 1024 up to total 10240 documents or 10MB of data size. After each batch compaction ran on each shard and sum of the shards recorded.\n",
"\n",
"The measurments done on a fresh built cluster for both version with and without compaction."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x109c08e50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"columns = ['with optimization', 'without optimization']\n",
"\n",
"num_docs = (1024, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240)\n",
"\n",
"sizes_with_optimization = (3666552, 7070436, 10486680, 13890456, 17294232,\n",
" 20722584, 24126360, 27567000, 30970776, 34386840)\n",
"\n",
"sizes_without_optimization = (3691128, 7144164, 10572696, 14037912, 17466264,\n",
" 20870040, 24335256, 27788184, 31204248, 34657176)\n",
"\n",
"df3 = pd.DataFrame(data = zip(sizes_with_optimization, sizes_without_optimization), index=num_docs, columns=columns)\n",
"\n",
"df3.plot(kind='bar')\n",
"plt.title('Size growth')\n",
"plt.xticks(rotation=35)\n",
"plt.gca().set_ylim([0, 41943040])\n",
"plt.gca().yaxis.set_major_formatter(majorFormatter)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"ERGR7vr/ZtDPMJgj17IAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x109c0b290>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def delta(x, y):\n",
" return abs(x - y)\n",
"\n",
"df3['delta'] = delta(df3['with optimization'], df3['without optimization'])\n",
"df3['delta'].plot()\n",
"plt.title('Delta of size change')\n",
"plt.xticks(rotation=35)\n",
"plt.gca().yaxis.set_major_formatter(majorFormatter)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment