Nix-Guix-Substitution-Bench.../analysis-notebook/Analysis.ipynb

1102 lines
337 KiB
Plaintext
Raw Normal View History

2022-03-04 19:28:08 +01:00
{
"cells": [
{
"cell_type": "markdown",
"id": "87adae48-90b8-4132-bccf-fb7ec200df97",
"metadata": {},
"source": [
"# Abstract\n",
"\n",
"We evaluate the performance of a NAR-based, a file-based (uncompressed and xz-compressed) and a casync-based substitution mechanism through 3 scenarios:\n",
"\n",
"1. A curl-induced mass rebuild impact on a NixOS machine closure.\n",
"1. A single derivation version bump (Firefox) impact on the said derivation.\n",
"1. A stable -> unstable channel jump impact on a NixOS machine closure.\n",
"\n",
"For each of these scenarios, we compare how much data the substitution technique required to transfer versus how much data the NAR substitution required to transfer.\n",
"\n",
"Unsurprisingly, the mass rebuild scenario is the one for which we see the biggest improvement: nix-casync cuts down by 48.7% the amount of downloaded data, the xz-compressed file-based substitution cuts down the same amount by 38.4%.\n",
"\n",
"Surprisingly, we see an improvement in the case of a Nixpkgs stable (21.11) -> Nixpkgs unstable (20.05 pre-release) jump: xz-compressed file based substitution cuts down by 18% the amount of downloaded data, Casync by 17.2%.\n",
"\n",
"We see almost no improvements for the derivation bump scenario: xz-compressed file based substitution 1%, Casync 1%.\n",
"\n",
"For file substitution, we can see that the compression is crutial for the overall performance. Uncompressed file-based substitution is consistently 2 order of magnitude worse than the NAR-based substitution.\n",
"\n",
"We can conclude that reducing the substitution granularity, either via Casync of xz-compressed file-based substitution consistently reduces (1% -> 48.7%) the amount of transferred data in 3 different common scenarios."
]
},
{
"cell_type": "markdown",
"id": "f1eb8600-b572-498a-8f8b-15ad6b91d2b4",
"metadata": {
"tags": []
},
"source": [
"# Import Benchmark Data"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f9d5564c-dab3-458d-923f-848e82459c6e",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"def toMb(b):\n",
" return b * (9.537e-7)"
]
},
{
"cell_type": "markdown",
"id": "4b2cb125-b30b-4049-a6d8-ea2468963085",
"metadata": {},
"source": [
"First, let's import the data generated by the `../companeSubsEfficiency` benchmark."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f9e97b01-f776-4439-af58-ac7f1313d1a0",
"metadata": {},
"outputs": [],
"source": [
"results_dir='bench-results'\n",
"def importBenchmarkCSVs(contentDir):\n",
" return {\n",
" \"casync\": pd.read_csv(f\"{contentDir}/casync.csv\",\";\"),\n",
" \"file\": pd.read_csv(f\"{contentDir}/file.csv\",\";\"),\n",
" \"compressed-file\": pd.read_csv(f\"{contentDir}/file-xz-compressed.csv\",\";\"),\n",
" \"nar\": pd.read_csv(f\"{contentDir}/nar.csv\",\";\"),\n",
" }\n",
"\n",
"b = {\n",
" \"massRebuild\": {\n",
" \"before\": importBenchmarkCSVs(f\"{results_dir}/before-mass-rebuild\"),\n",
" \"after\": importBenchmarkCSVs(f\"{results_dir}/after-mass-rebuild\"),\n",
" },\n",
" \"channelJump\": {\n",
" \"before\": importBenchmarkCSVs(f\"{results_dir}/nixpkgs-stable-channel\"),\n",
" \"after\": importBenchmarkCSVs(f\"{results_dir}/nixpkgs-unstable-channel\")\n",
" },\n",
" \"firefoxBump\": {\n",
" \"before\": importBenchmarkCSVs(f\"{results_dir}/before-firefox-bump\"),\n",
" \"after\": importBenchmarkCSVs(f\"{results_dir}/after-firefox-bump\")\n",
" }\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "81b08f0a-40e6-4379-89a8-8e14102d2c39",
"metadata": {
"tags": []
},
"source": [
"# Methodology\n",
"\n",
"For each of these benchmarks, we're going to evaluate different store path substitution techniques and compare their efficiencies.\n",
"\n",
"The following benchmarks will consist in building a NixOS machine configuration against 2 Nixpkgs commits. We'll simulate a NixOS machine update from the first commit to the second one.\n",
"\n",
"We're going to evaluate the 3 following substitution techniques:\n",
"\n",
"1. **Nar substitution**: This is the substitution model currently used by both the NixOS and Guix project. It consists in `.tar.xz`-ing a full store path. In this benchmark, we'll identify each NAR by its filename, which is derived by the `sha256` sum of their content.\n",
"1. **Casync substitution**: This is an experimental substitution method implemented via the [nix-casync](https://github.com/flokli/nix-casync) project. Here, starting from a NAR, we uncompress it and chunk it in smaller bits. In this benchmark, we'll identify each casync chunk by its filename, which is already derived the `sha256` sum of its content.\n",
"1. **File-based substitution**: This is a substitution method [the Guix](https://lists.gnu.org/archive/html/guix-devel/2021-01/msg00079.html) project brainstormed around. Basically, each store file would be served separately. In this benchmark, we'll identify these files using the `sha256` sum of their content.\n",
"1. **XZ-Compressed File-based substitution**: Similar to the File-based substitution but with each file individually compressed using the xz compression algorithm using the profile 6 extreme.\n",
"\n",
"\n",
"Note: we're using NixOS/Nixpkgs for all these benchmarks. However, since Guix currently use the same substitution mechanism, you can safely assume the same conclusions holds true for it as well."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "2af8dcec-8665-490a-9146-86b81dd108b0",
"metadata": {},
"outputs": [],
"source": [
"def analyse_benchmark_results(i):\n",
" \"\"\"\n",
" Analyse a benchmark results.\n",
" \n",
" :param i: benchmark dataframes. Expecting a \"before\" and a \"after\" dataframe.\n",
" \n",
" Each benchmark simulates the substitutions triggered by transition between two\n",
" nix closures, a \"before\" and a \"after\" one.\n",
" \n",
" For each substitution mechanism, we then simulate what we can re-use and have \n",
" to download by diff-ing the substitution atoms (file, chunk or NAR).\n",
" \"\"\"\n",
" \n",
" _a_nar = i[\"after\"][\"nar\"]\n",
" _b_nar = i[\"before\"][\"nar\"]\n",
" _a_casync = i[\"after\"][\"casync\"]\n",
" _b_casync = i[\"before\"][\"casync\"]\n",
" _a_file = i[\"after\"][\"file\"]\n",
" _b_file = i[\"before\"][\"file\"]\n",
" _a_compressed_file = i[\"after\"][\"compressed-file\"]\n",
" _b_compressed_file = i[\"before\"][\"compressed-file\"]\n",
"\n",
" nar_closure_size = _a_nar[\"Nar Size\"].sum()\n",
" casync_closure_size = _a_casync[\"Chunk Size\"].sum()\n",
" file_closure_size = _a_file[\"Size\"].sum()\n",
" compressed_file_closure_size = _a_compressed_file[\"Size\"].sum()\n",
" \n",
" _nar_merged = _a_nar.merge(_b_nar, how = \"left\", on=\"Nar Name\", indicator=True, suffixes=(\"_after\",\"_before\"))\n",
" nar_dl_size = _nar_merged.loc[_nar_merged[\"_merge\"] == \"left_only\"][\"Nar Size_after\"].sum()\n",
" nar_reused_size = _nar_merged.loc[_nar_merged[\"_merge\"] == \"both\"][\"Nar Size_after\"].sum()\n",
" nar_nar_savings = 0\n",
" \n",
" _casync_merged = _a_casync.merge(_b_casync, how=\"left\", on=\"Chunk Name\", indicator=True, suffixes=(\"_after\",\"_before\"))\n",
" casync_dl_size = _casync_merged.loc[_casync_merged[\"_merge\"]==\"left_only\"][\"Chunk Size_after\"].sum()\n",
" casync_reused_size = _casync_merged.loc[_casync_merged[\"_merge\"]==\"both\"][\"Chunk Size_after\"].sum()\n",
" casync_nar_savings = (nar_dl_size - casync_dl_size) / nar_dl_size\n",
" \n",
" _file_merged = _a_file.merge(_b_file, how=\"left\", on=\"Sha256\", indicator=True, suffixes=(\"_after\",\"_before\"))\n",
" file_dl_size = _file_merged.loc[_file_merged[\"_merge\"]==\"left_only\"][\"Size_after\"].sum()\n",
" file_reused_size = _file_merged.loc[_file_merged[\"_merge\"]==\"both\"][\"Size_after\"].sum()\n",
" file_nar_savings = (nar_dl_size - file_dl_size) / nar_dl_size\n",
"\n",
" _compressed_file_merged = _a_compressed_file.merge(_b_compressed_file, how=\"left\", on=\"Sha256\", indicator=True, suffixes=(\"_after\",\"_before\"))\n",
" compressed_file_dl_size = _compressed_file_merged.loc[_compressed_file_merged[\"_merge\"]==\"left_only\"][\"Size_after\"].sum()\n",
" compressed_file_reused_size = _compressed_file_merged.loc[_compressed_file_merged[\"_merge\"]==\"both\"][\"Size_after\"].sum()\n",
" compressed_file_nar_savings = (nar_dl_size - compressed_file_dl_size) / nar_dl_size\n",
" \n",
" return pd.DataFrame( data = {\n",
" \"Name\": [\"NAR\", \"Casync\", \"File\", \"Compressed File\"],\n",
" \"Closure Size (MB)\": [toMb(nar_closure_size), toMb(casync_closure_size), toMb(file_closure_size), toMb(compressed_file_closure_size)],\n",
" \"Downloaded Size (MB)\": [toMb(nar_dl_size), toMb(casync_dl_size), toMb(file_dl_size), toMb(compressed_file_dl_size)],\n",
" \"Re-used Size (MB)\": [toMb(nar_reused_size), toMb(casync_reused_size), toMb(file_reused_size), toMb(compressed_file_reused_size)],\n",
" \"DL Savings Compared to NAR (%)\": [nar_nar_savings * 100, casync_nar_savings * 100, file_nar_savings * 100, compressed_file_nar_savings * 100]\n",
" })\n",
"\n",
"def gen_perf_pie(dataframe, key):\n",
" idx=mass_rebuild_results.query(f'Name == \"{key}\"').index[0]\n",
" pd.DataFrame(data={\"data\":[dataframe[\"Downloaded Size (MB)\"][idx],dataframe[\"Re-used Size (MB)\"][idx]]},\\\n",
" index=[\"Downloaded\",\"Re-Used\"])\\\n",
" .plot.pie(figsize=(6,6), y=\"data\", ylabel=\"\", title=f\"{key} Downloaded/Re-Used Data\") "
]
},
{
"cell_type": "markdown",
"id": "6e632d28-b1b7-450b-abe0-274337a6dfbb",
"metadata": {
"tags": []
},
"source": [
"# Benchmark Scenarios\n",
"\n",
"\n",
"## 1. Mass Rebuild\n",
"\n",
"Let's build the same NixOS machine description using two Nixpkgs commits: one before and one after the [staging next 2021-12-03](https://github.com/NixOS/nixpkgs/pull/148396) iteration merge to master. This staging iteration contains, among other things, a `curl` version bump. That `curl` version bump triggers a almost entire Nixpkgs mass rebuild: both `nix` and `stdenv` are depending on it.\n",
"\n",
"This mass-rebuild scenario represents a long-standing issue in terms of substitution performance."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "85c720c5-4688-4d7e-84d3-4006700a69fb",
"metadata": {},
"outputs": [],
"source": [
"mass_rebuild_results = analyse_benchmark_results(b[\"massRebuild\"])"
]
},
{
"cell_type": "markdown",
"id": "54d92b71-fefe-4721-9866-440896b9f20c",
"metadata": {},
"source": [
"### NAR Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "401c1c9d-b264-4266-ac92-de660f4577bc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZMAAAFkCAYAAADli9bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAxnklEQVR4nO3deZgcZb328e+vZ7JMFrKQhYSQdMg+SUgwQIiELIQEsEXRiKABFNnEg/py4GjrQYjv0XOaF4WoIKAIIggIKIppjohAWCKJZCcbIYQKWSEb2beZed4/qgaHmGUm3dNPL/fnuvrKTHdX9T09k777eaq6ypxziIiIZCLmO4CIiBQ+lYmIiGRMZSIiIhlTmYiISMZUJiIikjGViYiIZExlIiIiGVOZSNExs1+b2Q8aYb1jzGx1rpfNZ2Y2zcyu9J1D/FOZFCkzC8zsPTNrWee6K81s2gH3MzNbYWaLD7KOaWa2x8x2mNlGM/uDmXU5zGP+2sz2mdn26LLQzP7HzNpk9YcrEmbWtbZgot/X7ui5Xh89l62Ocr2Tzezhg1zvzKx3prkbmGN/nb+HZWZ25+H+hg6yDpVVgVCZFLdy4JtHuM8ooBNwopmdepDbr3POtQJ6A62AHx1hff/POdca6AhcDpwOTK9bavKhTwB/qfP9+dFzPRQ4GfiOj1BZ9rvo76E98BngOGB2QwpFCoPKpLjdBtxoZm0Pc58vAX8Cnom+Pijn3AfAHwlf6I7IObfHOfc68CngWMJiwcxiZnaTma00s/fN7De1Ixcze9DMboi+Pj56J/216PveZrY5GkmNMbPVZnZDtI51Znb5obKY2VVmtjxa/mkz61rntp+Y2Soz22Zms83szDq3VUQjhC3RyO3UA9bb1cx+b2YbzOwdM/tGfZeNfILweT/wuVsPPEud59rMTjezv5vZB2Y238zGHOrnrQ8z+3I0It0eZZ9U57avmNmSKPuzZtajzm3jzWypmW01szsBq8/jOef2O+cWARcBG4Da33M7M5saPYdboq+7Rbf9EDgTuDMasd0ZXX/I35n4ozIpbrOAacCNB7vRzFoAnwN+G10uNrOmh7jvscBngeUNCeCc2w48R/iiAPDl6DIWOJFwtHNndNtLwJjo69HAiuhfCEdQr7h/HkzuOKANcDxwBXCXmbU7SO6zgP8BPg90AVYCj9W5y+uEL9rtgUeAJ8yseXTbLUCv6HIOdcrWzGLAn4H5UYZxwP8xs3OOtGy0fJPoZ3ruIJm7AecRPddmdjyQBn4Q5bwR+L2ZdTxw2fqIRok/Bc6LRg0fB+ZFt10AfJfwd90ReAV4NLqtA/B74CagA/A2cEZDHts5V0345qX27yEGPAD0ALoDu4n+Hpxz/xk9/nXOuVbOueuiZQ73OxNfnHO6FOEFCICzgUHAVsIXhiuBaXXucwnhu8RyoBnwAfCZOrdPA3ZFyzvCF5zuh3nMXwM/OMj1KeC56Ovnga/Vua0fsD/K0CvKEAPuAa4BVkf3exD49+jrMYQvOuV11vM+cPqBOYBfEU691d6vVfR48UP8DFuAIdHXK4Bz69x2dZ08w4F3D1j2O8ADR1o2+n4c8PwBv68dwPbouX4eaBvd9m3goQMe61ngS4f4GSYDDx/kekc4Xdkyep4nAhUH3Od/gSvqfB+L/gZ6AJcBM+rcZsBq4MoG5vgq8NYhlhkKbDngb/Cg6z/Y70wXfxeNTIqcc24hMBVIHuTmLwGPO+eqnHN7gT/wr1Nd33DOtQFOAtoB3Y4ixvHA5ujrroSjg1orCYuks3PubcIX1KGE71ynAmvNrB/hCOWlOsttcs5V1fl+F2FRHOgjj+ec2wFsijIRTZUtiaZtPiAc7XSos+yqA7LW6gF0jaadPoiW/S7QuR7LwsGnuC5w4UhhDNC/To4ewIUHPNZIoIuZnRlNAe0ws0XR/auAJnVXHI2EAPY753YSTjd9FVhnZmkz61/nsX5S53E2E5bG8Qf+TC58Ja/7M9bXh38PZtbCzO6Npj23AS8Dbc2s7FALH+F3Jp6oTErDLcBVRC+g8OFUylnAJRbuPbSecMrrE9F0xkc4594gnGa5y8zqNU8ePU4rwhHSK9FVawlfsGp1J3zxey/6/qUoR1Pn3Jro+8sIi2xefR+3jo88XjTFcyywJppr/zbhFFg751xbwlFY7c+3DjjhgKy1VgHvOOfa1rm0ds59oh7LQlgm6YMFds69RDi6qt3ZYRXhyKTuY7V0zqWcc6+4cAqolXNuYHT/d4H4AavtCVQDa6LHeNY5N55w6m8p8Ms6j3XNAY9V4Zz7+4E/U/R3UPdnPKJoevB8/vn3cAPh6HS4c+4Ywqk/+OfvwB2w/JF+Z+KJyqQEOOeWA78DvlHn6kuBZYT/kYdGl76E0xZfOMSqHiTc8+tTR3pMM2tmZsMIN9pvIZwXh3D+/Xoz6xkVzX8T7vFTO8p4CbiO8B0qhNMcXwdedeF8e0M9AlxuZkPNrFn0eDOdcwHQmrDINgDlZnYzcEydZR8HvhNtJO4W5aj1D2CbmX072theZmaD7J97xB1yWTPrCTRzzi09TO4pwHgzGwo8DJxvZudEj9Pcwp0QDjVK/AvQz8wuNbMmZtY++rmfdM5VmVlnM/tUVKx7CUeDtc/tPVHugVHWNmZ2YXRbGhhoZp81s3LCv6fjDvMzfCjKMYDw938ccHt0U2vCKcsPopy3HLDoe4Tb1qhz/8P9zsQTlUnp+L+Ec+W1vgT83Dm3vu6F8MXkoHt1Oef2EW64/d5hHudbZradcBrjN8Bs4OPR1ArA/cBDhGXxDrCHj75Iv0T4glFbJq8CLep83yDOueejvL8nfGfdC7g4uvlZwm0Eywinofbw0Wmb70fXvwP8Ncpdu95qwnfYQ6PbNwL3EU65HHZZIMFB9uI6IPcGwufve865VcCnCafRNkQZ/4ND/P91zr1POPK5hnBb0kLCd+/XRneJEY4I1hL+nkYDX4uWfQq4FXgsmnZaSLgzAM65jcCFhNvANgF9gOmH+zmAi8xsB+E2mqej5YY559ZGt08BKgifvxl8dFdpgJ8An4v29PopR/6diScWTnuKSK6Y2TPAnc65wxaKSCHRyEQk96YBL/oOIZJNGpmIiEjGNDIREZGMqUxERCRjKhMREcmYykRERDKmMhERkYypTEREJGMqExERyVi57wAiUrhmz57dqby8/D7CUx3ozWnu1QALq6qqrhw2bNj7PoOoTETkqJWXl9933HHHDejYseOWWCymT0DnWE1NjW3YsKFy/fr191GPA7A2Jr2TEJFMDOrYseM2FYkfsVjMdezYcSvhyNBvFt8BRKSgxVQkfkXPv/fXcu8BREQyUVZWNqx///6VvXv3HtivX7/KyZMnd66uPppT39TPaaed1u/ll19ukel6pk6d2nrs2LG9fTx2Y9A2ExHJmngyPSyb6wtSidlHuk+zZs1qli5duhhgzZo15RdeeOGJW7duLbvjjjvWHmlZyR6NTESkaBx//PFV9913X/DAAw90qqmpYdeuXfa5z30u3rdv38oBAwZU/vnPf24NMHr06N4zZ86sABgwYEDljTfe2AXgm9/8Ztfbb7+9w9SpU1ufdtpp/c4999wTe/bsOfBTn/pUz5qamn95vHvvvbd93759K/v06TPw2muv/fC02JMmTeo+aNCgAb179x54/fXXd629/sknnzymZ8+eA4cNG9bvySefbFt7/bZt22IXXnhhfNCgQQMGDBhQ+fDDD7cF2LFjh33yk588sW/fvpWJROLEPXv25O3piVUmIlJUKisr99XU1LBmzZryW2+9tRPAsmXLFj/yyCMrrr766viuXbvsjDPO2PHCCy+02rx5c6ysrMzNmDGjFcCMGTNajRs3bjvAkiVLKu66665Vy5cvX/Tuu+82e+6551rVfZwgCJpMnjz5+GnTpi1bvHjxorlz57Z86KGH2gLcfvvtaxYuXLhk6dKli6ZPn9565syZFbt27bLrrrsu/vTTTy9//fXX33z//feb1K7ru9/9bpexY8duW7hw4ZJXXnnlzZtuuqnbtm3bYj/60Y86VVRU1CxbtmzxzTffvG7
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(mass_rebuild_results, \"NAR\")"
]
},
{
"cell_type": "markdown",
"id": "52834fa5-7116-4ec5-82a9-73d2322ea2cc",
"metadata": {
"tags": []
},
"source": [
"### Casync Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "90a90aca-0ed4-47a5-a174-cbfd9eec04ee",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(mass_rebuild_results, \"Casync\") "
]
},
{
"cell_type": "markdown",
"id": "d0ef7f9b-dc53-4c02-b4e4-46be01c019bd",
"metadata": {},
"source": [
"### File-Based Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "b9e22d70-5090-43d4-96f0-02fa3e4be6d1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFkCAYAAAB/6MMYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAxpklEQVR4nO3deXhU5d3G8e9vJskkQBhWkUUYBAIkRLEoaFGWutao1SpFX6oVVJTWulTbTm1rTxdrfBWlLnWpu9al2g0dWzcEBAUR2cMiYkT2fRLIAknO+8c50ZAXspCZPHNmfp/rmovJLGfuzMDNc5Y5j9i2jVJKqZbzmQ6glFLJQgtVKaViRAtVKaViRAtVKaViRAtVKaViRAtVKaViRAtVKaViRAs1DkRkr4gc615/WkT+YDpTS4iILSL947DcI35vkuF9rU9EQu57nWY6izoyWqgtICLFIlLuFmjtpYdt2+1s214Xg+XbIrLPXe5OEXlXRMbHInsyEpHbROSPIjJGRGrc961URFaLyMQWLLdYRM6od9uVIjKn5ambnaPc/Z32iMgHInKdiDTp37EWdvxpobbc+W6B1l42xXj5x9u23Q4YCDwNPCgiv4nxaySLc4E33Oub3PetPXAz8BcRGWgsWeycb9t2NtAHKAR+DjxhNpKqpYUaBw2tIovIeSKyuM4I47imLNO27R22bT8HTAF+ISKd3eX1EJHpIrJLRNaKyDXu7ZnuaKaL+/OvRKRKRNq7P/9BRKa5158WkYdEJOKOfuaLSL/D5A+KyLMisl1EvnCX63Pv6yciM9zR9A4R+auIdKjz3BNE5BP3NV4GMpv63jThuR2BHODDeu+bbdv2G8Au4Dj3sT4RCYvIZ27Wv4lIp6Z8Dod5TzJF5Hl3WXtEZIGIdKvzfj0hIptFZKP7vvvd+/wico/7Xq0DCpr6mrZtR23bng6MB34gIkPcZRaIyCIRKRGRL0XEqvO02e6fe9zR+ymNfWaqebRQW5GIfAN4ErgW6Aw8CkwXkUAzFvNvIA0Y7v78IrAB6AFcAvxRRE63bbsCWACMdh83CvgCGFnn51l1lnsZ8FugI7AWuOMwr/8AEASOdZd9BVC7Oi3AnW6WwcAxgOX+7hnAv4DngE7AK8DFtQtt6L1p7Lmus4F3bduurnujW54XAF3c3wvgBuBCN38PYDfw0GF+36b4Ac57coyb/Tqg3L3vGaAK6A+cAJwFXO3edw1wnnv7iTifX7PYtv0Rzud/mnvTPpzPpANOQU8RkQvd+0a5f3Zw16Y+pIHPTB0B27b1coQXoBjYC+xxL/9yb7eB/u71p4E/uNcfBn5fbxmrgdGHWf5Xy6l3+xZgAs5f/mogu859dwJPu9d/D9yPU8BbgBtxVhMzcf7Bd6mT8fE6yzgXWFU/B+AHKoHcOvddC8w8TP4LgUXu9VHAJkDq3P9BU96bxp7r/vwccLl7fQxQ434mle57dFOdx64ETq/zc3fgAJDWwOd8Rr3brgTmuNcnuXmOq/eYbu7rZ9W57TLgPff6DOC6Oved5b7XTc7h3j4P+OVhnjMNuM+9Hmpo+fU/M700/6Ij1Ja70LbtDu7lwkYe2we4xV0t3CMie3BKsUdTX0xE0oGuOKuwPYBdtm2X1nnIF0BP9/osnHL5BrAMeBunoE4G1tq2vaPO87bUuV4GtDvEy3cBMtzX+H+vJyJHichL7qptCfC8+xzcrBtt919tnefWaui9afC57iaHM4H/1rl/k23bHXC2od4PfKvea/2zzuusxCndbiLyiHy9g/E29/FVQHq99yIdp4TBKfM3gZdEZJOI/K/7OfVxH7e5zms9ChxV5z358jDvR3P0xPn7gIiMEJH33E0yUZzRcpfDPbGRz0w1kxZq6/oSuKNOAXewbbuNbdsvNmMZ38H5B/4Rzqitk4hk17m/N7DRvf4Bzs6si4BZtm0XufcXcPDqflPtwCmRPod5vTtxRkDH2bbdHvg+ziolwGagp4hIvefWaui9aey5JwHFtm1vrx/Ytu1KnB03+XVWfb8Evl3vtTJt295o2/Z19tc7GP/oPn49zuiurr64BWjb9gHbtn9r23Yu8E2c1fgr3NepxFkTqH2d9rZt59V5T445zO/UJCJyEk6h1h5x8AIwHTjGtu0g8AhffwaHOldnQ5+ZaiYt1Nb1F+A6dxQhItLW3YmQ3dgTRaSTiEzA2dZ3l23bO23b/hKnNO90d4wcB1wF/BXAtu0yYCHwI74u0A9wVtObXai2s33yb8AdIpItIn2An+CMagCycTeBiEhP4Kd1nv4hzn8EN4hImoh8l6+3Azf23jT23AK+3rt/qNz7ganA7e5Nj7i/Qx8AEekqIt9p4Fd/GbhJRAa52U7EWc1/yX3+WBHJd3c2leD8p1Nt2/Zm4C1gqoi0d7fn9hOR2u3af3N/p17i7FQLN5DhIO7yznMzPG/b9jL3rmyctZYKERkO/E+dp23H2RRybJ3bGvrMVHOZ3ubg5QuH36Z1yG2o7s/n4Ows2oMzQnmFOttAD7GcfTh/4XcB7wH/U+8xvYDX3fs/o842Off+O3G2lwbcn693l9utzmPqZxwDbDjM79MRp0C344zAbgd87n15OAW+F1gM3FJvOScCi4BSnJJ6uanvTUPPBT4GTjxcfve2Njgj7PNxBhI/wdlGW+q+b39s4HP24ZTdpziFWQRcVef+y9xl7QO24m63du8L4mwf3gBE3d/hUve+NOA+YCfwOc5/fI1tQy13M0dx/qP5EeCv85hLcEbOpe7fiwdxCrf2/t+5n90enE0/DX5memneRdw3WSlPcg9PWgz0sPUvszJMV/mV1wWBn2iZqkSgI1SllIoRHaEqpVSMaKEqpVSMaKEqpVSMaKEqpVSMaKEqpVSMaKEqpVSMaKEqpVSM6FQISiWghQsXHpWWlvY4MAQd+JhQAyyvqqq6etiwYdua+iQtVKUSUFpa2uNHH3304K5du+72+Xz67ZtWVlNTI9u3b8/dsmXL48AFTX2e/s+nVGIa0rVr1xItUzN8Pp/dtWvXKM4aQtOfF6c8SqmW8WmZmuW+/83qSC1UpdQh+f3+YYMGDcrt379/3sCBA3Mty+pWXV3d+BOP0PDhwwfOnj27TUuX8/rrr2ePHTv2kJNkxvu1dRuqUh4QCkeGxXJ5xYUFCxt7TCAQqFm1alURwMaNG9PGjRt3bDQa9d93332xnio9aegIVSnVqJ49e1Y9/vjjxU899dRRNTU1lJWVySWXXBLKycnJHTx4cO5rr72WDTB69Oj+8+fPzwIYPHhw7q233tod4MYbb+xx7733dnn99dezhw8fPvCcc845tm/fvnkXXHBB35qamv/3eo8++minnJyc3AEDBuRNmTKldo40JkyY0HvIkCGD+/fvn3fzzTd/NRfbq6++2r5v3755w4YNG/jqq692qL29pKTEN27cuNCQIUMGDx48OPf555/vALB3714577zzjs3JycktKCg4tqKiIibTvmihKqWaJDc3d39NTQ0bN25Mu+uuu44CWLNmTdELL7ywbvLkyaGysjIZOXLk3hkzZrTbtWuXz+/32/PmzWsHMG/evHann356KcDKlSuzHnrooS/Xrl27Yv369YG33377oAkhi4uL0y3L6jlz5sw1RUVFKxYtWtT2ueee6wBw7733bly+fPnKVatWrZg7d272/Pnzs8rKyuT6668PTZ8+fe2CBQtWb9u27asJFW+77bbuY8eOLVm+fPnK999/f/WvfvWrXiUlJb577rnnqKysrJo1a9YU3X777ZuLioraxuI90kJVSjVZ7fmTP/jgg3ZXXHHFToATTjihokePHvuXLVuWOWbMmNI5c+Zkv/3229lnnXVWtKyszF9aWurbsGFD4Pjjj68EyM/P39evX78Dfr+fvLy8ss8++yyj7mvMmTOn7cknn1zao0ePqvT0dMaPH79r1qxZ7QCeeeaZTrm5uYNzc3NzP/3008wlS5ZkLl68OLNXr16V+fn5lT6fjwkTJuysXdbMmTPb33fffd0HDRqUe+qppw6srKyUtWvXZsyZM6fd5ZdfvhNgxIgR5Tk5OWWxeH90G6p
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(mass_rebuild_results, \"File\")"
]
},
{
"cell_type": "markdown",
"id": "0b4b8c30-8f76-490b-ac55-d156d62295b8",
"metadata": {},
"source": [
"### Compressed File-Based Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "08deae34-5cf4-4353-a5d8-a8096264ec79",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFkCAYAAAB/6MMYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAxZklEQVR4nO3deXxU9b3/8dcnCSQBQtj36qCyBRAsKlpRQavVprZuqC3qtdal2+12vXZqe3Vutxtrq/xsrdp6rb21LtVf/ZU69largktFrUUUERAxyr4zQCBAMt/fH+dEhwgkIZN858y8n4/HPEhmzjnznoV3vuecmXPMOYeIiLRfke8AIiL5QoUqIpIlKlQRkSxRoYqIZIkKVUQkS1SoIiJZokKNKDO7zMyea+M8J5rZ4ozfa83s49lP1znMbKqZreigZR/0cxP153VfDub9VohyvlDN7HNm9g8z225mq83sL2Y2xXeuXGZmMTNz4XPWdJnvnHvWOTcqC8ufambpjGWvMLM/mNkx2cifj8zscTM73cwSZrYnfN62mNnfzez4g1xm0+tc0uz6e8zsh9lJ3qYcTe+HtWb2qJmd1oZl5EVh53Shmtm3gJnAj4GBwCHAL4HPeIxF8zdwDuvlnOsRXiZkedmrnHM9gArgOGAR8KyZnZrl+4k8M+sOTALmhFc9GD53/YCngYd8ZcuyXuHjmgA8ATxiZpf5jdS5crZQzawS+D7wFefcH51zdc65Pc65Pzvn/j2cptTMZprZqvAy08xKw9umhiOna81sXTi6PdvMPmlmS8xsk5ldl3F/CTN72MweNLNtZvZPM5uQcXutmX3bzF4D6sysxMyOC0cYW8xsvplNzZj+MjNbFi7rHTObEV5/hJnNMbOUmW0wswcz5hltZk+E2Rab2QUZt/U1s1lmttXMXgIOP4jndL+ryGZWZGZxM3vbzDaGI84+LS3TBVY4564H7gJuzFjmx8zs5fCxvmxmHwuvn2Zmr2dM97fwMTX9/pyZnR3+XGtm15jZa+FyHjSzsv08hjFmNjt8Pd4ws09n3FZtZvPC52+5mSWazXuJmb0bPvbvtuW5OdC8oVOB551zu5o9dw3A74GhZtY/XFalmf13+H5daWY/NLPifT/7LfPxfnPOrXHO/R8gAdxoZkXhMpuew21mttDMzgmvHwPcARxv4cg9vP6Ar1lOcs7l5AU4A2gASg4wzfeBucAAoD/wd+AH4W1Tw/mvB7oAVwLrgfsIRlVjgXrgsHD6BLAHOD+c/hrgHaBLeHst8CrwEaAcGApsBD5J8IfptPD3/kB3YCswKpx3MDA2/Pl+4LvhPGXAlPD67sBy4PNACfBRYEPGfA8AfwinGwesBJ7bz/MSA1zz5y58TlZk/F4LfDz8+RvhczkMKAXuBO7fz/L3Wk7G9acA6TBjH2AzcEn4eD4b/t43fNw7CUZoJcAaYFX4upSHt/XNyPgSMCRc5pvAF5vnCF+zpcB1QNcwy7aM12AqMD583o8E1gJnh7dVAduBk8LHfjPBe6fF56alecNp7gCuznif3Rv+3BWoCV/nkvC6/xcuvzvB+/qlpnnb8DrfA/wwB95vh4XXjwl/nx6+jkXAhUAdMDi87bLmyz/Qa5arF+8B9hsMZgBrWpjmbeCTGb9/AqjNeDF2AsXh7xXhizs5Y/pXMv5TJYC5GbcVAauBE8Pfa4HLM27/NvC7Znn+CvxL+CbcApwHlDeb5n+AXwHDml1/IfBss+vuBG4AignKfnTGbT9uxRt8S8blGg5cqG8Cp2bcNji8zw/9QWu+nIzrR4f3O5SgSF9qdvsLwGXhz88C5xJsLnic4D/vGcA04LVmGS/O+P0nwB3NcwAnEhRzUca09wOJ/TxHM4Fbwp+vBx7IuK07sLs1z01L84bXvQt8JON9tjt8TRoJ/ghPDW8bCOzKfM8Q/CF6uoXX+UCF2pnvt+Y5ysLrT9jPfK8Cnwl/vmx/y9/Xa5arl5xd5Sd4o/WzA2+vHELwZm3ybnjd+8twzjWGP+8M/12bcftOoEfG78ubfnDOpYEVzZa3POPnQ4Hp4erllnA1ZQrBX9w6gjfsF4HVZpY0s9HhfNcCBrwUrpZenrG8yc2WNwMYRDDqLWl2/5mPe3/6Oed6hZeftjDtoQTbvJru+02C//ADW3E/TYbyQZE3f22aMg8Nf55DUIgnhT/PBk4OL3Oazbcm4+cd7P2aNRkCLA9ftw/dn5lNNrOnzWy9maUIXpt+mfM2zRS+fhszlnOg5+aA85rZeGCrcy7ztfuDc65XOP8Cgu2rTffTheA903RfdxKMVAnfL007fk4kGAkTzpOpC0EhQue+35preq03hfkvNbNXM+5vHB+8Bh/SwmuWk3K5UF8gWCU/+wDTrCJ4YzQ5JLzuYH2k6Ydwu8+wZsvLPDTXcoIRaq+MS3fnXA2Ac+6vzrnTCEYzi4Bfh9evcc5d6ZwbAlwN/NLMjgiXN6fZ8no4575EsKmiITNf+FizaTlwZrP7L3POrWzDMs4B/hmWSvPXBoLMTctrXqhz2H+htsYq4CNN2+v2cX/3AbMIRoqVBKvhFt62mr1f+24EmyaaHOi5aWneTwLJfQV2zm0geA8kzGxweD+72PsPYU/n3Nhw+rHug52Mz4b3vYdghJhpOGEBen6/nQOsAxab2aEE/we+SrA5pxfBH5Om12Bfh7070GuWk3K2UJ1zKYLVqdss2JnUzcy6mNmZZvaTcLL7ge+ZWX8z6xdOf2877naSmZ0bjoq/QfDmnrufae8FzjKzT5hZsZmVWbDTZ5iZDTSzT1uwd3cXwTa2RgAzm25mw8JlbCZ4IzUCjwIjwx0cXcLLMWY2Jhxl/5HgP143M6si2LSQTXcAPwrf+ITP6WdamskCQ83sBuAKgm2YAI+Fj+dzFuzAu5Bge+Oj4e1/B0YBxxJsGniDcNQEPHMQ+V8k2CZ3bfjcTQXOItgWCMEmn03OuXozOxb4XMa8DwOfMrMpZtaVYNt85v+NAz03Lc1bHT4X++ScW0Swqeha59xqgs0fPzOznhbsDDvczE7ez7yNwP8Ns/UNH/dnCZ7nv4RZO/39Fr7/v0qw+eA74VpD9/C+14fTfJ5ghNpkLTAsfA6bHOg1y02+tzm0dCFYDfkHwX+WNQR/7T/mPthGcyvBX+rV4c9l4W1T2Xt7YQnBCxrLuO45wu1zBNu2HgYeJNiZMQ/4aMa0tWRsFwuvm0wwmtpE8EZJEvwlHxxenyJY/Z0NVIXz/IRg1LSdYBvwVRnLGxUuYz3BauNTwMTwtv4E/wm2Euyo+AHZ3SlVBHwLWBw+/reBH+9n+VMJdj5tD1+XVeFzd1yz6aYQbKdOhf9OaXb7C2RsHwyX8WazafZ63tl7p07zxzM243lfCJyTcdv5BKO2beHz+Ium5YS3/wvwXvi8f7ctz83+5gUqw9eyZF/5m72P6ghW7SuB2wk2N6UI3ocXHeD/R2+CT1esJCjM58nYZknnvt+a3g/rCP6InNFsuh8R/F/ZQLDzbg5wRXhb1zDLJmBDa16zXLxYGLzghR/JOMI5d7HvLJIfLPgY0vnOuQtanFjyQs6u8ovkgS3ALb5DSOeJyjd+RCLHOfe47wzSubTKLyKSJVrlFxHJEhWqiEiWqFBFRLJEhSoikiUqVBGRLFGhiohkiQpVRCRL9MF+kRz0yiuvDCgpKbmL4AAiGvh0vjSwoKGh4YpJkyata+1MKlSRHFRSUnLXoEGDxvTv339zUVGRvn3TydLptK1fv75qzZo1dwGfbnGGkP7yieSmcf3799+qMvWjqKjI9e/fP8Xehxhseb4OyiMi7VOkMvUrfP7b1JEqVBHZp+Li4kmjR4+uOuKII8aOGjWqKpFIDGxsbGx5xoN07LHHjnrmmWe6tXc5jz76aMW0adOO8HHf2oYqEgGxeHJSy1O1Xm1N9SstTVNaWppetGjRQoCVK1eWTJ8+/bBUKlV8yy23tOc0Q3lNI1QRadHQoUMb7rrrrtrf/OY3A9LpNDt27LDzzz8/NnLkyKoxY8ZU/fnPf64AOPnkk4948cUXywHGjBlTdc011wwG+PrXvz7k5ptv7vf
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(mass_rebuild_results, \"Compressed File\")"
]
},
{
"cell_type": "markdown",
"id": "31d2ad3d-7401-49ac-97ce-f43836e10fb6",
"metadata": {},
"source": [
"### Comparing the Substitution Techniques\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f4a4eb7b-6cf0-413e-9b6e-3bf6e0c467e9",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 9,
"id": "f9df4de3-a6f1-480f-abb1-0cebbbf9ee95",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Name</th>\n",
" <th>Closure Size (MB)</th>\n",
" <th>Downloaded Size (MB)</th>\n",
" <th>Re-used Size (MB)</th>\n",
" <th>DL Savings Compared to NAR (%)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NAR</td>\n",
" <td>386.060194</td>\n",
" <td>372.989991</td>\n",
" <td>13.070203</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Casync</td>\n",
" <td>608.652010</td>\n",
" <td>192.194724</td>\n",
" <td>416.457286</td>\n",
" <td>48.471882</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>File</td>\n",
" <td>1652.194177</td>\n",
" <td>705.665216</td>\n",
" <td>973.347687</td>\n",
" <td>-89.191462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Compressed File</td>\n",
" <td>476.522900</td>\n",
" <td>229.488728</td>\n",
" <td>247.034172</td>\n",
" <td>38.473221</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Name Closure Size (MB) Downloaded Size (MB) \\\n",
"0 NAR 386.060194 372.989991 \n",
"1 Casync 608.652010 192.194724 \n",
"2 File 1652.194177 705.665216 \n",
"3 Compressed File 476.522900 229.488728 \n",
"\n",
" Re-used Size (MB) DL Savings Compared to NAR (%) \n",
"0 13.070203 0.000000 \n",
"1 416.457286 48.471882 \n",
"2 973.347687 -89.191462 \n",
"3 247.034172 38.473221 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mass_rebuild_results"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "8a800b9f-fb85-4b4f-a713-588971ecdc9b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_ = mass_rebuild_results.plot.bar(figsize=(12,5), x=\"Name\",y=\"Downloaded Size (MB)\",title=\"Volume to Download for the Mass Rebuild Update (less is better)\", xlabel=\"\", ylabel=\"Size in MB\")"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "326255a1-a681-4405-9a40-889651392948",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_ = mass_rebuild_results.plot.bar(figsize=(12,5), x=\"Name\",y=\"DL Savings Compared to NAR (%)\",title=\"DL Savings Compared to NAR (more is better)\", xlabel=\"\", ylabel=\"Savings in %\")"
]
},
{
"cell_type": "markdown",
"id": "49e237d1-6ed7-4e2b-bc9d-f51d9a9eed2f",
"metadata": {},
"source": [
"We can see a massive performance gain for both Casync (48.4%) and xz-compressed files (38.4%). We can also see that compression plays a massive role in terms of substitution performance: the uncompressed files are doing almost 90% worse than the plain NAR substitution."
]
},
{
"cell_type": "markdown",
"id": "2ca085b5-a768-468c-ab8a-76bde3de6818",
"metadata": {},
"source": [
"## 2. Firefox Bump\n",
"\n",
"In this scenario, we're going to simulate a Firefox update. We took the Firefox 97.0 -> 97.0.1 bump [7e23a7fb8268f16e83ef60bbd2708e1d57fd49ef](https://github.com/NixOS/nixpkgs/commit/7e23a7fb8268f16e83ef60bbd2708e1d57fd49ef) as a test example."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "318921b6-bd97-46e5-9aa4-b89e01831bb1",
"metadata": {},
"outputs": [],
"source": [
"firefox_bump_results = analyse_benchmark_results(b[\"firefoxBump\"])"
]
},
{
"cell_type": "markdown",
"id": "82f29255-e1b9-4479-b5a8-67b53970c340",
"metadata": {},
"source": [
"### NAR Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f2f00c22-16aa-46d4-adc4-7a7fa2e6431d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(firefox_bump_results, \"NAR\")"
]
},
{
"cell_type": "markdown",
"id": "37f5e393-9b94-43f3-8b85-ff51452dfbac",
"metadata": {},
"source": [
"### Casync Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "faaee019-4783-4030-9fee-a4b217311307",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(firefox_bump_results, \"Casync\")"
]
},
{
"cell_type": "markdown",
"id": "dcd5e58c-64da-4a5e-846a-3c2a91d267a5",
"metadata": {},
"source": [
"### File Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "0cd9d4c5-9258-4b7c-8ab3-78286ee1f365",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(firefox_bump_results, \"File\")"
]
},
{
"cell_type": "markdown",
"id": "6435d681-1db1-40f4-88b9-ccd687397793",
"metadata": {},
"source": [
"### Compressed File Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "b8dd151d-a339-44bc-9a11-cbb6805f1e97",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(firefox_bump_results, \"Compressed File\")"
]
},
{
"cell_type": "markdown",
"id": "07039c9b-6a9a-4901-9c49-ee4095d2a8ac",
"metadata": {},
"source": [
"### Comparing the Substitution Techniques"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "3a1b8d72-b37f-4425-9fe4-c5346cf9cf8c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Name</th>\n",
" <th>Closure Size (MB)</th>\n",
" <th>Downloaded Size (MB)</th>\n",
" <th>Re-used Size (MB)</th>\n",
" <th>DL Savings Compared to NAR (%)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NAR</td>\n",
" <td>219.351904</td>\n",
" <td>56.431531</td>\n",
" <td>162.920373</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Casync</td>\n",
" <td>342.924949</td>\n",
" <td>55.870973</td>\n",
" <td>287.053976</td>\n",
" <td>0.993342</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>File</td>\n",
" <td>946.853440</td>\n",
" <td>249.259020</td>\n",
" <td>723.274748</td>\n",
" <td>-341.701675</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Compressed File</td>\n",
" <td>260.424006</td>\n",
" <td>55.829510</td>\n",
" <td>204.594495</td>\n",
" <td>1.066817</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Name Closure Size (MB) Downloaded Size (MB) \\\n",
"0 NAR 219.351904 56.431531 \n",
"1 Casync 342.924949 55.870973 \n",
"2 File 946.853440 249.259020 \n",
"3 Compressed File 260.424006 55.829510 \n",
"\n",
" Re-used Size (MB) DL Savings Compared to NAR (%) \n",
"0 162.920373 0.000000 \n",
"1 287.053976 0.993342 \n",
"2 723.274748 -341.701675 \n",
"3 204.594495 1.066817 "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"firefox_bump_results"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "1e1eb388-b4ab-400a-90a9-f46bfe4f4541",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_ = firefox_bump_results.plot.bar(figsize=(12,5), x=\"Name\",y=\"Downloaded Size (MB)\",title=\"Volume to Download for the Firefox Version Bump (less is better)\", xlabel=\"\", ylabel=\"Size in MB\")"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "d3886df5-9aaf-4146-8889-5c63c825e916",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_ = firefox_bump_results.plot.bar(figsize=(12,5), x=\"Name\",y=\"DL Savings Compared to NAR (%)\",title=\"DL Savings Compared to NAR (more is better)\", xlabel=\"\", ylabel=\"Savings in %\")"
]
},
{
"cell_type": "markdown",
"id": "76dc2641-3a15-48d2-9334-f4e3c2539f1e",
"metadata": {},
"source": [
"As expected, we don't see any gains (~1%) here."
]
},
{
"cell_type": "markdown",
"id": "6eb4bd07-0430-4e0e-813a-30fcb8a2e375",
"metadata": {},
"source": [
"## 3. Unstable to Stable Channel Jump\n",
"\n",
"In this scenario, we're going to simulate a stable -> unstable jump for the same NixOS machine configuration we used in the mass rebuild simulation."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "2a0cb128-24bf-4714-ab8d-aab8f6cfd291",
"metadata": {},
"outputs": [],
"source": [
"channel_jump_results = analyse_benchmark_results(b[\"channelJump\"])"
]
},
{
"cell_type": "markdown",
"id": "6a5e35af-c62d-4e1b-8732-bfc72c232707",
"metadata": {},
"source": [
"### NAR Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "203c74aa-28b8-4c3c-81e1-1f07595648bf",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(channel_jump_results, \"NAR\")"
]
},
{
"cell_type": "markdown",
"id": "a10bf853-0ee7-488b-a3e3-bfe65a05d839",
"metadata": {},
"source": [
"### Casync Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "73880ec4-caa8-49a3-9e85-2846235f735c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFkCAYAAAB/6MMYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAu1klEQVR4nO3deXxU9b3/8dcnCUvYEhBUluKgsoNLUdHrgrjVNtbaUpde1Ku1bt3u1WvtXK+10+XeG+vGz2pdatVWq616a6tOb9WKgLigpYICIqKNC+CC6JAQEgj5/v74ntQhBZKQSb5zZt7PxyMPJjNzZt4zCe98z/ecOcecc4iISOeVhA4gIlIoVKgiIjmiQhURyREVqohIjqhQRURyRIUqIpIjKlTJKTNLmdndXfC4CTNzZlbWncvmMzO708x+HDqHfEKF2oqZ/bOZ/cXM6sxsjZn9n5kdFjpXW6Ii22xmtdHXCjO7wcyGhs6Wj8ysp5mtNbN+ZjbHzBqin/laM/vdzr5vZnaWmc3fxvU1ZnZM55N3KMeW6DXVmdnfzOwOMxvTgcdQYXeQCjWLmV0MzAL+G9gNGAn8DPhCwFgd8VvnXH9gEPBFYHdgoUp1m44AFjnn6qLvv+mc6wfsDfQDrg6WLHeejV5TBXAMsBH/+zApbKzCpUKNmFkF8EPgG8653znnNjjnNjvnHnbOfSe6z0Fm9qyZfRyNXm8ws57RbWZm15nZ+2aWMbOXzGySmR1oZu9lr26a2QwzWxRdTpnZfWb2q2hkudTMDsi676eiEdMHZvahmd3Q1muJci8FTgU+AP496/HONbOVZrbOzB4ys2HR9T8ws59Gl3uY2QYz+0n0fXk0ghuYtfr8L2b2VjSi+88dvK8nRq/p42gkOD7rtqSZvR697mVm9sWs20rN7Oro8d8Aqlr/vMzsF9HPYZWZ/djMStuzbORzwB+38d59DPwe2C/rucaZ2ePRe/aqmZ2yvdfbHmb2uej11kbZL8m67QQzWxS9X8+Y2T5Zt+1vZn+Nlvst0Ls9z+ec2+Kce90593VgLpDKesz7zezd6Hd2nplNjK4/D5gJXBqNcB+Ort/uz0wA55y+/MdvjweagLId3GcKcDBQBiSAV4B/i277DLAQqAQMGA8MjW5bBnw263EeBP49upwCGvD/wUuB/wGei24rBRYD1wF98f+BDttOthRw9zau/yGwILp8FLAW+DTQC/gpMC/rtpejy/8EvN5qucXR5QTggJ8D5cC+QCMwvnUOYAywATgW6AFcCqwEeka3nwwMw/9hPzW6b8t7dgGwHPgUfsT9ZPS8ZdHtvwduid6XXYHngfPbs2x0n+XA2OjyHOBr0eVdgD8Df4i+7wu8DZwd/dw/Hb2HE7fzczgLmL+N62uAY6LLa4DDo8sDgU9Hlz8NvA9MjX72/xIt1wvoCbwJXBS9l18GNgM/7mCOrwLvtfq+f/Qcs/Cj9pbb7mz9+Dv6menLqVD//kb4v8bvdnCZfwMejC4fBazAF25Jq/t9F/h1dHkQUJ9VHCngz1n3nQBsjC4fgh9hbrfks5ZLse1CvQB4Lbr8C+AnWbf1i/5TJvDl2BAVShK4DHgnus8PgOujZRL4chqR9TjPA6e1zgF8D7gv634lwCrgyO28hkXAF6LLs4ELsm47LnreMvx0TCNQnnX7V4An21o2+n5P4PWs2+dEP5NMdL9FwMjotlOBp1rlvAX4/nZew1m0XahvAecDA1rd5ybgR62uexWYhp+iWA1Y1m3P0PFCPR7YvJ1lKqPXXxF9f+f2Hn9bPzN9Oa3yZ/kQGGw72BJsZmPM7JFoFWk9fq51MIBzbjZwA3Aj8J6Z3WpmA6JF7wY+b2b9gFPw/0HXZD30u1mX64HeUY5PAW8655o68bqGA+uiy8PwoxyizHX41z3cObcR+Auf/Oedi/8Pe2h03dxWj9s6c79tPHfr52vGj/aGA5jZmVmrtx8Dk4jez2jZt7Me682sy3vgR2lrspa9BT9SbWtZ8FMArVf3v+2cqwD2wY8aR2Q919SW54meayawu5mNtE82+rTMxTZF2Vrrgf/jBTADv0byppnNNbNDsp7r31s916ei1zMMWOWiFtvO62qPv/8+RFMj1dEq/Hp86cMnP4N/0MbPrOipUD/xLH6EdtIO7nMTflVxtHNuAH4UZy03Oueud85NASbiV3e/E12/Knr8LwJnAHe1M9PbwMgdlfyOmFkJ8Hngqeiq1fj/tC2398WPSFdFV83Fj7T3B16Ivv8McBAwbycitH4+wxfEKjPbAz9t8E1gF+dcJbCET97PNdF9W4zMuvw2foQ62DlXGX0NcM5NbMey4Mssva3AzrmXgR8DN0Z53wbmZj1PpXOun3PuQufcW9Hlfs5v/AE/+hwZLdvyuvvgy/7N6DlecM59Ibru98B9Wa/rv1o9Vx/n3L3Raxqe/bjbeF3t8UU++X34Z/wG12PwG64SLZFb3o7sBdvxMyt6KtSIcy4DXIH/j3SSmfWJNs58tmXjDH6uaT1QZ2bjgAtblje/8WmqmfXAzys1AFuynuJX+DnEyfg51PZ4Hv8fqdrM+ppZbzM7tK2FotzjgXvxW/qvjW66BzjbzPYzs174EfYC51xNdPtc4ExgmXNuE9HcIvA359wH7cyc7T6gysyOjt6Xf8cX4TP4uUmHn9LAzM7Gj3ayl/22mY0ws4H4aQgAotH9Y8A1ZjbAzErMbC8zm9bWsmZWjv8DMWcHuX+JL7sTgUeAMWZ2RvS+9oh+1uO3s+wC/M8+Gf28+gLV+NH/m+Z315ppZhXOuc3436eW35OfAxdEv0cW/cyrzKw//g9yU/S6yszsS9HraFM0Eh1lfqPjkfgpHPC/z434tZQ++N+HbO/hp0datPUzK3oq1CzOuWuBi4HL8b80b+P/Gv8+ussl+L/qtfhf/t9mLT4guu4j/EjkQ7be9eZB/GjtQefchnbm2YIfYe6NH/m8g5/T255To1XPj4GHogxTnHOro8d7Aj+v+b/4ot4LOC1r+Wfwc6kto9Fl+HLYmdEpzrlXgdPxG7/WRq/l8865Tc65ZcA1+KJ4D/+H5umsxX8OPIrfKPdX4HetHv5M/IaaZfj3/AFgaDuWPRq/O1HDDnJvAq4Hvuecq8XPwZ6GH3G/C1yJ34izrWUb8VMKR+J/Xm/gV9dPyVpdPwOoiVazL4jeI5xzfwHOxU8dfYTfgHdWVqYvRd9/hP89aP2etHZI9PuwHv8HZABwYDQKB/9H/k38Gsoy4LlWy/8CmBCt3v++HT+zomdbT8lIVzKz1/Fbov8cOkuxMrOfAUuccz8LnUUKT0F9FC+fmdkM/OrS7NBZitwi4OHQIaQwaYTaDcxsDn53qDOcc48GjiMiXUSFKiKSI9ooJSKSIypUEZEcUaGKiOSIClVEJEdUqCIiOaJCFRHJERWqiEiO6JNSInlo4cKFu5aVld2GP/iIBj7drxlY0tTU9LUpU6a8396FVKgieaisrOy23XffffyQIUM+Kikp0advullzc7N98MEHE959993b8Ecdaxf95RPJT5OGDBmyXmUaRklJiRsyZEiGDh6eUIUqkp9KVKZhRe9/hzpShSoi21RaWjpl3LhxE/bee++JY8eOnZBKpXbbsmVL2wvupIMOOmjsvHnz+nT2cR555JH+06dP3zvEc2sOVSQGEsn0lFw+Xk111cK27tOrV6/m5cuXLwNYtWpV2cknn7xnJpMpve6661bnMksh0QhVRNo0fPjwpttuu63mjjvu2LW5uZn6+nr78pe/nBgzZsyE8ePHT3j44Yf7A0ybNm3vBQsWlAOMHz9+wiWXXDIU4F//9V+HXXvttYMfeeSR/gcddNDY448/fs9Ro0ZNPPHEE0c1Nzf/w/Pdcsstg8aMGTNh9OjREy+88MLhLdfPnDlz5KRJk8bvvffeEy+66KJhLdc/8MADA0aNGjVxypQpYx944IHKluvXr19fcvLJJycmTZo0fvz48RPuvvvuSoC6ujo74YQT9hwzZsyEqqqqPRsaGnJyXiwVqoi0y4QJEzY1NzezatWqsiuvvHJXgBUrViy755573jjvvPMS9fX
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(channel_jump_results, \"Casync\")"
]
},
{
"cell_type": "markdown",
"id": "56b8480d-e514-44b6-9d8a-58aee25dcd6d",
"metadata": {},
"source": [
"### File Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "18501013-b356-4cf9-9574-f24ce5c8972d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(channel_jump_results, \"File\")"
]
},
{
"cell_type": "markdown",
"id": "14e5e556-7cf3-4adc-a39c-cb2da8d5d2da",
"metadata": {},
"source": [
"### Compressed File Substitution Performance"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "5cabacfc-9712-4918-816f-b9bfbdafb309",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gen_perf_pie(channel_jump_results, \"Compressed File\")"
]
},
{
"cell_type": "markdown",
"id": "2f76e30b-3016-4aa6-a0a6-5c3159a05790",
"metadata": {},
"source": [
"### Comparing the Substitution Techniques"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "9e0cccbb-3372-4663-8af8-51d7bd6c396f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Name</th>\n",
" <th>Closure Size (MB)</th>\n",
" <th>Downloaded Size (MB)</th>\n",
" <th>Re-used Size (MB)</th>\n",
" <th>DL Savings Compared to NAR (%)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NAR</td>\n",
" <td>387.457979</td>\n",
" <td>375.167475</td>\n",
" <td>12.290504</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Casync</td>\n",
" <td>610.885612</td>\n",
" <td>310.540811</td>\n",
" <td>300.344801</td>\n",
" <td>17.226084</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>File</td>\n",
" <td>1658.069335</td>\n",
" <td>861.781638</td>\n",
" <td>817.549735</td>\n",
" <td>-129.705850</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Compressed File</td>\n",
" <td>478.120248</td>\n",
" <td>307.478671</td>\n",
" <td>170.641577</td>\n",
" <td>18.042290</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Name Closure Size (MB) Downloaded Size (MB) \\\n",
"0 NAR 387.457979 375.167475 \n",
"1 Casync 610.885612 310.540811 \n",
"2 File 1658.069335 861.781638 \n",
"3 Compressed File 478.120248 307.478671 \n",
"\n",
" Re-used Size (MB) DL Savings Compared to NAR (%) \n",
"0 12.290504 0.000000 \n",
"1 300.344801 17.226084 \n",
"2 817.549735 -129.705850 \n",
"3 170.641577 18.042290 "
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"channel_jump_results"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "9c1ff374-911d-4f9b-bf62-cb09cdbdf317",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_ = channel_jump_results.plot.bar(figsize=(12,5), x=\"Name\",y=\"Downloaded Size (MB)\",title=\"Volume to Download for the Channel Jump (less is better)\", xlabel=\"\", ylabel=\"Size in MB\")"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "4dcd7cc8-1185-411b-8e30-115f5c5f516b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_ = channel_jump_results.plot.bar(figsize=(12,5), x=\"Name\",y=\"DL Savings Compared to NAR (%)\",title=\"DL Savings Compared to NAR (more is better)\", xlabel=\"\", ylabel=\"Savings in %\")"
]
},
{
"cell_type": "markdown",
"id": "b75a48a8-e66b-46b7-97eb-802a2a674d04",
"metadata": {},
"source": [
"I'm surprised on this one! I did not expect any gains, yet here we are, looking at a 18% improvement for compressed files, 17.2% improvement for Casync. While not amazing, it's big enough to be noticeable."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python3 - python",
"language": "python",
"name": "ipython_python"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"toc-showtags": false
},
"nbformat": 4,
"nbformat_minor": 5
}