PFSE/fig/fig.ipynb

703 lines
351 KiB
Plaintext
Raw Permalink Normal View History

2023-11-19 16:59:53 +08:00
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plot the result of experiment"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"import toml\n",
"import os\n",
"import re\n",
"\n",
"\n",
"def extract_toml_storage(file, type, scheme):\n",
" try:\n",
" content = toml.load(file)\n",
" res = {}\n",
"\n",
" for result in content['perf_result']:\n",
" config = result['config']\n",
" if config['perf_type'] == type and config['fse_type'] == scheme:\n",
" # Bytes -> Megabytes\n",
" client_storage = float(result['result']['client_storage']) / 2**20\n",
" server_stroage = float(result['result']['server_storage']) / 2**20\n",
"\n",
" column_name = config['attributes'][0]\n",
" if not column_name in res:\n",
" res[column_name] = [(client_storage, server_stroage)]\n",
" else:\n",
" res[column_name].append((client_storage, server_stroage))\n",
"\n",
" return res\n",
" except:\n",
" raise Exception(\"Cannot extract toml storage.\")\n",
"\n",
"\n",
"def extract_toml_time(file, type, scheme):\n",
" try:\n",
" content = toml.load(file)\n",
" res = {}\n",
"\n",
" for result in content['perf_result']:\n",
" config = result['config']\n",
" if config['perf_type'] == type and config['fse_type'] == scheme:\n",
" time = result['result']['latency']\n",
" if 'ms' in time:\n",
" time = float(re.sub(r'ms.*', '', time))\n",
" elif 'µs' in time:\n",
" time = float(re.sub(r'µs.*', '', time)) / 1000\n",
" elif 's' in time:\n",
" time = float(re.sub(r's.*', '', time)) * 1000\n",
"\n",
" column_name = config['attributes'][0]\n",
" if not column_name in res:\n",
" res[column_name] = [time]\n",
" else:\n",
" res[column_name].append(time)\n",
"\n",
" return res\n",
" except:\n",
" raise Exception(\"Extract toml time error!\")\n",
"\n",
"\n",
"def analyze_database_performance(name, type, scheme, is_time=True):\n",
" result = []\n",
" path = \"../eval/data/\"\n",
"\n",
" for dirname, subdirlist, filelist in os.walk(path):\n",
" for fname in filelist:\n",
" if name in fname:\n",
" print(\"Scanning {}.\".format(fname))\n",
" full_name = dirname + '/' + fname\n",
" if is_time:\n",
" result.append(extract_toml_time(\n",
" full_name, type, scheme))\n",
" else:\n",
" result.append(extract_toml_storage(\n",
" full_name, type, scheme))\n",
" return result\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scanning query_order_number.toml.\n",
"Scanning query_order_number.toml.\n",
"Scanning query_order_number.toml.\n",
"Scanning query_order_number.toml.\n",
"Scanning query_order_number.toml.\n",
"Scanning query_add_to_cart_order.toml.\n",
"Scanning query_add_to_cart_order.toml.\n",
"Scanning query_add_to_cart_order.toml.\n",
"Scanning query_add_to_cart_order.toml.\n",
"Scanning query_add_to_cart_order.toml.\n",
"Scanning query_order_hour_of_day.toml.\n",
"Scanning query_order_hour_of_day.toml.\n",
"Scanning query_order_hour_of_day.toml.\n",
"Scanning query_order_hour_of_day.toml.\n",
"Scanning query_order_hour_of_day.toml.\n",
"Scanning query_reordered.toml.\n",
"Scanning query_reordered.toml.\n",
"Scanning query_reordered.toml.\n",
"Scanning query_reordered.toml.\n",
"Scanning query_reordered.toml.\n",
"Scanning query_AGEP.toml.\n",
"Scanning query_AGEP.toml.\n",
"Scanning query_AGEP.toml.\n",
"Scanning query_AGEP.toml.\n",
"Scanning query_AGEP.toml.\n",
"Scanning query_SCHL.toml.\n",
"Scanning query_SCHL.toml.\n",
"Scanning query_SCHL.toml.\n",
"Scanning query_SCHL.toml.\n",
"Scanning query_SCHL.toml.\n",
"Scanning query_CIT.toml.\n",
"Scanning query_CIT.toml.\n",
"Scanning query_CIT.toml.\n",
"Scanning query_CIT.toml.\n",
"Scanning query_CIT.toml.\n",
"Scanning query_SEX.toml.\n",
"Scanning query_SEX.toml.\n",
"Scanning query_SEX.toml.\n",
"Scanning query_SEX.toml.\n",
"Scanning query_SEX.toml.\n",
"[294.454944, 859.326204, 645.944533, 823.336006, 838.603832, 671.024721, 1799.793729, 1374.837545, 33298.5653399, 1731.380378, 654.177912, 1972.080418, 904.323555, 1522.968736, 2057.668097, 5827.720990999999, 16676.262923, 8929.007866999998, 9035.446297, 11782.939977, 104.01603, 289.495434, 217.227688, 1291.8749540000001, 249.905529, 592.249971, 1500.415422, 884.390972, 969.133005, 2062.978942, 486.73069, 19825.816617, 2227.817394, 5020.998148000001, 3084.745884, 3682.904983, 11243.33251, 8792.387482, 6264.8058679999995, 12505.35524] ['order_number', 'order_number', 'order_number', 'order_number', 'order_number', 'add_to_cart_order', 'add_to_cart_order', 'add_to_cart_order', 'add_to_cart_order', 'add_to_cart_order', 'order_hour_of_day', 'order_hour_of_day', 'order_hour_of_day', 'order_hour_of_day', 'order_hour_of_day', 'reordered', 'reordered', 'reordered', 'reordered', 'reordered', 'AGEP', 'AGEP', 'AGEP', 'AGEP', 'AGEP', 'SCHL', 'SCHL', 'SCHL', 'SCHL', 'SCHL', 'CIT', 'CIT', 'CIT', 'CIT', 'CIT', 'SEX', 'SEX', 'SEX', 'SEX', 'SEX']\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/ch/7qnxq4517nb4kbts86m0s1mc0000gn/T/ipykernel_26393/1611225344.py:33: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_yticklabels(g.get_yticklabels(), size=18)\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1600x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"columns = ['order_number', 'add_to_cart_order', 'order_hour_of_day',\n",
" 'order_dow', 'AGEP', 'SPORDER', 'CIT', 'SEX']\n",
"schemes = ['DTE', 'RND', 'PFSE', 'IHBE', 'BHE']\n",
"\n",
"xs = []\n",
"ys = []\n",
"for column in columns:\n",
" xs.extend([column] * len(schemes))\n",
" name = 'query_' + column + '.toml'\n",
" ys += analyze_database_performance(\n",
" name, 'query', 'dte')[0][column]\n",
" ys += analyze_database_performance(\n",
" name, 'query', 'rnd')[0][column]\n",
" ys += analyze_database_performance(\n",
" name, 'query', 'pfse')[0][column]\n",
" ys += analyze_database_performance(\n",
" name, 'query', 'lpfse_ihbe')[0][column]\n",
" ys += analyze_database_performance(\n",
" name, 'query', 'lpfse_bhe')[0][column]\n",
"print(ys, xs)\n",
"\n",
"xs = ['\\\\texttt{' + x + '}' for x in xs]\n",
"ys = [np.log2(y) for y in ys]\n",
"hue = schemes * len(columns)\n",
"plt.rc('text', usetex=True)\n",
"plt.figure(figsize=(16, 5))\n",
"\n",
"sns.set(style=\"whitegrid\")\n",
"g = sns.barplot(x=xs, y=ys, hue=hue)\n",
"g.set_xlabel('Attributes', fontsize=18)\n",
"g.set_ylabel('Time (ms) used', fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=16, rotation=15)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"plt.savefig('./query_overall.pdf', bbox_inches='tight')\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Micro - Query on `order_number`"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scanning query_delta_order_number.toml.\n",
"Scanning query_delta_order_number.toml.\n",
"Scanning query_delta_order_number.toml.\n",
"[0.331083, 1.615954, 10.63196, 47.311128, 0.416668, 2.375345, 18.911118, 197.287364, 0.603615, 2.059969, 11.299269, 201.969761, 0.373637, 1.515208, 13.004729, 168.538992, 0.517062, 1.962151, 14.183952, 112.880315, 0.435456, 2.410109, 13.013619, 136.691862, 0.358567, 1.862156, 11.21885, 123.974006]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_344278/4092245949.py:30: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"/tmp/ipykernel_344278/4092245949.py:31: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_yticklabels(g.get_yticklabels(), size=18)\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"xs = ['$10^3$', '$10^4$', '$10^5$', '$10^6$']\n",
"ys = analyze_database_performance('query_delta_order_number.toml', 'query', 'dte')[0]['order_number']\n",
"ys.extend(analyze_database_performance('query_delta_order_number.toml', 'query', 'rnd')[0]['order_number'])\n",
"ys.extend(analyze_database_performance('query_delta_order_number.toml', 'query', 'pfse')[0]['order_number'])\n",
"print(ys)\n",
"ys = [x for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': ys[:4],\n",
" 'RND': ys[4:8],\n",
" '$0.10$': ys[8:12],\n",
" '$0.15$': ys[12:16],\n",
" '$0.20$': ys[16:20],\n",
" '$0.25$': ys[20:24],\n",
" '$0.50$': ys[24:],\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Query Time (ms)', hue='Different choices of $\\lambda$', \n",
" data=pd.melt(df, id_vars=['Dataset Size'], value_name='Query Time (ms)', var_name='Different choices of $\\lambda$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"\n",
"plt.savefig('./query_delta_order_number.pdf', bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scanning insert_f_theta_order_number.toml.\n",
"Scanning insert_f_theta_order_number.toml.\n",
"Scanning insert_f_theta_order_number.toml.\n",
"[10.217312, 86.412612, 647.036143, 6395.552415, 18.173777, 90.030153, 657.537231, 7248.06359, 72.80271, 597.771558, 6546.807453, 72608.35704900001, 51.755608, 494.539068, 4717.65915, 54916.512886, 57.721595, 350.75545, 3954.3801689999996, 45852.847374, 45.24018, 314.793952, 3116.439646, 37555.358657]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_344278/3673942970.py:29: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"/tmp/ipykernel_344278/3673942970.py:30: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_yticklabels(g.get_yticklabels(), size=18)\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"xs = ['$10^3$', '$10^4$', '$10^5$', '$10^6$']\n",
"ys = analyze_database_performance('insert_f_theta_order_number.toml', 'insert', 'dte')[0]['order_number']\n",
"ys.extend(analyze_database_performance('insert_f_theta_order_number.toml', 'insert', 'rnd')[0]['order_number'])\n",
"ys.extend(analyze_database_performance('insert_f_theta_order_number.toml', 'insert', 'pfse')[0]['order_number'])\n",
"print(ys)\n",
"ys = [np.log(x / 1000) for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': ys[:4],\n",
" 'RND': ys[4:8],\n",
" '$0.25$': ys[8:12],\n",
" '$0.50$': ys[12:16],\n",
" '$0.75$': ys[16:20],\n",
" '$1.00$': ys[20:],\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Database Creation Time (s) in $\\log_{10}$', hue='Different choices of $\\lambda$', \n",
" data=pd.melt(df, id_vars=['Dataset Size'], value_name='Database Creation Time (s) in $\\log_{10}$', var_name='Different choices of $\\lambda$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"\n",
"plt.savefig('./insert_f_theta_order_number.pdf', bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scanning insert_f_theta_order_number.toml.\n",
"Scanning insert_f_theta_order_number.toml.\n",
"Scanning insert_f_theta_order_number.toml.\n",
"[(0.0, 0.01171875), (0.0, 0.01171875), (0.0, 0.02734375), (0.0, 2.203125), (0.011595726013183594, 0.01171875), (0.1146240234375, 0.01171875), (1.14459228515625, 0.37890625), (11.44427490234375, 0.40234375), (0.0020732879638671875, 0.01171875), (0.0025177001953125, 0.04296875), (0.0025634765625, 4.18359375), (0.0026092529296875, 357.515625), (0.00197601318359375, 0.01171875), (0.0024700164794921875, 0.08203125), (0.0025177001953125, 1.125), (0.0025177001953125, 297.70703125), (0.0020742416381835938, 0.01171875), (0.0024700164794921875, 0.17578125), (0.00249481201171875, 1.7890625), (0.00249481201171875, 293.83984375), (0.0021734237670898438, 0.01171875), (0.002471923828125, 0.55859375), (0.002471923828125, 4.09765625), (0.002471923828125, 257.12890625)]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_344278/1499625234.py:11: RuntimeWarning: divide by zero encountered in log\n",
" client = [np.log(x[0]) for x in ys]\n",
"/tmp/ipykernel_344278/1499625234.py:30: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"/tmp/ipykernel_344278/1499625234.py:31: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_yticklabels(g.get_yticklabels(), size=18)\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"xs = ['$10^3$', '$10^4$', '$10^5$', '$10^6$']\n",
"ys = analyze_database_performance('insert_f_theta_order_number.toml', 'insert', 'dte', False)[0]['order_number']\n",
"ys.extend(analyze_database_performance('insert_f_theta_order_number.toml', 'insert', 'rnd', False)[0]['order_number'])\n",
"ys.extend(analyze_database_performance('insert_f_theta_order_number.toml', 'insert', 'pfse', False)[0]['order_number'])\n",
"print(ys)\n",
"\n",
"client = [np.log(x[0]) for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': client[:4],\n",
" 'RND': client[4:8],\n",
" '$0.25$': client[8:12],\n",
" '$0.50$': client[12:16],\n",
" '$0.75$': client[16:20],\n",
" '$1.00$': client[20:],\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Client Storage (MB) in $\\log_{10}$', hue='Different choices of $\\lambda$', \n",
" data=pd.melt(df, id_vars=['Dataset Size'], value_name='Client Storage (MB) in $\\log_{10}$', var_name='Different choices of $\\lambda$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"\n",
"plt.savefig('./client_f_theta_order_number.pdf', bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"server = [np.log(x[1]) for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': server[:4],\n",
" 'RND': server[4:8],\n",
" '$0.25$': server[8:12],\n",
" '$0.50$': server[12:16],\n",
" '$0.75$': server[16:20],\n",
" '$1.00$': server[20:],\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Server Storage (MB) in $\\log_{10}$', hue='Different choices of $\\lambda$',\n",
" data=pd.melt(df, id_vars=[\n",
" 'Dataset Size'], value_name='Server Storage (MB) in $\\log_{10}$', var_name='Different choices of $\\lambda$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"plt.savefig('./server_f_theta_order_number.pdf', bbox_inches='tight')\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"xs = ['$10^3$', '$10^4$', '$10^5$', '$10^6$']\n",
"ys = analyze_database_performance('query_delta_order_number.toml', 'query', 'dte')[0]['order_number']\n",
"ys.extend(analyze_database_performance('query_delta_order_number.toml', 'query', 'rnd')[0]['order_number'])\n",
"ys.extend(analyze_database_performance('query_delta_order_number.toml', 'query', 'pfse')[0]['order_number'])\n",
"print(ys)\n",
"ys = [x for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': ys[:4],\n",
" 'RND': ys[4:8],\n",
" '$0.10$': ys[8:12],\n",
" '$0.15$': ys[12:16],\n",
" '$0.20$': ys[16:20],\n",
" '$0.25$': ys[20:24],\n",
" '$0.50$': ys[24:]\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Query Time (ms)', hue='Different choices of $\\delta$', \n",
" data=pd.melt(df, id_vars=['Dataset Size'], value_name='Query Time (ms)', var_name='Different choices of $\\delta$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"\n",
"plt.savefig('./query_delta_order_number.pdf', bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scanning insert_delta_order_number.toml.\n",
"Scanning insert_delta_order_number.toml.\n",
"Scanning insert_delta_order_number.toml.\n",
"[9.963081, 82.005906, 622.069465, 6333.670012, 19.539739, 76.038795, 654.172124, 7412.593431, 53.854808, 515.396865, 4727.524664, 59513.363056, 45.476034, 329.657265, 2929.920556, 32599.707646, 28.166079, 225.429678, 2050.078439, 21866.491586, 27.996326, 177.400563, 1551.654556, 16408.106274, 30.073007, 98.530494, 696.368698, 6814.71917]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_344278/2996116444.py:30: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"/tmp/ipykernel_344278/2996116444.py:31: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" g.set_yticklabels(g.get_yticklabels(), size=18)\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"xs = ['$10^3$', '$10^4$', '$10^5$', '$10^6$']\n",
"ys = analyze_database_performance('insert_delta_order_number.toml', 'insert', 'dte')[0]['order_number']\n",
"ys.extend(analyze_database_performance('insert_delta_order_number.toml', 'insert', 'rnd')[0]['order_number'])\n",
"ys.extend(analyze_database_performance('insert_delta_order_number.toml', 'insert', 'pfse')[0]['order_number'])\n",
"print(ys)\n",
"ys = [np.log(x / 1000) for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': ys[:4],\n",
" 'RND': ys[4:8],\n",
" '$0.10$': ys[8:12],\n",
" '$0.15$': ys[12:16],\n",
" '$0.20$': ys[16:20],\n",
" '$0.25$': ys[20:24],\n",
" '$0.50$': ys[24:]\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Database Creation Time (s) in $\\log_{10}$', hue='Different choices of $\\delta$', \n",
" data=pd.melt(df, id_vars=['Dataset Size'], value_name='Database Creation Time (s) in $\\log_{10}$', var_name='Different choices of $\\delta$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"\n",
"plt.savefig('./insert_delta_order_number.pdf', bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"xs = ['$10^3$', '$10^4$', '$10^5$', '$10^6$']\n",
"ys = analyze_database_performance('insert_delta_order_number2.toml', 'insert', 'dte', False)[0]['order_number']\n",
"ys.extend(analyze_database_performance('insert_delta_order_number2.toml', 'insert', 'rnd', False)[0]['order_number'])\n",
"ys.extend(analyze_database_performance('insert_delta_order_number2.toml', 'insert', 'pfse', False)[0]['order_number'])\n",
"print(ys)\n",
"\n",
"client = [np.log(x[0]) for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': client[:4],\n",
" 'RND': client[4:8],\n",
" '$0.10$': client[8:12],\n",
" '$0.15$': client[12:16],\n",
" '$0.20$': client[16:20],\n",
" '$0.25$': client[20:24],\n",
" '$0.50$': client[24:],\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Client Storage (MB) in $\\log_{10}$', hue='Different choices of $\\delta$', \n",
" data=pd.melt(df, id_vars=['Dataset Size'], value_name='Client Storage (MB) in $\\log_{10}$', var_name='Different choices of $\\delta$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"\n",
"plt.savefig('./client_delta_order_number.pdf', bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"server = [np.log(x[1]) for x in ys]\n",
"\n",
"df = pd.DataFrame({\n",
" 'Dataset Size': xs,\n",
" 'DTE': server[:4],\n",
" 'RND': server[4:8],\n",
" '$0.10$': server[8:12],\n",
" '$0.15$': server[12:16],\n",
" '$0.20$': server[16:20],\n",
" '$0.25$': server[20:24],\n",
" '$0.50$': server[24:],\n",
"})\n",
"\n",
"plt.rc('text', usetex=True)\n",
"sns.set_style(\"whitegrid\")\n",
"g = sns.lineplot(x='Dataset Size', y='Server Storage (MB) in $\\log_{10}$', hue='Different choices of $\\delta$',\n",
" data=pd.melt(df, id_vars=[\n",
" 'Dataset Size'], value_name='Server Storage (MB) in $\\log_{10}$', var_name='Different choices of $\\delta$'),\n",
" marker='o')\n",
"g.set_xlabel(g.get_xlabel(), fontsize=18)\n",
"g.set_ylabel(g.get_ylabel(), fontsize=18)\n",
"g.set_xticklabels(g.get_xticklabels(), size=18)\n",
"g.set_yticklabels(g.get_yticklabels(), size=18)\n",
"\n",
"plt.setp(g.get_legend().get_texts(), fontsize='16') # for legend text\n",
"plt.setp(g.get_legend().get_title(), fontsize='16') # for legend title\n",
"plt.savefig('./server_delta_order_number.pdf', bbox_inches='tight')\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.8.10"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}