diff --git a/.aoi_cache/details.csv b/.aoi_cache/details.csv new file mode 100644 index 0000000..8021818 --- /dev/null +++ b/.aoi_cache/details.csv @@ -0,0 +1,101 @@ +obj_id,access_count,hits,misses,mu,lambda,hit_rate,avg_age +1,1060,347,713,0,1,32.74,0.08679245283018867 +2,3141,1878,1263,0,3,59.79,0.14804202483285578 +3,1060,336,724,0,1,31.7,0.09245283018867924 +4,1053,360,693,0,1,34.19,0.08072174738841406 +5,2073,1033,1040,0,2,49.83,0.1297636275928606 +6,1063,357,706,0,1,33.58,0.07714016933207903 +7,5210,3700,1510,0,5,71.02,0.16756238003838772 +8,1083,367,716,0,1,33.89,0.08033240997229917 +9,1070,360,710,0,1,33.64,0.07570093457943926 +10,1047,341,706,0,1,32.57,0.08118433619866285 +11,2132,1070,1062,0,2,50.19,0.1299249530956848 +12,1090,390,700,0,1,35.78,0.0908256880733945 +13,1081,382,699,0,1,35.34,0.09250693802035152 +14,1029,328,701,0,1,31.88,0.08843537414965986 +15,2099,1040,1059,0,2,49.55,0.12720343020485947 +16,2130,1100,1030,0,2,51.64,0.12347417840375587 +17,1073,375,698,0,1,34.95,0.08294501397949673 +18,1051,352,699,0,1,33.49,0.0960989533777355 +19,3035,1795,1240,0,3,59.14,0.1456342668863262 +20,1037,358,679,0,1,34.52,0.09064609450337512 +21,1069,360,709,0,1,33.68,0.07015902712815715 +22,1061,363,698,0,1,34.21,0.09707822808671066 +23,1092,365,727,0,1,33.42,0.08058608058608059 +24,2163,1112,1051,0,2,51.41,0.12528895053166897 +25,1075,371,704,0,1,34.51,0.08093023255813954 +26,1061,369,692,0,1,34.78,0.08294062205466542 +27,1076,369,707,0,1,34.29,0.08364312267657993 +28,5197,3680,1517,0,5,70.81,0.169905714835482 +29,1065,359,706,0,1,33.71,0.07981220657276995 +30,1033,343,690,0,1,33.2,0.08422071636011616 +31,1013,306,707,0,1,30.21,0.07206317867719644 +32,4160,2742,1418,0,4,65.91,0.1596153846153846 +33,1072,353,719,0,1,32.93,0.08675373134328358 +34,4331,2901,1430,0,4,66.98,0.17293927499422765 +35,1046,334,712,0,1,31.93,0.07934990439770555 +36,1050,348,702,0,1,33.14,0.08761904761904762 +37,1120,393,727,0,1,35.09,0.09642857142857143 +38,3135,1867,1268,0,3,59.55,0.1448165869218501 +39,8478,6794,1684,0,8,80.14,0.19992922859164897 +40,1031,345,686,0,1,33.46,0.07953443258971872 +41,4223,2808,1415,0,4,66.49,0.14965664219748995 +42,4290,2887,1403,0,4,67.3,0.1606060606060606 +43,2029,1024,1005,0,2,50.47,0.12222769837358305 +44,1059,357,702,0,1,33.71,0.07743153918791312 +45,1074,359,715,0,1,33.43,0.07728119180633147 +46,1078,362,716,0,1,33.58,0.07142857142857142 +47,10634,8863,1771,0,10,83.35,0.2097987586985142 +48,1067,349,718,0,1,32.71,0.07685098406747891 +49,1035,360,675,0,1,34.78,0.08985507246376812 +50,1035,335,700,0,1,32.37,0.08019323671497584 +51,5256,3753,1503,0,5,71.4,0.1767503805175038 +52,9399,7660,1739,0,9,81.5,0.2014044047239068 +53,1080,358,722,0,1,33.15,0.06666666666666667 +54,1075,366,709,0,1,34.05,0.08930232558139535 +55,1007,309,698,0,1,30.69,0.09930486593843098 +56,1031,332,699,0,1,32.2,0.07856450048496605 +57,1101,368,733,0,1,33.42,0.08537693006357856 +58,17979,16087,1892,0,17,89.48,0.2267645586517604 +59,2067,1009,1058,0,2,48.81,0.11320754716981132 +60,1118,385,733,0,1,34.44,0.07692307692307693 +61,27500,25538,1962,0,26,92.87,0.22876363636363636 +62,1046,337,709,0,1,32.22,0.06405353728489484 +63,1067,348,719,0,1,32.61,0.10684161199625117 +64,2126,1052,1074,0,2,49.48,0.13734713076199437 +65,1113,375,738,0,1,33.69,0.06558849955076371 +66,10716,8952,1764,0,10,83.54,0.20296752519596864 +67,1093,362,731,0,1,33.12,0.09881061299176579 +68,72910,70855,2055,0,69,97.18,0.23700452612810313 +69,1070,373,697,0,1,34.86,0.10093457943925234 +70,1041,365,676,0,1,35.06,0.08261287223823247 +71,2094,1029,1065,0,2,49.14,0.12129894937917861 +72,1094,358,736,0,1,32.72,0.08135283363802559 +73,1086,358,728,0,1,32.97,0.072744014732965 +74,1128,389,739,0,1,34.49,0.07801418439716312 +75,3074,1815,1259,0,3,59.04,0.15517241379310345 +76,2044,999,1045,0,2,48.87,0.12426614481409001 +77,2144,1074,1070,0,2,50.09,0.11333955223880597 +78,3206,1937,1269,0,3,60.42,0.14597629444791016 +79,15808,13944,1864,0,15,88.21,0.20850202429149797 +80,1045,353,692,0,1,33.78,0.07272727272727272 +81,1027,344,683,0,1,33.5,0.09737098344693282 +82,5309,3800,1509,0,5,71.58,0.17799962328122057 +83,2121,1053,1068,0,2,49.65,0.12965582272512965 +84,1066,354,712,0,1,33.21,0.09287054409005628 +85,1034,322,712,0,1,31.14,0.0725338491295938 +86,2027,1005,1022,0,2,49.58,0.11840157868771584 +87,1106,381,725,0,1,34.45,0.08589511754068715 +88,2056,997,1059,0,2,48.49,0.13764591439688717 +89,1058,340,718,0,1,32.14,0.08034026465028356 +90,1073,353,720,0,1,32.9,0.06616961789375582 +91,2087,1024,1063,0,2,49.07,0.12697652132247245 +92,2048,1009,1039,0,2,49.27,0.11279296875 +93,3171,1908,1263,0,3,60.17,0.15641753390097762 +94,1000,308,692,0,1,30.8,0.072 +95,2119,1083,1036,0,2,51.11,0.11420481359131666 +96,1026,353,673,0,1,34.41,0.09064327485380116 +97,1015,323,692,0,1,31.82,0.07980295566502463 +98,39278,37270,2008,0,37,94.89,0.23626457558938846 +99,4158,2768,1390,0,4,66.57,0.17412217412217412 +100,2084,1019,1065,0,2,48.9,0.12092130518234165 diff --git a/.aoi_cache/hit_age.csv b/.aoi_cache/hit_age.csv new file mode 100644 index 0000000..8635292 --- /dev/null +++ b/.aoi_cache/hit_age.csv @@ -0,0 +1,101 @@ +obj_id,hit_rate,avg_age +1,0.3273584905660377,0.26512968299711814 +2,0.5978987583572111,0.2476038338658147 +3,0.3169811320754717,0.2916666666666667 +4,0.3418803418803419,0.2361111111111111 +5,0.4983116256632899,0.26040658276863504 +6,0.33584195672624645,0.22969187675070027 +7,0.710172744721689,0.23594594594594595 +8,0.33887349953831947,0.23705722070844687 +9,0.3364485981308411,0.225 +10,0.3256924546322827,0.24926686217008798 +11,0.50187617260788,0.2588785046728972 +12,0.3577981651376147,0.25384615384615383 +13,0.35337650323774283,0.2617801047120419 +14,0.31875607385811466,0.2774390243902439 +15,0.49547403525488326,0.2567307692307692 +16,0.5164319248826291,0.2390909090909091 +17,0.3494874184529357,0.23733333333333334 +18,0.33491912464319695,0.2869318181818182 +19,0.5914332784184514,0.24623955431754874 +20,0.3452266152362584,0.26256983240223464 +21,0.33676333021515437,0.20833333333333334 +22,0.34213006597549483,0.2837465564738292 +23,0.3342490842490842,0.2410958904109589 +24,0.5141007859454462,0.24370503597122303 +25,0.34511627906976744,0.23450134770889489 +26,0.3477851083883129,0.23848238482384823 +27,0.3429368029739777,0.24390243902439024 +28,0.7081008274004233,0.23994565217391303 +29,0.3370892018779343,0.23676880222841226 +30,0.33204259438528555,0.2536443148688047 +31,0.3020730503455084,0.238562091503268 +32,0.6591346153846154,0.24215900802334062 +33,0.3292910447761194,0.26345609065155806 +34,0.6698222119602864,0.2581868321268528 +35,0.3193116634799235,0.24850299401197604 +36,0.3314285714285714,0.26436781609195403 +37,0.3508928571428571,0.2748091603053435 +38,0.5955342902711324,0.24317086234600965 +39,0.8013682472281198,0.24948483956432146 +40,0.33462657613967023,0.23768115942028986 +41,0.6649301444470755,0.22507122507122507 +42,0.6729603729603729,0.23865604433668167 +43,0.5046821094135042,0.2421875 +44,0.3371104815864023,0.22969187675070027 +45,0.33426443202979517,0.23119777158774374 +46,0.3358070500927644,0.212707182320442 +47,0.833458717321798,0.2517206363533792 +48,0.3270852858481724,0.2349570200573066 +49,0.34782608695652173,0.25833333333333336 +50,0.32367149758454106,0.24776119402985075 +51,0.714041095890411,0.24753530508926191 +52,0.8149803170550058,0.24712793733681462 +53,0.3314814814814815,0.2011173184357542 +54,0.3404651162790698,0.26229508196721313 +55,0.30685203574975173,0.32362459546925565 +56,0.32201745877788557,0.24397590361445784 +57,0.33424159854677565,0.2554347826086957 +58,0.8947661160242505,0.2534344501771617 +59,0.4881470730527334,0.2319127849355798 +60,0.3443649373881932,0.22337662337662337 +61,0.9286545454545454,0.2463387892552275 +62,0.32217973231357555,0.19881305637982197 +63,0.3261480787253983,0.3275862068965517 +64,0.49482596425211667,0.27756653992395436 +65,0.33692722371967654,0.19466666666666665 +66,0.8353863381858903,0.24296246648793565 +67,0.3311985361390668,0.2983425414364641 +68,0.9718145659031683,0.24387834309505327 +69,0.3485981308411215,0.289544235924933 +70,0.3506243996157541,0.2356164383561644 +71,0.49140401146131807,0.2468415937803693 +72,0.3272394881170018,0.24860335195530725 +73,0.3296500920810313,0.2206703910614525 +74,0.3448581560283688,0.2262210796915167 +75,0.5904359141184125,0.2628099173553719 +76,0.48874755381604695,0.25425425425425424 +77,0.5009328358208955,0.22625698324022347 +78,0.6041796631316282,0.24161073825503357 +79,0.882085020242915,0.23637406769936892 +80,0.33779904306220093,0.21529745042492918 +81,0.3349561830574489,0.29069767441860467 +82,0.7157656809191938,0.24868421052631579 +83,0.49646393210749645,0.2611585944919278 +84,0.3320825515947467,0.2796610169491525 +85,0.3114119922630561,0.2329192546583851 +86,0.4958066107548101,0.23880597014925373 +87,0.3444846292947559,0.24934383202099739 +88,0.48492217898832685,0.283851554663992 +89,0.32136105860113423,0.25 +90,0.32898415657036345,0.20113314447592068 +91,0.490656444657403,0.2587890625 +92,0.49267578125,0.22893954410307235 +93,0.6017029328287606,0.259958071278826 +94,0.308,0.23376623376623376 +95,0.511090136857008,0.2234533702677747 +96,0.34405458089668617,0.26345609065155806 +97,0.31822660098522165,0.25077399380804954 +98,0.9488772340750548,0.2489938288167427 +99,0.6657046657046657,0.2615606936416185 +100,0.48896353166986567,0.24730127576054955 diff --git a/.aoi_cache/lambda_distribution.pdf b/.aoi_cache/lambda_distribution.pdf new file mode 100644 index 0000000..708d39e Binary files /dev/null and b/.aoi_cache/lambda_distribution.pdf differ diff --git a/.aoi_cache/lambda_vs_access_count.pdf b/.aoi_cache/lambda_vs_access_count.pdf new file mode 100644 index 0000000..9a38524 Binary files /dev/null and b/.aoi_cache/lambda_vs_access_count.pdf differ diff --git a/.aoi_cache/objects_in_cache_over_time.pdf b/.aoi_cache/objects_in_cache_over_time.pdf new file mode 100644 index 0000000..e018506 Binary files /dev/null and b/.aoi_cache/objects_in_cache_over_time.pdf differ diff --git a/.aoi_cache/overall_hit_age.csv b/.aoi_cache/overall_hit_age.csv new file mode 100644 index 0000000..31c7d3a --- /dev/null +++ b/.aoi_cache/overall_hit_age.csv @@ -0,0 +1,9 @@ +,hit_rate,avg_age +count,100.0,100.0 +mean,0.45981069707251754,0.24812847494166054 +std,0.1784163653354017,0.02303421599819579 +min,0.3020730503455084,0.19466666666666665 +25%,0.3337018368087684,0.2360698198198198 +50%,0.34650586181228565,0.24698476555859195 +75%,0.5146835706797419,0.25914839632437936 +max,0.9718145659031683,0.3275862068965517 diff --git a/aoi_cache_experiment_eval.ipynb b/aoi_cache_experiment_eval.ipynb index 2892f02..f6f7a2f 100644 --- a/aoi_cache_experiment_eval.ipynb +++ b/aoi_cache_experiment_eval.ipynb @@ -65,17 +65,17 @@ "data": { "text/plain": [ "[{'ttl': '0.5s',\n", - " 'data': {'hit_rate': 0.458669533255314, 'avg_age': 0.2405818161600988}},\n", + " 'data': {'hit_rate': 0.4598106970725175, 'avg_age': 0.2481284749416605}},\n", " {'ttl': '1.0s',\n", - " 'data': {'hit_rate': 0.619673736493892, 'avg_age': 0.4976340127164911}},\n", + " 'data': {'hit_rate': 0.6106589394405821, 'avg_age': 0.5015452422120209}},\n", " {'ttl': '2.0s',\n", - " 'data': {'hit_rate': 0.769815289387402, 'avg_age': 1.0034930453709514}},\n", + " 'data': {'hit_rate': 0.7277601169941756, 'avg_age': 0.9972298475197796}},\n", " {'ttl': '3.0s',\n", - " 'data': {'hit_rate': 0.7906927824364712, 'avg_age': 1.479522176980214}},\n", + " 'data': {'hit_rate': 0.8159040915293513, 'avg_age': 1.4993537506269703}},\n", " {'ttl': '4.0s',\n", - " 'data': {'hit_rate': 0.8461611168860607, 'avg_age': 1.966244726179581}},\n", + " 'data': {'hit_rate': 0.8529286517016675, 'avg_age': 1.9959603082017117}},\n", " {'ttl': '5.0s',\n", - " 'data': {'hit_rate': 0.8689161003980432, 'avg_age': 2.469801316710304}}]" + " 'data': {'hit_rate': 0.8725120313088975, 'avg_age': 2.498238888150122}}]" ] }, "execution_count": 4, @@ -102,7 +102,7 @@ "outputs": [ { "data": { - "image/png": "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bVvrmDFjsp+bzWZrtWrVrJMnT861/5w5c6xlypS57mtOnz7dWrt2bau3t7e1cuXK1nvuuacwS0YpJMm6dOnS6/Z54YUXrI0aNbJrGzx4sLV3797Zz7/66itr48aNrT4+Ptby5ctbe/ToYU1JSXFEyShF/vrrL6sk67p16/Lsc99991n79etn19auXTvr6NGjs5/zsxOOUK5cOeusWbNyPca4RFG6ePGitU6dOtaYmBhrRESEddy4cXn2ZWyiqEycONHarFmzfPcvaWOTme4ikJ6eru3bt+v222/PbnNzc9Ptt9+uzZs353leSkqKatSoobCwsBy/Qd+2bZuefvppvfbaa4qLi9PKlSvVtWtXh34OQJI2b95sN5YlqXfv3tlj+dSpUxo6dKgefvhh/fHHH4qNjVVUVJSsVqszykUJkpSUJEkqX758nn1uND752YnCZjabtWDBAqWmpqpDhw659mFcoiiNGTNG/fr1yzHmcsPYRFE6cOCAqlWrplq1amnYsGE6duxYnn1L2tj0cHYBpcGZM2dkNpsVHBxs1x4cHKx9+/blek69evX0ySefqGnTpkpKStLbb7+tjh07au/evQoNDdWxY8fk7++vO++8U4GBgapRo4ZatGhRFB8HpVxCQkKuYzk5OVmXL1/WqVOnlJmZqaioKNWoUUOS1KRJE2eUihLEYrHomWeeUadOndS4ceM8++U1PhMSEiSJn50oNLt371aHDh105coVBQQEaOnSpWrYsGGufRmXKCoLFizQjh07tHXr1nz1Z2yiqLRr105z585VvXr1dOrUKU2aNEldunTRnj17FBgYmKN/SRubzHS7qA4dOuihhx5S8+bNFRERoSVLlqhSpUr68MMPJUk9e/ZUjRo1VKtWLT344IOaN2+eLl265OSqAalZs2bq0aOHmjRponvvvVcff/yxzp8/7+yyUMyNGTNGe/bs0YIFC27pdfjZicJSr1497dy5U1u2bNETTzyh4cOH6/fff7+p12JcojAcP35c48aN07x58wpt8V3GJgpL3759de+996pp06bq3bu3vv/+e124cEGLFi26qdcrbmOT0F0EKlasKHd3dyUmJtq1JyYmqkqVKvl6DU9PT7Vo0UIHDx6UJAUGBmrHjh368ssvVbVqVb3yyitq1qyZLly4UNjlA3aqVKmS61gOCgqSr6+v3N3dFRMToxUrVqhhw4aaNm2a6tWrpyNHjjipYhR3Y8eO1Xfffae1a9cqNDT0un3zGp9ZP2v52YnC4uXlpdq1a6tVq1aaPHmymjVrpnfffTfXvoxLFIXt27frr7/+UsuWLeXh4SEPDw+tW7dO7733njw8PGQ2m3Ocw9iEs5QtW1Z169bNzjbXKmljk9BdBLy8vNSqVSutXr06u81isWj16tV53v91LbPZrN27d6tq1arZbR4eHrr99tv1f//3f/rtt9/0559/as2aNYVeP3C1Dh062I1lSYqJibEbyyaTSZ06ddKkSZP066+/ysvLS0uXLi3qUlHMWa1WjR07VkuXLtWaNWtUs2bNG56Tn/HJz044gsViUVpaWq7HGJcoCj169NDu3bu1c+fO7Efr1q01bNgw7dy5U+7u7jnOYWzCWVJSUnTo0CG7bHO1kjY2uae7iIwfP17Dhw9X69at1bZtW0VHRys1NVUjR46UJD300EMKCQnR5MmTJUmvvfaa2rdvr9q1a+vChQt66623dPToUT366KOSpO+++06HDx9W165dVa5cOX3//feyWCyqV6+e0z4jiqeUlBS73zIeOXJEO3fuVPny5VW9enVNmDBB8fHx+uyzzyRJjz/+uN5//3298MILevjhh7VmzRotWrRIy5cvlyRt2bJFq1evVq9evVS5cmVt2bJFp0+fVoMGDZzy+VB8jRkzRvPnz9c333yjwMDA7Pu4ypQpI19fX0k5f3aOGzdOEREReuedd9SvXz8tWLBA27Zt00cffSSJn50oHBMmTFDfvn1VvXp1Xbx4UfPnz1dsbGz21omMSzhDYGBgjjUv/P39VaFChex2xiac5fnnn1f//v1Vo0YNnTx5UhMnTpS7u7uGDh0qqRSMTWcvn16aTJs2zVq9enWrl5eXtW3bttaff/45+1hERIR1+PDh2c+feeaZ7L7BwcHWO+64w7pjx47s4xs2bLBGRERYy5UrZ/X19bU2bdrUunDhwqL8OCgh1q5da5WU45E1HocPH26NiIjIcU7z5s2tXl5e1lq1alnnzJmTfez333+39u7d21qpUiWrt7e3tW7dutZp06YV3QdCiZHbuJRkN96u/dlptVqtixYtstatW9fq5eVlbdSokXX58uXZx/jZicLw8MMPW2vUqGH18vKyVqpUydqjRw/rqlWrso8zLuEqrt0yjLEJZxk8eLC1atWqVi8vL2tISIh18ODB1oMHD2YfL+lj02S1so8PAAAAAACOwD3dAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAACUQHFxcapSpYouXrzo7FJuSXh4uKKjo/PVt3379vr6668dWxAAAAVE6AYAwEFMJtN1H926dbvhcalgwTPLhAkT9NRTTykwMLDwP5iLeumll/Tiiy/KYrE4uxQAALJ5OLsAAABKqlOnTmV/vXDhQr3yyiuKi4vLbktPT5eXl5ck6fjx42rbtq1+/PFHNWrUSJKyjxXUsWPH9N1332natGm3UH3x07dvXz366KNasWKF+vXr5+xyAACQxEw3AAAOU6VKlexHmTJlZDKZ7NqqV6+e/XWlSpUkSRUqVMhuK1++/E2976JFi9SsWTOFhIRktx09elT9+/dXuXLl5O/vr0aNGun777/PPr5nzx717dtXAQEBCg4O1oMPPqgzZ85kH7dYLPq///s/1a5dW97e3qpevbr+/e9/Zx/fvXu3unfvLl9fX1WoUEGPPfaYUlJSso+PGDFCAwcO1Ntvv62qVauqQoUKGjNmjDIyMrL7/PXXX+rfv798fX1Vs2ZNzZs3z+5zWa1Wvfrqq6pevbq8vb1VrVo1Pf3009nH3d3ddccdd2jBggU39X0DAMARCN0AAJQwGzZsUOvWre3axowZo7S0NK1fv167d+/Wm2++qYCAAEnShQsX1L17d7Vo0ULbtm3TypUrlZiYqPvuuy/7/AkTJug///mPXn75Zf3++++aP3++goODJUmpqanq3bu3ypUrp61bt+qrr77Sjz/+qLFjx9rVsHbtWh06dEhr167Vp59+qrlz52ru3LnZx0eMGKHjx49r7dq1Wrx4sWbMmKG//vor+/jXX3+tqVOn6sMPP9SBAwe0bNkyNWnSxO492rZtqw0bNhTK9xEAgMLA5eUAAJQwR48ezRG6jx07pnvuuSc7pNaqVSv72Pvvv68WLVrojTfeyG775JNPFBYWpv3796tq1ap699139f7772v48OGSpNtuu02dO3eWJM2fP19XrlzRZ599Jn9//+zX7N+/v958883scF6uXDm9//77cnd3V/369dWvXz+tXr1ao0aN0v79+7VixQr98ssvatOmjSRp9uzZatCg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mwZcIjk52cjOzjb3bTabERYWZsydO7fR8StWrDC6dOnS7DEXL15sREdHG76+vkZQUJDx2GOPtWTIaIckGRs3bmx2zKxZs4z4+HiHtrFjxxppaWnm/vr16417773X8PPzM7p162akpqYadXV1zggZ7Uh1dbUhydi1a1eTY8aMGWNkZGQ4tA0aNMiYOnWquc+1E84QGBho/O1vf2u0j7yEK9XW1hp33323sW3bNiMlJcWYMWNGk2PJTbhKbm6ukZiYeMvj21pustLtAleuXNGhQ4c0fPhws61Dhw4aPny49u7d2+S8uro6RUVFKSIiosFf0A8ePKjp06frpZdeUllZmd577z0NHTrUqecBSNLevXsdclmS0tLSzFyuqqrSuHHjNHnyZB07dkw7d+7UqFGjZPB2QvxIFy5ckCR169atyTE3y0+unWhpNptNa9asUX19vQYPHtzoGPISrpSdna2MjIwGOdcYchOudPz4cYWFhal3794aP368Kioqmhzb1nLT290BtAdnz56VzWZTcHCwQ3twcLD++9//NjonJiZGb7zxhhISEnThwgXNnz9fP/3pT3XkyBGFh4eroqJC/v7++sUvfqGAgABFRUUpKSnJFaeDdu6rr75qNJcvXryoS5cuqaqqSteuXdOoUaMUFRUlSerbt687QkUbYrfblZOToyFDhujee+9tclxT+fnVV19JEtdOtJiSkhINHjxY3377rTp16qSNGzfqnnvuaXQseQlXWbNmjQ4fPqwDBw7c0nhyE64yaNAg5efnKyYmRlVVVXrxxRf1wAMPqLS0VAEBAQ3Gt7XcZKXbQw0ePFgTJ07Ufffdp5SUFG3YsEE9evTQ0qVLJUk///nPFRUVpd69e2vChAlatWqVvvnmGzdHDUiJiYlKTU1V3759NXr0aC1btkznz593d1ho5bKzs1VaWqo1a9b8qONw7URLiYmJUXFxsfbv369f/epXysrK0tGjR3/QschLtITKykrNmDFDq1atarGH75KbaCnp6ekaPXq0EhISlJaWpi1btqimpkbr1q37QcdrbblJ0e0Cd955p7y8vHTmzBmH9jNnzigkJOSWjtGxY0clJSXps88+kyQFBATo8OHD+sc//qHQ0FDNmTNHiYmJqqmpaenwAQchISGN5nLnzp1ltVrl5eWlbdu2aevWrbrnnnu0aNEixcTE6OTJk26K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", + "image/png": "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YWvz9PSU1Wp16Pfll18qLS2tSDW0a9dOt912m9566y1lZmbme89Tp07dsK4qVaqoX79+mjdvnubMmSMfH598e2xfe794YGCgGjZsqOzs7Bu+PgAAZRUz3QAAlILWrVvL09NT//jHP5Seni5fX1/17NlTISEhxXodb29vjRs3Tn/+85+1dOlS9e/fX3fddZdee+01jRo1Sl26dNHWrVs1a9YsNWjQwOHc2267TVWqVNG0adMUFBSkSpUqKSoqSvXr19enn36qAQMGqHnz5ho1apTCwsKUlpampKQkBQcH63//+98Naxs2bJgeeughffjhh+rXr5+qVKnicLxZs2aKiYlRu3btVK1aNW3YsEHz58/X2LFji/VnUFI2bNigv/71r/naY2Ji1K1bNxdUBAAojwjdAACUglq1amnatGmaPHmyfve738lsNispKanYoVuSfv/73+uvf/2r/v73v6t///76y1/+oqysLM2ePVtz585V27ZttXjxYr344osO53l7e+vf//63JkyYoCeffFK5ubmaMWOG6tevr5iYGK1Zs0avv/66PvjgA2VmZqpWrVqKiorSE088UaS67r77bvn7++vChQsaNmxYvuNPP/20vv76ay1btkzZ2dmqV6+e/vrXv+rPf/5zsf8MSsLatWu1du3afO2vv/46oRsAUGJM1muvRwMAAAAAACWCe7oBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJBVun26LxaKjR48qKChIJpPJ1eUAAAAAAMogq9WqCxcuqE6dOvLwKHw+u8KF7qNHjyoiIsLVZQAAAAAAyoHDhw8rPDy80OMVLnQHBQVJMv5ggoODXVxN4XJycrRs2TL17dtX3t7eri4HsGFswl0xNuGuGJtwV4xNuKuyMjYzMjIUERFhy5iFqXChO++S8uDgYLcP3QEBAQoODnbrgYaKh7EJd8XYhLtibMJdMTbhrsra2LzRbcsspAYAAAAAgJMQugEAAAAAcBJCNwAAAADALZjNUkqKSampYUpJMclsdnVFt47QDQAAAABwuYQEKTJS6tPHS1OmtFefPl6KjDTayzJCNwAAAADApRISpKFDpSNHHNvT0oz2shy8Cd0AAAAAAJcxm6Vx4ySrNf+xvLZnnlGZvdS8wm0ZBgAAAAAoWRaLlJkpZWQU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+nbq1ElfffWVcwsCAKCYCN0AADiJyWS67iMmJuaGx6XiBc88EyZM0B//+EcFBQWV/AdzUy+99JJefPFFWSwWV5cCAICNl6sLAACgvDp27Jjt93PnztUrr7yiXbt22dquXLkiHx8fSdLhw4fVsWNHff/992revLkk2Y4V16FDh/TNN9/o/fffv4Xqy54BAwbo8ccf15IlSzRw4EBXlwMAgCRmugEAcJpatWrZHpUrV5bJZHJoq1u3ru33NWvWlCRVr17d1latWrWbet958+apVatWCgsLs7UdPHhQgwYNUtWqVVWpUiU1b95c3377re34tm3bNGDAAAUGBio0NFQPP/ywTp8+bTtusVj0z3/+Uw0bNpSvr6/q1q2rv/3tb7bjW7duVc+ePeXv76/q1avr97//vTIzM23HH330UQ0ZMkRvvfWWateurerVq2vMmDHKycmx9Tl58qQGDRokf39/1a9fX7NmzXL4XFarVa+++qrq1q0rX19f1alTR08//bTtuKenp+68807NmTPnpv7cAABwBkI3AADlzMqVK9W+fXuHtjFjxig7O1upqanaunWr/vGPfygwMFCSdP78efXs2VNt2rTRhg0btHTpUp04cUL333+/7fwJEybo73//u15++WXt2LFDs2fPVmhoqCQpKytL/fr1U9WqVbV+/Xp9+eWX+v777zV27FiHGpKSkrRv3z4lJSXp3//+t2bOnKmZM2fajj/66KM6fPiwkpKSNH/+fH344Yc6efKk7fhXX32ld955Rx999JH27NmjhQsXqkWLFg7v0bFjR61cubJE/hwBACgJXF4OAEA5c/DgwXyh+9ChQ7r33nttIbVBgwa2Yx988IHatGmjN954w9b22WefKSIiQrt371bt2rX17rvv6oMPPtDIkSMlSbfddpu6desmSZo9e7YuX76szz//XJUqVbK95qBBg/SPf/zDFs6rVq2qDz74QJ6enmrSpIkGDhyo5cuXa/To0dq9e7eWLFmidevWqUOHDpKk6dOnq2nTpg6foVatWurdu7e8vb1Vt25ddezY0eFz1qlTR4cPH5bFYpGHB3MLAADX4/9GAACUM5cuXZKfn59D29NPP62//vWv6tq1qyZOnKiff/7ZdmzLli1KSkpSYGCg7dGkSRNJ0r59+/TLL78oOztbvXr1KvD9fvnlF7Vq1coWuCWpa9euslgsDvewN2/eXJ6enrbntWvXts1k//LLL/Ly8lK7du1sx5s0aaIqVarYnt933326dOmSGjRooNGjR2vBggXKzc11qMXf318Wi0XZ2dlF/eMCAMCpCN0AAJQzNWrU0Llz5xzaHn/8cf366696+OGHtXXrVrVv39620FpmZqYGDRqkzZs3Ozz27NmjHj16yN/fv0Tq8vb2dnhuMpmKtdJ4RESEdu3apQ8//FD+/v76wx/+oB49ejjcF3727FlVqlSpxGoGAOBWEboBAChn2rRpox07duRrj4iI0JNPPqmEhAT96U9/0ieffCJJatu2rbZv367IyEg1bNjQ4VGpUiU1atRI/v7+Wr58eYHv17RpU23ZskVZWVm2th9++EEeHh5q3LhxkWpu0qSJcnNztXHjRlvbrl27dP78eYd+/v7+GjRokN577z0lJydrzZo12rp1q+34tm3b1KZNmyK9JwAApYHQDQBAGZCWlpZvJvra2ew8/fr105o1a2Q2m21tzzzzjL777jvt379fmzZtUlJSku1+6TFjxujs2bMaMWKE1q9fr3379um7777TqFGjZDab5efnpxdeeEHPP/+8Pv/8c+3bt08//vijpk+fLkl68MEH5efnp5EjR2rbtm1KSkrSH//4Rz388MO2+7lvpHHjxurfv7+eeOIJrV27Vhs3btTjjz/uMGM9c+ZMTZ8+Xdu2bdOvv/6q//73v/L391e9evVsfVauXKm+ffsW+88XAABnIXQDAFAGvPXWW2rTpo3DY/HixQX2HTBggLy8vPT999/b2sxms8aMGaOmTZuqf//+uv322/Xhhx9KMhYf++GHH2Q2m9W3b1+1aNFCzzzzjKpUqWJbjOzll1/Wn/70J73yyitq2rSphg0bZrsfOyAgQN99953Onj2rDh06aOjQoerVq5c++OCDYn3GGTNmqE6dOoqOjlZcXJx+//vfKyQkxHa8SpUq+uSTT9S1a1e1bNlS33//vf73v/+pevXqkowfTKxevVqjRo0q1vsCAOBMJqvVanV1EQAAoGRNnTpVX3/9tb777jtXl1JqXnjhBZ07d04ff/yxq0sBAMCGLcMAACiHnnjiCZ0/f14XLlxQUFCQq8spFSEhIRo/fryrywAAwAEz3QAAAAAAOAn3dAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAgCL68MMPZTKZFBUV5epSJLlfPc4QExMjk8l0w0dR+7366quSpMjISN11112u/XAAgArBZLVara4uAgCAsqBr1646evSoDhw4oD179qhhw4bU42SJiYk6ceKE7fn69ev13nvv6S9/+YuaNm1qaz9z5oyqV69+w34tW7ZUy5YtFRkZqTvuuEPffPNN6XwQAECF5eXqAgAAKAv279+v1atXKyEhQU888YRmzZqliRMnUo+T9enTx+G5n5+f3nvvPfXp00cxMTGFnlfUfgAAOBuXlwMAUASzZs1S1apVNXDgQA0dOlSzZs2yHcvJyVG1atU0atSofOdlZGTIz89Pzz33nK3t4MGDuvvuu1WpUiWFhITo2Wef1XfffSeTyaTk5ORbrudqZ86c0cMPP6zg4GBVqVJFI0eO1JYtW2QymTRz5kyHvjt37tTQoUNVrVo1+fn5qX379vr666+vW0dxP/v777+v5s2bKyAgQFWrVlX79u01e/bsIn1mAADKIkI3AABFMGvWLMXFxcnHx0cjRozQnj17tH79ekmSt7e37rnnHi1cuFBXrlxxOG/hwoXKzs7W8OHDJUlZWVnq2bOnvv/+ez399NP6v//7P61evVovvPBCidWTx2KxaNCgQfriiy80cuRI/e1vf9OxY8c0cuTIfK+3fft2derUSb/88otefPFFvf3226pUqZKGDBmiBQsWFFpHcT77J598oqefflrNmjVTfHy8Jk2apNatW2vt2rXF+uwAAJQlXF4OAMANbNy4UTt37tT7778vSerWrZvCw8M1a9YsdejQQZI0bNgwffbZZ1q2bJnDAl1z585VgwYN1L59e0nSRx99pF9//VULFy7U4MGDJUlPPPGE2rRpU6L1SEboXbNmjeLj4zVu3DhJ0lNPPZXvkm1JGjdunOrWrav169fL19dXkvSHP/xB3bp10wsvvKB77rmn0HqK+tkXL16s5s2b68svvyzyZwUAoKxjphsAgBuYNWuWQkNDFRsbK0kymUwaNmyY5syZI7PZLEnq2bOnatSooblz59rOO3funBITEzVs2DBb29KlSxUWFqa7777b1ubn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8YZzCwIA4BsidAMA4CQWi6XV7YEHHvjaeembBc9b5s2bp6effloBAQFtf2Ae6pe//KV+8YtfyG63u7sUAABM3u4uAACAjqq6utr8ef369Zo/f74qKyvNsevXr8vHx0eSdPbsWSUlJWnnzp2Ki4uTJHPumzpz5ow2b96spUuXfofq25/09HRNnz5d27ZtU0ZGhrvLAQBAEme6AQBwmr59+5pbjx49ZLFYHMbCw8PNn/v06SNJ6t27tznWq1evb/W6GzZsUEJCgvr162eOnT59WpmZmQoMDJS/v7/i4uK0detWc76iokLp6enq1q2bgoODNWnSJH322WfmvN1u18svv6yoqCj5+voqPDxcv/71r8358vJyjRo1SlarVb1799aTTz6p+vp6c37KlCkaO3asFi1apJCQEPXu3Vs5OTm6ceOGuaampkaZmZmyWq268847tXbtWofjMgxDzz//vMLDw+Xr66vQ0FDNmjXLnPfy8tLDDz+swsLCb/V7AwDAGQjdAAB0MPv27dPQoUMdxnJycnTt2jXt3btX5eXleumll9StWzdJUm1trUaNGqXExEQdPnxYb731li5cuKDHH3/c3H/evHlauHChnnvuOR07dkzr1q1TcHCwJKmhoUFpaWkKDAzUoUOHtHHjRu3cuVMzZ850qKGkpERVVVUqKSnRn//8ZxUUFKigoMCcnzJlis6ePauSkhK9/vrrWr58uWpqasz5N954Q3/4wx+0YsUKnThxQm+++aYGDRrk8BpJSUnat29fm/weAQBoC3y8HACADub06dNNQveZM2f06KOPmiE1MjLSnMvPz1diYqJ+85vfmGOvvfaawsLC9OGHHyokJERLlixRfn6+srOzJUnf//739cMf/lCStG7dOn3xxRdas2aN/P39zefMzMzUSy+9ZIbzwMBA5efny8vLSzExMcrIyFBxcbGeeOIJffjhh9q2bZveffddDRs2TJK0atUqxcbGOhxD3759NXr0aHXt2lXh4eFKSkpyOM7Q0FCdPXtWdrtdXbpwbgEA4H78NQIAoIO5evWq/Pz8HMZmzZqlX/3qV0pOTlZeXp4++OADc+79999XSUmJunXrZm4xMTGSpKqqKh0/flzXrl1Tampqs693/PhxJSQkmIFbkpKTk2W32x2uYY+Li5OXl5f5OCQkxDyTffz4cXl7e2vIkCHmfExMjHr27Gk+HjdunK5evarIyEg98cQTKioq0s2bNx1qsVqtstvtunbt2u3+ugAAcCpCNwAAHcwdd9yhS5cuOYxNnz5dJ0+e1KRJk1ReXq6hQ4eaX7RWX1+vzMxMlZWVOWwnTpzQyJEjZbVa26Surl27Ojy2WCzf6JvGw8LCVFlZqeXLl8tqtepnP/uZRo4c6XBd+MWLF+Xv799mNQMA8F0RugEA6GASExN17NixJuNhYWF66qmntGnTJj3zzDNauXKlJGnw4ME6evSoBgwYoKioKIfN399fd911l6xWq4qLi5t9vdjYWL3//vtqaGgwx95++2116dJF0dHRt1VzTEyMbt68qdLSUnOssrJStbW1DuusVqsyMzP1yiuvaPfu3dq/f7/Ky8vN+YqKCiUmJt7WawIA4AqEbgAA2oFz5841ORP91bPZt6SlpWn//v2y2WzmWG5urrZv365Tp07pyJEjKikpMa+XzsnJ0cWLFzVhwgQdOnRIVVVV2r59u6ZOnSqbzSY/Pz89++yzmjt3rtasWaOqqiodOHBAq1atkiRNnDhRfn5+ys7OVkVFhUpKSvT0009r0qRJ5vXcXyc6OloPPfSQZsyYoYMHD6q0tFTTp093OGNdUFCgVatWqaKiQidPntRf/vIXWa1WRUREmGv27dunMWPGfOPfLwAAzkLoBgCgHVi0aJESExMdti1btjS7Nj09Xd7e3tq5c6c5ZrPZlJOTo9jYWD300EMaOHCgli9fLqnxy8fefvtt2Ww2jRkzRoMGDVJubq569uxpfhnZc889p2eeeUbz589XbGysxo8fb16P/b3vfU/bt2/XxYsXNWzYMD322GNKTU1Vfn7+NzrG1atXKzQ0VCkpKcrKytKTTz6poKAgc75nz55auXKlkpOTFR8fr507d+of//iHevfuLanxHxPvvPOOpk6d+o1eFwAAZ7IYhmG4uwgAANC2li1bpr///e/avn27u0txmWeffVaXLl3Sq6++6u5SAAAwccswAAA6oBkzZqi2tlZ1dXUKCAhwdzkuERQUpDlz5ri7DAAAHHCmGwAAAAAAJ+GabgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAk/wPdr2/4j2T/WwAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -259,6 +259,24 @@ " \n", " 1\n", " 1\n", + " 8\n", + " 32\n", + " 3\n", + " 1\n", + " 1\n", + " \n", + " \n", + " 2\n", + " 3\n", + " 1\n", + " 1\n", + " 1\n", + " 3\n", + " 19\n", + " \n", + " \n", + " 3\n", + " 1\n", " 1\n", " 5\n", " 1\n", @@ -266,31 +284,13 @@ " 1\n", " \n", " \n", - " 2\n", - " 3\n", - " 2\n", - " 2\n", - " 1\n", - " 1\n", - " 1\n", - " \n", - " \n", - " 3\n", - " 1\n", - " 3\n", - " 3\n", - " 1\n", - " 1\n", - " 1\n", - " \n", - " \n", " 4\n", " 1\n", - " 2\n", - " 6\n", + " 3\n", + " 14\n", + " 4\n", + " 1\n", " 1\n", - " 3\n", - " 3\n", " \n", " \n", " 5\n", @@ -315,45 +315,45 @@ " 1\n", " 1\n", " 2\n", - " 45\n", " 1\n", - " 7\n", + " 1\n", + " 1\n", " \n", " \n", " 97\n", " 1\n", - " 3\n", - " 7\n", + " 1\n", + " 2\n", + " 2\n", " 1\n", " 1\n", - " 3\n", " \n", " \n", " 98\n", " 37\n", " 1\n", - " 52\n", + " 1\n", " 2\n", - " 13\n", + " 1\n", " 1\n", " \n", " \n", " 99\n", " 4\n", - " 1\n", - " 18\n", - " 3\n", - " 19\n", " 2\n", + " 1\n", + " 1\n", + " 2\n", + " 1\n", " \n", " \n", " 100\n", " 2\n", + " 4\n", " 1\n", - " 1\n", - " 1\n", - " 1\n", + " 4\n", " 2\n", + " 1\n", " \n", " \n", "\n", @@ -363,17 +363,17 @@ "text/plain": [ " 0.5s 1.0s 2.0s 3.0s 4.0s 5.0s\n", "obj_id \n", - "1 1 1 5 1 1 1\n", - "2 3 2 2 1 1 1\n", - "3 1 3 3 1 1 1\n", - "4 1 2 6 1 3 3\n", + "1 1 8 32 3 1 1\n", + "2 3 1 1 1 3 19\n", + "3 1 1 5 1 1 1\n", + "4 1 3 14 4 1 1\n", "5 2 1 1 1 2 1\n", "... ... ... ... ... ... ...\n", - "96 1 1 2 45 1 7\n", - "97 1 3 7 1 1 3\n", - "98 37 1 52 2 13 1\n", - "99 4 1 18 3 19 2\n", - "100 2 1 1 1 1 2\n", + "96 1 1 2 1 1 1\n", + "97 1 1 2 2 1 1\n", + "98 37 1 1 2 1 1\n", + "99 4 2 1 1 2 1\n", + "100 2 4 1 4 2 1\n", "\n", "[100 rows x 6 columns]" ] @@ -396,7 +396,7 @@ { "data": { "text/plain": [ - "43624" + "372850" ] }, "execution_count": 11, diff --git a/experiments/No_Refresh_0_5s_ttl/details.csv b/experiments/No_Refresh_0_5s_ttl/details.csv index 1d3dd2c..8021818 100644 --- a/experiments/No_Refresh_0_5s_ttl/details.csv +++ b/experiments/No_Refresh_0_5s_ttl/details.csv @@ -1,101 +1,101 @@ obj_id,access_count,hits,misses,mu,lambda,hit_rate,avg_age -1,122,41,81,0,1,33.61,0.02459016393442623 -2,382,235,147,0,3,61.52,0.15706806282722513 -3,127,38,89,0,1,29.92,0.10236220472440945 -4,113,33,80,0,1,29.2,0.08849557522123894 -5,244,121,123,0,2,49.59,0.11065573770491803 -6,116,40,76,0,1,34.48,0.09482758620689655 -7,656,474,182,0,5,72.26,0.16310975609756098 -8,128,39,89,0,1,30.47,0.046875 -9,114,37,77,0,1,32.46,0.08771929824561403 -10,115,33,82,0,1,28.7,0.06956521739130435 -11,246,129,117,0,2,52.44,0.09349593495934959 -12,132,50,82,0,1,37.88,0.08333333333333333 -13,139,50,89,0,1,35.97,0.08633093525179857 -14,120,35,85,0,1,29.17,0.058333333333333334 -15,261,134,127,0,2,51.34,0.13793103448275862 -16,225,109,116,0,2,48.44,0.10666666666666667 -17,120,39,81,0,1,32.5,0.06666666666666667 -18,117,39,78,0,1,33.33,0.07692307692307693 -19,360,213,147,0,3,59.17,0.10277777777777777 -20,117,40,77,0,1,34.19,0.09401709401709402 -21,134,48,86,0,1,35.82,0.07462686567164178 -22,147,55,92,0,1,37.41,0.12244897959183673 -23,142,50,92,0,1,35.21,0.07746478873239436 -24,264,140,124,0,2,53.03,0.10984848484848485 -25,123,42,81,0,1,34.15,0.11382113821138211 -26,141,50,91,0,1,35.46,0.0851063829787234 -27,128,45,83,0,1,35.16,0.0703125 -28,564,390,174,0,5,69.15,0.16666666666666666 -29,133,47,86,0,1,35.34,0.06015037593984962 -30,125,45,80,0,1,36.0,0.096 -31,115,31,84,0,1,26.96,0.06956521739130435 -32,468,308,160,0,4,65.81,0.17094017094017094 -33,116,37,79,0,1,31.9,0.034482758620689655 -34,498,335,163,0,4,67.27,0.18072289156626506 -35,132,39,93,0,1,29.55,0.09848484848484848 -36,100,29,71,0,1,29.0,0.07 -37,149,52,97,0,1,34.9,0.10067114093959731 -38,355,208,147,0,3,58.59,0.16338028169014085 -39,962,766,196,0,8,79.63,0.2047817047817048 -40,128,47,81,0,1,36.72,0.109375 -41,474,306,168,0,4,64.56,0.16666666666666666 -42,495,328,167,0,4,66.26,0.17777777777777778 -43,213,99,114,0,2,46.48,0.08450704225352113 -44,112,32,80,0,1,28.57,0.07142857142857142 -45,129,41,88,0,1,31.78,0.05426356589147287 -46,133,45,88,0,1,33.83,0.07518796992481203 -47,1262,1055,207,0,10,83.6,0.16085578446909668 -48,136,52,84,0,1,38.24,0.10294117647058823 -49,141,59,82,0,1,41.84,0.10638297872340426 -50,119,41,78,0,1,34.45,0.07563025210084033 -51,599,420,179,0,5,70.12,0.17696160267111852 -52,1106,902,204,0,9,81.56,0.20253164556962025 -53,121,35,86,0,1,28.93,0.05785123966942149 -54,131,39,92,0,1,29.77,0.061068702290076333 -55,124,42,82,0,1,33.87,0.12903225806451613 -56,130,48,82,0,1,36.92,0.06923076923076923 -57,124,40,84,0,1,32.26,0.08870967741935484 -58,2118,1897,221,0,17,89.57,0.23937677053824363 -59,205,95,110,0,2,46.34,0.1024390243902439 -60,137,47,90,0,1,34.31,0.072992700729927 -61,3216,2986,230,0,26,92.85,0.23227611940298507 -62,138,48,90,0,1,34.78,0.07971014492753623 -63,117,36,81,0,1,30.77,0.11965811965811966 -64,264,134,130,0,2,50.76,0.10227272727272728 -65,139,52,87,0,1,37.41,0.07913669064748201 -66,1248,1045,203,0,10,83.73,0.20993589743589744 -67,146,52,94,0,1,35.62,0.15753424657534246 -68,8414,8173,241,0,69,97.14,0.24007606370335155 -69,116,36,80,0,1,31.03,0.11206896551724138 -70,120,38,82,0,1,31.67,0.08333333333333333 -71,244,127,117,0,2,52.05,0.0942622950819672 -72,117,35,82,0,1,29.91,0.08547008547008547 -73,131,44,87,0,1,33.59,0.09923664122137404 -74,142,48,94,0,1,33.8,0.056338028169014086 -75,343,197,146,0,3,57.43,0.1836734693877551 -76,250,124,126,0,2,49.6,0.124 -77,253,128,125,0,2,50.59,0.11462450592885376 -78,394,237,157,0,3,60.15,0.15228426395939088 -79,1910,1690,220,0,15,88.48,0.225130890052356 -80,120,34,86,0,1,28.33,0.03333333333333333 -81,121,42,79,0,1,34.71,0.09090909090909091 -82,647,465,182,0,5,71.87,0.17001545595054096 -83,248,126,122,0,2,50.81,0.13709677419354838 -84,144,51,93,0,1,35.42,0.125 -85,108,32,76,0,1,29.63,0.037037037037037035 -86,211,94,117,0,2,44.55,0.08530805687203792 -87,134,49,85,0,1,36.57,0.08208955223880597 -88,224,107,117,0,2,47.77,0.13839285714285715 -89,135,49,86,0,1,36.3,0.1037037037037037 -90,124,35,89,0,1,28.23,0.07258064516129033 -91,240,116,124,0,2,48.33,0.1125 -92,229,108,121,0,2,47.16,0.09606986899563319 -93,393,241,152,0,3,61.32,0.13994910941475827 -94,125,37,88,0,1,29.6,0.032 -95,257,140,117,0,2,54.47,0.08949416342412451 -96,139,47,92,0,1,33.81,0.08633093525179857 -97,127,45,82,0,1,35.43,0.03937007874015748 -98,4578,4343,235,0,37,94.87,0.22804718217562253 -99,482,323,159,0,4,67.01,0.1887966804979253 -100,249,130,119,0,2,52.21,0.11646586345381527 +1,1060,347,713,0,1,32.74,0.08679245283018867 +2,3141,1878,1263,0,3,59.79,0.14804202483285578 +3,1060,336,724,0,1,31.7,0.09245283018867924 +4,1053,360,693,0,1,34.19,0.08072174738841406 +5,2073,1033,1040,0,2,49.83,0.1297636275928606 +6,1063,357,706,0,1,33.58,0.07714016933207903 +7,5210,3700,1510,0,5,71.02,0.16756238003838772 +8,1083,367,716,0,1,33.89,0.08033240997229917 +9,1070,360,710,0,1,33.64,0.07570093457943926 +10,1047,341,706,0,1,32.57,0.08118433619866285 +11,2132,1070,1062,0,2,50.19,0.1299249530956848 +12,1090,390,700,0,1,35.78,0.0908256880733945 +13,1081,382,699,0,1,35.34,0.09250693802035152 +14,1029,328,701,0,1,31.88,0.08843537414965986 +15,2099,1040,1059,0,2,49.55,0.12720343020485947 +16,2130,1100,1030,0,2,51.64,0.12347417840375587 +17,1073,375,698,0,1,34.95,0.08294501397949673 +18,1051,352,699,0,1,33.49,0.0960989533777355 +19,3035,1795,1240,0,3,59.14,0.1456342668863262 +20,1037,358,679,0,1,34.52,0.09064609450337512 +21,1069,360,709,0,1,33.68,0.07015902712815715 +22,1061,363,698,0,1,34.21,0.09707822808671066 +23,1092,365,727,0,1,33.42,0.08058608058608059 +24,2163,1112,1051,0,2,51.41,0.12528895053166897 +25,1075,371,704,0,1,34.51,0.08093023255813954 +26,1061,369,692,0,1,34.78,0.08294062205466542 +27,1076,369,707,0,1,34.29,0.08364312267657993 +28,5197,3680,1517,0,5,70.81,0.169905714835482 +29,1065,359,706,0,1,33.71,0.07981220657276995 +30,1033,343,690,0,1,33.2,0.08422071636011616 +31,1013,306,707,0,1,30.21,0.07206317867719644 +32,4160,2742,1418,0,4,65.91,0.1596153846153846 +33,1072,353,719,0,1,32.93,0.08675373134328358 +34,4331,2901,1430,0,4,66.98,0.17293927499422765 +35,1046,334,712,0,1,31.93,0.07934990439770555 +36,1050,348,702,0,1,33.14,0.08761904761904762 +37,1120,393,727,0,1,35.09,0.09642857142857143 +38,3135,1867,1268,0,3,59.55,0.1448165869218501 +39,8478,6794,1684,0,8,80.14,0.19992922859164897 +40,1031,345,686,0,1,33.46,0.07953443258971872 +41,4223,2808,1415,0,4,66.49,0.14965664219748995 +42,4290,2887,1403,0,4,67.3,0.1606060606060606 +43,2029,1024,1005,0,2,50.47,0.12222769837358305 +44,1059,357,702,0,1,33.71,0.07743153918791312 +45,1074,359,715,0,1,33.43,0.07728119180633147 +46,1078,362,716,0,1,33.58,0.07142857142857142 +47,10634,8863,1771,0,10,83.35,0.2097987586985142 +48,1067,349,718,0,1,32.71,0.07685098406747891 +49,1035,360,675,0,1,34.78,0.08985507246376812 +50,1035,335,700,0,1,32.37,0.08019323671497584 +51,5256,3753,1503,0,5,71.4,0.1767503805175038 +52,9399,7660,1739,0,9,81.5,0.2014044047239068 +53,1080,358,722,0,1,33.15,0.06666666666666667 +54,1075,366,709,0,1,34.05,0.08930232558139535 +55,1007,309,698,0,1,30.69,0.09930486593843098 +56,1031,332,699,0,1,32.2,0.07856450048496605 +57,1101,368,733,0,1,33.42,0.08537693006357856 +58,17979,16087,1892,0,17,89.48,0.2267645586517604 +59,2067,1009,1058,0,2,48.81,0.11320754716981132 +60,1118,385,733,0,1,34.44,0.07692307692307693 +61,27500,25538,1962,0,26,92.87,0.22876363636363636 +62,1046,337,709,0,1,32.22,0.06405353728489484 +63,1067,348,719,0,1,32.61,0.10684161199625117 +64,2126,1052,1074,0,2,49.48,0.13734713076199437 +65,1113,375,738,0,1,33.69,0.06558849955076371 +66,10716,8952,1764,0,10,83.54,0.20296752519596864 +67,1093,362,731,0,1,33.12,0.09881061299176579 +68,72910,70855,2055,0,69,97.18,0.23700452612810313 +69,1070,373,697,0,1,34.86,0.10093457943925234 +70,1041,365,676,0,1,35.06,0.08261287223823247 +71,2094,1029,1065,0,2,49.14,0.12129894937917861 +72,1094,358,736,0,1,32.72,0.08135283363802559 +73,1086,358,728,0,1,32.97,0.072744014732965 +74,1128,389,739,0,1,34.49,0.07801418439716312 +75,3074,1815,1259,0,3,59.04,0.15517241379310345 +76,2044,999,1045,0,2,48.87,0.12426614481409001 +77,2144,1074,1070,0,2,50.09,0.11333955223880597 +78,3206,1937,1269,0,3,60.42,0.14597629444791016 +79,15808,13944,1864,0,15,88.21,0.20850202429149797 +80,1045,353,692,0,1,33.78,0.07272727272727272 +81,1027,344,683,0,1,33.5,0.09737098344693282 +82,5309,3800,1509,0,5,71.58,0.17799962328122057 +83,2121,1053,1068,0,2,49.65,0.12965582272512965 +84,1066,354,712,0,1,33.21,0.09287054409005628 +85,1034,322,712,0,1,31.14,0.0725338491295938 +86,2027,1005,1022,0,2,49.58,0.11840157868771584 +87,1106,381,725,0,1,34.45,0.08589511754068715 +88,2056,997,1059,0,2,48.49,0.13764591439688717 +89,1058,340,718,0,1,32.14,0.08034026465028356 +90,1073,353,720,0,1,32.9,0.06616961789375582 +91,2087,1024,1063,0,2,49.07,0.12697652132247245 +92,2048,1009,1039,0,2,49.27,0.11279296875 +93,3171,1908,1263,0,3,60.17,0.15641753390097762 +94,1000,308,692,0,1,30.8,0.072 +95,2119,1083,1036,0,2,51.11,0.11420481359131666 +96,1026,353,673,0,1,34.41,0.09064327485380116 +97,1015,323,692,0,1,31.82,0.07980295566502463 +98,39278,37270,2008,0,37,94.89,0.23626457558938846 +99,4158,2768,1390,0,4,66.57,0.17412217412217412 +100,2084,1019,1065,0,2,48.9,0.12092130518234165 diff --git a/experiments/No_Refresh_0_5s_ttl/hit_age.csv b/experiments/No_Refresh_0_5s_ttl/hit_age.csv index a07638a..8635292 100644 --- a/experiments/No_Refresh_0_5s_ttl/hit_age.csv +++ b/experiments/No_Refresh_0_5s_ttl/hit_age.csv @@ -1,101 +1,101 @@ obj_id,hit_rate,avg_age -1,0.3360655737704918,0.07317073170731707 -2,0.6151832460732984,0.2553191489361702 -3,0.2992125984251969,0.34210526315789475 -4,0.2920353982300885,0.30303030303030304 -5,0.4959016393442623,0.2231404958677686 -6,0.3448275862068966,0.275 -7,0.7225609756097561,0.22573839662447256 -8,0.3046875,0.15384615384615385 -9,0.32456140350877194,0.2702702702702703 -10,0.28695652173913044,0.24242424242424243 -11,0.524390243902439,0.17829457364341086 -12,0.3787878787878788,0.22 -13,0.3597122302158273,0.24 -14,0.2916666666666667,0.2 -15,0.5134099616858238,0.26865671641791045 -16,0.48444444444444446,0.22018348623853212 -17,0.325,0.20512820512820512 -18,0.3333333333333333,0.23076923076923078 -19,0.5916666666666667,0.17370892018779344 -20,0.3418803418803419,0.275 -21,0.3582089552238806,0.20833333333333334 -22,0.3741496598639456,0.32727272727272727 -23,0.352112676056338,0.22 -24,0.5303030303030303,0.20714285714285716 -25,0.34146341463414637,0.3333333333333333 -26,0.3546099290780142,0.24 -27,0.3515625,0.2 -28,0.6914893617021277,0.24102564102564103 -29,0.3533834586466165,0.1702127659574468 -30,0.36,0.26666666666666666 -31,0.26956521739130435,0.25806451612903225 -32,0.6581196581196581,0.2597402597402597 -33,0.31896551724137934,0.10810810810810811 -34,0.6726907630522089,0.26865671641791045 -35,0.29545454545454547,0.3333333333333333 -36,0.29,0.2413793103448276 -37,0.348993288590604,0.28846153846153844 -38,0.5859154929577465,0.27884615384615385 -39,0.7962577962577962,0.25718015665796345 -40,0.3671875,0.2978723404255319 -41,0.6455696202531646,0.2581699346405229 -42,0.6626262626262627,0.2682926829268293 -43,0.4647887323943662,0.18181818181818182 -44,0.2857142857142857,0.25 -45,0.3178294573643411,0.17073170731707318 -46,0.3383458646616541,0.2222222222222222 -47,0.8359746434231379,0.1924170616113744 -48,0.38235294117647056,0.2692307692307692 -49,0.41843971631205673,0.2542372881355932 -50,0.3445378151260504,0.21951219512195122 -51,0.7011686143572621,0.2523809523809524 -52,0.8155515370705244,0.24833702882483372 -53,0.2892561983471074,0.2 -54,0.29770992366412213,0.20512820512820512 -55,0.3387096774193548,0.38095238095238093 -56,0.36923076923076925,0.1875 -57,0.3225806451612903,0.275 -58,0.8956562795089708,0.2672641012124407 -59,0.4634146341463415,0.22105263157894736 -60,0.34306569343065696,0.2127659574468085 -61,0.9284825870646766,0.25016744809109176 -62,0.34782608695652173,0.22916666666666666 -63,0.3076923076923077,0.3888888888888889 -64,0.5075757575757576,0.20149253731343283 -65,0.37410071942446044,0.21153846153846154 -66,0.8373397435897436,0.2507177033492823 -67,0.3561643835616438,0.4423076923076923 -68,0.9713572617066794,0.24715526734369264 -69,0.3103448275862069,0.3611111111111111 -70,0.31666666666666665,0.2631578947368421 -71,0.5204918032786885,0.18110236220472442 -72,0.29914529914529914,0.2857142857142857 -73,0.33587786259541985,0.29545454545454547 -74,0.3380281690140845,0.16666666666666666 -75,0.5743440233236151,0.3197969543147208 -76,0.496,0.25 -77,0.5059288537549407,0.2265625 -78,0.6015228426395939,0.25316455696202533 -79,0.8848167539267016,0.25443786982248523 -80,0.2833333333333333,0.11764705882352941 -81,0.34710743801652894,0.2619047619047619 -82,0.7187017001545595,0.23655913978494625 -83,0.5080645161290323,0.2698412698412698 -84,0.3541666666666667,0.35294117647058826 -85,0.2962962962962963,0.125 -86,0.44549763033175355,0.19148936170212766 -87,0.3656716417910448,0.22448979591836735 -88,0.47767857142857145,0.2897196261682243 -89,0.362962962962963,0.2857142857142857 -90,0.28225806451612906,0.2571428571428571 -91,0.48333333333333334,0.23275862068965517 -92,0.47161572052401746,0.2037037037037037 -93,0.6132315521628499,0.22821576763485477 -94,0.296,0.10810810810810811 -95,0.5447470817120622,0.16428571428571428 -96,0.3381294964028777,0.2553191489361702 -97,0.3543307086614173,0.1111111111111111 -98,0.9486675404106597,0.24038682938061248 -99,0.6701244813278008,0.28173374613003094 -100,0.5220883534136547,0.2230769230769231 +1,0.3273584905660377,0.26512968299711814 +2,0.5978987583572111,0.2476038338658147 +3,0.3169811320754717,0.2916666666666667 +4,0.3418803418803419,0.2361111111111111 +5,0.4983116256632899,0.26040658276863504 +6,0.33584195672624645,0.22969187675070027 +7,0.710172744721689,0.23594594594594595 +8,0.33887349953831947,0.23705722070844687 +9,0.3364485981308411,0.225 +10,0.3256924546322827,0.24926686217008798 +11,0.50187617260788,0.2588785046728972 +12,0.3577981651376147,0.25384615384615383 +13,0.35337650323774283,0.2617801047120419 +14,0.31875607385811466,0.2774390243902439 +15,0.49547403525488326,0.2567307692307692 +16,0.5164319248826291,0.2390909090909091 +17,0.3494874184529357,0.23733333333333334 +18,0.33491912464319695,0.2869318181818182 +19,0.5914332784184514,0.24623955431754874 +20,0.3452266152362584,0.26256983240223464 +21,0.33676333021515437,0.20833333333333334 +22,0.34213006597549483,0.2837465564738292 +23,0.3342490842490842,0.2410958904109589 +24,0.5141007859454462,0.24370503597122303 +25,0.34511627906976744,0.23450134770889489 +26,0.3477851083883129,0.23848238482384823 +27,0.3429368029739777,0.24390243902439024 +28,0.7081008274004233,0.23994565217391303 +29,0.3370892018779343,0.23676880222841226 +30,0.33204259438528555,0.2536443148688047 +31,0.3020730503455084,0.238562091503268 +32,0.6591346153846154,0.24215900802334062 +33,0.3292910447761194,0.26345609065155806 +34,0.6698222119602864,0.2581868321268528 +35,0.3193116634799235,0.24850299401197604 +36,0.3314285714285714,0.26436781609195403 +37,0.3508928571428571,0.2748091603053435 +38,0.5955342902711324,0.24317086234600965 +39,0.8013682472281198,0.24948483956432146 +40,0.33462657613967023,0.23768115942028986 +41,0.6649301444470755,0.22507122507122507 +42,0.6729603729603729,0.23865604433668167 +43,0.5046821094135042,0.2421875 +44,0.3371104815864023,0.22969187675070027 +45,0.33426443202979517,0.23119777158774374 +46,0.3358070500927644,0.212707182320442 +47,0.833458717321798,0.2517206363533792 +48,0.3270852858481724,0.2349570200573066 +49,0.34782608695652173,0.25833333333333336 +50,0.32367149758454106,0.24776119402985075 +51,0.714041095890411,0.24753530508926191 +52,0.8149803170550058,0.24712793733681462 +53,0.3314814814814815,0.2011173184357542 +54,0.3404651162790698,0.26229508196721313 +55,0.30685203574975173,0.32362459546925565 +56,0.32201745877788557,0.24397590361445784 +57,0.33424159854677565,0.2554347826086957 +58,0.8947661160242505,0.2534344501771617 +59,0.4881470730527334,0.2319127849355798 +60,0.3443649373881932,0.22337662337662337 +61,0.9286545454545454,0.2463387892552275 +62,0.32217973231357555,0.19881305637982197 +63,0.3261480787253983,0.3275862068965517 +64,0.49482596425211667,0.27756653992395436 +65,0.33692722371967654,0.19466666666666665 +66,0.8353863381858903,0.24296246648793565 +67,0.3311985361390668,0.2983425414364641 +68,0.9718145659031683,0.24387834309505327 +69,0.3485981308411215,0.289544235924933 +70,0.3506243996157541,0.2356164383561644 +71,0.49140401146131807,0.2468415937803693 +72,0.3272394881170018,0.24860335195530725 +73,0.3296500920810313,0.2206703910614525 +74,0.3448581560283688,0.2262210796915167 +75,0.5904359141184125,0.2628099173553719 +76,0.48874755381604695,0.25425425425425424 +77,0.5009328358208955,0.22625698324022347 +78,0.6041796631316282,0.24161073825503357 +79,0.882085020242915,0.23637406769936892 +80,0.33779904306220093,0.21529745042492918 +81,0.3349561830574489,0.29069767441860467 +82,0.7157656809191938,0.24868421052631579 +83,0.49646393210749645,0.2611585944919278 +84,0.3320825515947467,0.2796610169491525 +85,0.3114119922630561,0.2329192546583851 +86,0.4958066107548101,0.23880597014925373 +87,0.3444846292947559,0.24934383202099739 +88,0.48492217898832685,0.283851554663992 +89,0.32136105860113423,0.25 +90,0.32898415657036345,0.20113314447592068 +91,0.490656444657403,0.2587890625 +92,0.49267578125,0.22893954410307235 +93,0.6017029328287606,0.259958071278826 +94,0.308,0.23376623376623376 +95,0.511090136857008,0.2234533702677747 +96,0.34405458089668617,0.26345609065155806 +97,0.31822660098522165,0.25077399380804954 +98,0.9488772340750548,0.2489938288167427 +99,0.6657046657046657,0.2615606936416185 +100,0.48896353166986567,0.24730127576054955 diff --git a/experiments/No_Refresh_0_5s_ttl/lambda_distribution.pdf b/experiments/No_Refresh_0_5s_ttl/lambda_distribution.pdf index 1c8b8a1..4be49cb 100644 Binary files a/experiments/No_Refresh_0_5s_ttl/lambda_distribution.pdf and b/experiments/No_Refresh_0_5s_ttl/lambda_distribution.pdf differ diff --git a/experiments/No_Refresh_0_5s_ttl/lambda_vs_access_count.pdf b/experiments/No_Refresh_0_5s_ttl/lambda_vs_access_count.pdf index 55f1f0b..3e7133f 100644 Binary files a/experiments/No_Refresh_0_5s_ttl/lambda_vs_access_count.pdf and b/experiments/No_Refresh_0_5s_ttl/lambda_vs_access_count.pdf differ diff --git a/experiments/No_Refresh_0_5s_ttl/objects_in_cache_over_time.pdf b/experiments/No_Refresh_0_5s_ttl/objects_in_cache_over_time.pdf index ff0321b..7144d73 100644 Binary files a/experiments/No_Refresh_0_5s_ttl/objects_in_cache_over_time.pdf and b/experiments/No_Refresh_0_5s_ttl/objects_in_cache_over_time.pdf differ diff --git a/experiments/No_Refresh_0_5s_ttl/overall_hit_age.csv b/experiments/No_Refresh_0_5s_ttl/overall_hit_age.csv index 516c754..31c7d3a 100644 --- a/experiments/No_Refresh_0_5s_ttl/overall_hit_age.csv +++ b/experiments/No_Refresh_0_5s_ttl/overall_hit_age.csv @@ -1,9 +1,9 @@ ,hit_rate,avg_age count,100.0,100.0 -mean,0.45866953325531407,0.2405818161600988 -std,0.18036841870823853,0.06072706326352597 -min,0.26956521739130435,0.07317073170731707 -25%,0.33524173027989823,0.20663919413919415 -50%,0.3643173023770039,0.24190177638453503 -75%,0.5339140431552882,0.26880022962112515 -max,0.9713572617066794,0.4423076923076923 +mean,0.45981069707251754,0.24812847494166054 +std,0.1784163653354017,0.02303421599819579 +min,0.3020730503455084,0.19466666666666665 +25%,0.3337018368087684,0.2360698198198198 +50%,0.34650586181228565,0.24698476555859195 +75%,0.5146835706797419,0.25914839632437936 +max,0.9718145659031683,0.3275862068965517 diff --git a/experiments/No_Refresh_1_0s_ttl/details.csv b/experiments/No_Refresh_1_0s_ttl/details.csv index e46db5e..9139f6b 100644 --- a/experiments/No_Refresh_1_0s_ttl/details.csv +++ b/experiments/No_Refresh_1_0s_ttl/details.csv @@ -1,101 +1,101 @@ obj_id,access_count,hits,misses,mu,lambda,hit_rate,avg_age -1,127,68,59,0,1,53.54,0.2677165354330709 -2,270,187,83,0,2,69.26,0.3148148148148148 -3,392,296,96,0,3,75.51,0.36989795918367346 -4,221,141,80,0,2,63.8,0.3438914027149321 -5,138,72,66,0,1,52.17,0.2391304347826087 -6,133,69,64,0,1,51.88,0.23308270676691728 -7,361,265,96,0,3,73.41,0.34349030470914127 -8,472,369,103,0,4,78.18,0.3983050847457627 -9,248,160,88,0,2,64.52,0.29838709677419356 -10,114,56,58,0,1,49.12,0.2719298245614035 -11,364,271,93,0,3,74.45,0.3324175824175824 -12,133,68,65,0,1,51.13,0.21052631578947367 -13,115,52,63,0,1,45.22,0.21739130434782608 -14,124,62,62,0,1,50.0,0.14516129032258066 -15,277,188,89,0,2,67.87,0.33212996389891697 -16,1576,1458,118,0,12,92.51,0.48286802030456855 -17,121,58,63,0,1,47.93,0.30578512396694213 -18,272,187,85,0,2,68.75,0.31985294117647056 -19,137,71,66,0,1,51.82,0.24817518248175183 -20,132,65,67,0,1,49.24,0.29545454545454547 -21,129,63,66,0,1,48.84,0.29457364341085274 -22,100,41,59,0,1,41.0,0.17 -23,114,57,57,0,1,50.0,0.21929824561403508 -24,138,66,72,0,1,47.83,0.18840579710144928 -25,126,65,61,0,1,51.59,0.3333333333333333 -26,134,69,65,0,1,51.49,0.2462686567164179 -27,132,65,67,0,1,49.24,0.3181818181818182 -28,144,76,68,0,1,52.78,0.2847222222222222 -29,636,529,107,0,5,83.18,0.38522012578616355 -30,136,71,65,0,1,52.21,0.23529411764705882 -31,119,59,60,0,1,49.58,0.2857142857142857 -32,118,53,65,0,1,44.92,0.2627118644067797 -33,717,609,108,0,6,84.94,0.39748953974895396 -34,118,57,61,0,1,48.31,0.2711864406779661 -35,100,42,58,0,1,42.0,0.24 -36,120,57,63,0,1,47.5,0.20833333333333334 -37,135,68,67,0,1,50.37,0.26666666666666666 -38,138,75,63,0,1,54.35,0.34057971014492755 -39,132,71,61,0,1,53.79,0.21212121212121213 -40,116,55,61,0,1,47.41,0.28448275862068967 -41,479,378,101,0,4,78.91,0.42379958246346555 -42,387,292,95,0,3,75.45,0.35658914728682173 -43,122,60,62,0,1,49.18,0.2540983606557377 -44,255,172,83,0,2,67.45,0.36470588235294116 -45,246,163,83,0,2,66.26,0.3780487804878049 -46,917,807,110,0,7,88.0,0.42748091603053434 -47,128,65,63,0,1,50.78,0.2734375 -48,816,705,111,0,6,86.4,0.4019607843137255 -49,267,183,84,0,2,68.54,0.32209737827715357 -50,145,79,66,0,1,54.48,0.2620689655172414 -51,347,251,96,0,3,72.33,0.345821325648415 -52,912,800,112,0,7,87.72,0.3925438596491228 -53,114,55,59,0,1,48.25,0.2631578947368421 -54,263,178,85,0,2,67.68,0.376425855513308 -55,273,188,85,0,2,68.86,0.3772893772893773 -56,271,188,83,0,2,69.37,0.33210332103321033 -57,2326,2205,121,0,18,94.8,0.4484092863284609 -58,122,56,66,0,1,45.9,0.26229508196721313 -59,129,67,62,0,1,51.94,0.2713178294573643 -60,134,65,69,0,1,48.51,0.22388059701492538 -61,2557,2436,121,0,20,95.27,0.409464215877982 -62,137,76,61,0,1,55.47,0.27007299270072993 -63,665,559,106,0,5,84.06,0.40601503759398494 -64,1412,1295,117,0,11,91.71,0.42209631728045327 -65,904,793,111,0,7,87.72,0.42367256637168144 -66,220,138,82,0,2,62.73,0.33181818181818185 -67,135,72,63,0,1,53.33,0.37777777777777777 -68,138,72,66,0,1,52.17,0.21014492753623187 -69,392,295,97,0,3,75.26,0.32653061224489793 -70,120,64,56,0,1,53.33,0.25 -71,488,387,101,0,4,79.3,0.3790983606557377 -72,230,148,82,0,2,64.35,0.3782608695652174 -73,237,148,89,0,2,62.45,0.3206751054852321 -74,123,61,62,0,1,49.59,0.23577235772357724 -75,127,69,58,0,1,54.33,0.2755905511811024 -76,133,66,67,0,1,49.62,0.2781954887218045 -77,1138,1024,114,0,9,89.98,0.4305799648506151 -78,3671,3548,123,0,29,96.65,0.4652683192590575 -79,128,59,69,0,1,46.09,0.1171875 -80,114,51,63,0,1,44.74,0.2719298245614035 -81,133,68,65,0,1,51.13,0.21052631578947367 -82,246,161,85,0,2,65.45,0.32113821138211385 -83,121,57,64,0,1,47.11,0.256198347107438 -84,234,153,81,0,2,65.38,0.29914529914529914 -85,386,289,97,0,3,74.87,0.35751295336787564 -86,257,170,87,0,2,66.15,0.35019455252918286 -87,132,61,71,0,1,46.21,0.23484848484848486 -88,118,53,65,0,1,44.92,0.11864406779661017 -89,630,521,109,0,5,82.7,0.4523809523809524 -90,131,67,64,0,1,51.15,0.20610687022900764 -91,544,443,101,0,4,81.43,0.40808823529411764 -92,274,188,86,0,2,68.61,0.3357664233576642 -93,141,76,65,0,1,53.9,0.2907801418439716 -94,257,170,87,0,2,66.15,0.377431906614786 -95,1002,889,113,0,8,88.72,0.4550898203592814 -96,137,67,70,0,1,48.91,0.24087591240875914 -97,378,280,98,0,3,74.07,0.3492063492063492 -98,133,67,66,0,1,50.38,0.2631578947368421 -99,115,55,60,0,1,47.83,0.23478260869565218 -100,141,72,69,0,1,51.06,0.2127659574468085 +1,8497,7552,945,0,8,88.88,0.4606331646463458 +2,1059,533,526,0,1,50.33,0.24834749763928235 +3,1114,579,535,0,1,51.97,0.2585278276481149 +4,3208,2416,792,0,3,75.31,0.38154613466334164 +5,1085,547,538,0,1,50.41,0.24792626728110598 +6,72758,71706,1052,0,68,98.55,0.4781329888122268 +7,5291,4397,894,0,5,83.1,0.4379134379134379 +8,2045,1354,691,0,2,66.21,0.3212713936430318 +9,1078,544,534,0,1,50.46,0.23840445269016697 +10,1068,541,527,0,1,50.66,0.25842696629213485 +11,1096,551,545,0,1,50.27,0.2527372262773723 +12,6409,5485,924,0,6,85.58,0.44874395381494775 +13,1052,528,524,0,1,50.19,0.2461977186311787 +14,1047,521,526,0,1,49.76,0.25501432664756446 +15,1067,534,533,0,1,50.05,0.24461105904404873 +16,1004,488,516,0,1,48.61,0.2300796812749004 +17,1034,511,523,0,1,49.42,0.26305609284332687 +18,2189,1476,713,0,2,67.43,0.33805390589310186 +19,1079,545,534,0,1,50.51,0.25301204819277107 +20,3251,2439,812,0,3,75.02,0.3888034450938173 +21,1035,504,531,0,1,48.7,0.24154589371980675 +22,106777,105720,1057,0,100,99.01,0.4812178652706107 +23,1052,524,528,0,1,49.81,0.2623574144486692 +24,1093,556,537,0,1,50.87,0.25434583714547115 +25,1091,550,541,0,1,50.41,0.24289642529789185 +26,2158,1444,714,0,2,66.91,0.34615384615384615 +27,1115,570,545,0,1,51.12,0.273542600896861 +28,1026,496,530,0,1,48.34,0.23391812865497075 +29,1148,601,547,0,1,52.35,0.25435540069686413 +30,1051,518,533,0,1,49.29,0.2445290199809705 +31,4276,3424,852,0,4,80.07,0.3931244153414406 +32,1082,549,533,0,1,50.74,0.2587800369685767 +33,1047,520,527,0,1,49.67,0.25501432664756446 +34,1070,542,528,0,1,50.65,0.25794392523364484 +35,2102,1394,708,0,2,66.32,0.33206470028544244 +36,3123,2337,786,0,3,74.83,0.3682356708293308 +37,1086,544,542,0,1,50.09,0.2605893186003683 +38,16017,15016,1001,0,15,93.75,0.4535181369794593 +39,14803,13809,994,0,14,93.29,0.47882186043369585 +40,1097,551,546,0,1,50.23,0.26071103008204194 +41,9511,8550,961,0,9,89.9,0.43843970139838084 +42,2122,1407,715,0,2,66.31,0.33176248821866167 +43,1032,512,520,0,1,49.61,0.2315891472868217 +44,1072,530,542,0,1,49.44,0.23507462686567165 +45,2067,1361,706,0,2,65.84,0.3217223028543783 +46,4131,3282,849,0,4,79.45,0.3793270394577584 +47,1018,503,515,0,1,49.41,0.2475442043222004 +48,2107,1400,707,0,2,66.45,0.34219269102990035 +49,2089,1375,714,0,2,65.82,0.32168501675442795 +50,3203,2404,799,0,3,75.05,0.3999375585388698 +51,8539,7589,950,0,8,88.87,0.43506265370652303 +52,1011,490,521,0,1,48.47,0.24727992087042533 +53,2127,1426,701,0,2,67.04,0.31969910672308416 +54,1117,580,537,0,1,51.92,0.2739480752014324 +55,1018,494,524,0,1,48.53,0.2593320235756385 +56,1031,498,533,0,1,48.3,0.25897187196896215 +57,3214,2411,803,0,3,75.02,0.3690105787181083 +58,2074,1369,705,0,2,66.01,0.32690453230472516 +59,1093,557,536,0,1,50.96,0.2808783165599268 +60,1110,568,542,0,1,51.17,0.2702702702702703 +61,3122,2330,792,0,3,74.63,0.35490070467648943 +62,1020,500,520,0,1,49.02,0.2519607843137255 +63,1128,572,556,0,1,50.71,0.26773049645390073 +64,1065,524,541,0,1,49.2,0.2300469483568075 +65,1090,557,533,0,1,51.1,0.25871559633027524 +66,1050,522,528,0,1,49.71,0.24666666666666667 +67,1036,520,516,0,1,50.19,0.2528957528957529 +68,1109,569,540,0,1,51.31,0.27051397655545534 +69,2172,1451,721,0,2,66.8,0.3287292817679558 +70,1056,521,535,0,1,49.34,0.2547348484848485 +71,2040,1334,706,0,2,65.39,0.3137254901960784 +72,3181,2376,805,0,3,74.69,0.37346746306193024 +73,4293,3429,864,0,4,79.87,0.3908688562776613 +74,1058,526,532,0,1,49.72,0.2637051039697543 +75,3147,2356,791,0,3,74.86,0.3708293612964728 +76,1000,483,517,0,1,48.3,0.259 +77,1089,549,540,0,1,50.41,0.2433425160697888 +78,82735,81681,1054,0,78,98.73,0.48756874357889646 +79,1065,539,526,0,1,50.61,0.2403755868544601 +80,3172,2376,796,0,3,74.91,0.38871374527112235 +81,1089,541,548,0,1,49.68,0.2460973370064279 +82,2086,1388,698,0,2,66.54,0.32358581016299137 +83,1132,598,534,0,1,52.83,0.2570671378091873 +84,1097,550,547,0,1,50.14,0.2515952597994531 +85,27763,26736,1027,0,26,96.3,0.4707704498793358 +86,1093,549,544,0,1,50.23,0.23787740164684354 +87,1072,551,521,0,1,51.4,0.25 +88,6527,5606,921,0,6,85.89,0.42699555691741997 +89,1083,552,531,0,1,50.97,0.25577100646352724 +90,1096,563,533,0,1,51.37,0.2518248175182482 +91,1066,529,537,0,1,49.62,0.2298311444652908 +92,1051,521,530,0,1,49.57,0.263558515699334 +93,3116,2324,792,0,3,74.58,0.3796534017971759 +94,1061,519,542,0,1,48.92,0.25164938737040526 +95,1079,543,536,0,1,50.32,0.2715477293790547 +96,1080,542,538,0,1,50.19,0.25092592592592594 +97,1059,530,529,0,1,50.05,0.23418319169027385 +98,1049,516,533,0,1,49.19,0.25738798856053385 +99,2158,1438,720,0,2,66.64,0.33086190917516217 +100,4233,3382,851,0,4,79.9,0.40184266477675407 diff --git a/experiments/No_Refresh_1_0s_ttl/hit_age.csv b/experiments/No_Refresh_1_0s_ttl/hit_age.csv index 93f77f1..3e8cdc7 100644 --- a/experiments/No_Refresh_1_0s_ttl/hit_age.csv +++ b/experiments/No_Refresh_1_0s_ttl/hit_age.csv @@ -1,101 +1,101 @@ obj_id,hit_rate,avg_age -1,0.5354330708661418,0.5 -2,0.6925925925925925,0.45454545454545453 -3,0.7551020408163265,0.48986486486486486 -4,0.6380090497737556,0.5390070921985816 -5,0.5217391304347826,0.4583333333333333 -6,0.518796992481203,0.4492753623188406 -7,0.7340720221606648,0.4679245283018868 -8,0.7817796610169492,0.5094850948509485 -9,0.6451612903225806,0.4625 -10,0.49122807017543857,0.5535714285714286 -11,0.7445054945054945,0.44649446494464945 -12,0.5112781954887218,0.4117647058823529 -13,0.45217391304347826,0.4807692307692308 -14,0.5,0.2903225806451613 -15,0.6787003610108303,0.48936170212765956 -16,0.9251269035532995,0.5219478737997256 -17,0.4793388429752066,0.6379310344827587 -18,0.6875,0.46524064171123 -19,0.5182481751824818,0.4788732394366197 -20,0.49242424242424243,0.6 -21,0.4883720930232558,0.6031746031746031 -22,0.41,0.4146341463414634 -23,0.5,0.43859649122807015 -24,0.4782608695652174,0.3939393939393939 -25,0.5158730158730159,0.6461538461538462 -26,0.5149253731343284,0.4782608695652174 -27,0.49242424242424243,0.6461538461538462 -28,0.5277777777777778,0.5394736842105263 -29,0.8317610062893082,0.46313799621928164 -30,0.5220588235294118,0.4507042253521127 -31,0.4957983193277311,0.576271186440678 -32,0.4491525423728814,0.5849056603773585 -33,0.8493723849372385,0.46798029556650245 -34,0.4830508474576271,0.5614035087719298 -35,0.42,0.5714285714285714 -36,0.475,0.43859649122807015 -37,0.5037037037037037,0.5294117647058824 -38,0.5434782608695652,0.6266666666666667 -39,0.5378787878787878,0.39436619718309857 -40,0.47413793103448276,0.6 -41,0.7891440501043842,0.5370370370370371 -42,0.7545219638242894,0.4726027397260274 -43,0.4918032786885246,0.5166666666666667 -44,0.6745098039215687,0.5406976744186046 -45,0.6626016260162602,0.5705521472392638 -46,0.8800436205016358,0.4857496902106567 -47,0.5078125,0.5384615384615384 -48,0.8639705882352942,0.4652482269503546 -49,0.6853932584269663,0.46994535519125685 -50,0.5448275862068965,0.4810126582278481 -51,0.723342939481268,0.47808764940239046 -52,0.8771929824561403,0.4475 -53,0.4824561403508772,0.5454545454545454 -54,0.6768060836501901,0.5561797752808989 -55,0.6886446886446886,0.5478723404255319 -56,0.6937269372693727,0.4787234042553192 -57,0.9479793637145314,0.473015873015873 -58,0.45901639344262296,0.5714285714285714 -59,0.5193798449612403,0.5223880597014925 -60,0.48507462686567165,0.46153846153846156 -61,0.95267892061009,0.42980295566502463 -62,0.5547445255474452,0.4868421052631579 -63,0.8406015037593985,0.48300536672629696 -64,0.9171388101983002,0.46023166023166023 -65,0.8772123893805309,0.48297604035308955 -66,0.6272727272727273,0.5289855072463768 -67,0.5333333333333333,0.7083333333333334 -68,0.5217391304347826,0.4027777777777778 -69,0.7525510204081632,0.43389830508474575 -70,0.5333333333333333,0.46875 -71,0.7930327868852459,0.4780361757105943 -72,0.6434782608695652,0.5878378378378378 -73,0.6244725738396625,0.5135135135135135 -74,0.4959349593495935,0.47540983606557374 -75,0.5433070866141733,0.5072463768115942 -76,0.49624060150375937,0.5606060606060606 -77,0.8998242530755711,0.478515625 -78,0.9664941432852084,0.4813979706877114 -79,0.4609375,0.2542372881355932 -80,0.4473684210526316,0.6078431372549019 -81,0.5112781954887218,0.4117647058823529 -82,0.6544715447154471,0.4906832298136646 -83,0.47107438016528924,0.543859649122807 -84,0.6538461538461539,0.45751633986928103 -85,0.7487046632124352,0.47750865051903113 -86,0.6614785992217899,0.5294117647058824 -87,0.4621212121212121,0.5081967213114754 -88,0.4491525423728814,0.2641509433962264 -89,0.8269841269841269,0.5470249520153551 -90,0.5114503816793893,0.40298507462686567 -91,0.8143382352941176,0.5011286681715575 -92,0.6861313868613139,0.48936170212765956 -93,0.5390070921985816,0.5394736842105263 -94,0.6614785992217899,0.5705882352941176 -95,0.8872255489021956,0.5129358830146231 -96,0.48905109489051096,0.4925373134328358 -97,0.7407407407407407,0.4714285714285714 -98,0.5037593984962406,0.5223880597014925 -99,0.4782608695652174,0.4909090909090909 -100,0.5106382978723404,0.4166666666666667 +1,0.8887842768035777,0.5182733050847458 +2,0.5033050047214354,0.49343339587242024 +3,0.5197486535008977,0.49740932642487046 +4,0.7531172069825436,0.5066225165562914 +5,0.504147465437788,0.49177330895795246 +6,0.9855411088814976,0.48514768638607647 +7,0.831033831033831,0.5269501933136229 +8,0.6621026894865526,0.48522895125553916 +9,0.5046382189239332,0.4724264705882353 +10,0.5065543071161048,0.5101663585951941 +11,0.5027372262773723,0.5027223230490018 +12,0.8558277422374786,0.5243391066545123 +13,0.5019011406844106,0.49053030303030304 +14,0.4976122254059217,0.5124760076775432 +15,0.5004686035613871,0.4887640449438202 +16,0.4860557768924303,0.4733606557377049 +17,0.4941972920696325,0.5322896281800391 +18,0.6742804933759707,0.5013550135501355 +19,0.505097312326228,0.5009174311926605 +20,0.7502306982466933,0.5182451824518245 +21,0.48695652173913045,0.49603174603174605 +22,0.9901008644183672,0.4860291335603481 +23,0.49809885931558934,0.5267175572519084 +24,0.5086916742909423,0.5 +25,0.5041246562786434,0.4818181818181818 +26,0.6691380908248378,0.5173130193905817 +27,0.5112107623318386,0.5350877192982456 +28,0.4834307992202729,0.4838709677419355 +29,0.5235191637630662,0.4858569051580699 +30,0.4928639391056137,0.49613899613899615 +31,0.8007483629560337,0.490946261682243 +32,0.5073937153419593,0.5100182149362478 +33,0.49665711556829034,0.5134615384615384 +34,0.5065420560747663,0.5092250922509225 +35,0.6631779257849667,0.5007173601147776 +36,0.7483189241114313,0.49208386820710315 +37,0.5009208103130756,0.5202205882352942 +38,0.9375039021040145,0.4837506659563133 +39,0.9328514490306019,0.5132884350785719 +40,0.5022789425706472,0.5190562613430127 +41,0.8989590999894859,0.48771929824561405 +42,0.6630537229029217,0.5003553660270078 +43,0.49612403100775193,0.466796875 +44,0.4944029850746269,0.47547169811320755 +45,0.6584421867440735,0.4886113152094049 +46,0.794480755265069,0.4774527726995734 +47,0.49410609037328096,0.5009940357852882 +48,0.6644518272425249,0.515 +49,0.6582096696984203,0.48872727272727273 +50,0.7505463627848892,0.5328618968386023 +51,0.8887457547722216,0.4895243115034919 +52,0.4846686449060336,0.5102040816326531 +53,0.6704278326281147,0.47685834502103785 +54,0.5192479856759177,0.5275862068965518 +55,0.48526522593320237,0.5344129554655871 +56,0.4830261881668283,0.536144578313253 +57,0.7501555693839452,0.49191206968063045 +58,0.6600771456123433,0.4952520087655223 +59,0.5096065873741995,0.5511669658886894 +60,0.5117117117117117,0.528169014084507 +61,0.7463164638052531,0.4755364806866953 +62,0.49019607843137253,0.514 +63,0.5070921985815603,0.527972027972028 +64,0.492018779342723,0.4675572519083969 +65,0.5110091743119266,0.5062836624775583 +66,0.49714285714285716,0.49616858237547895 +67,0.5019305019305019,0.5038461538461538 +68,0.5130748422001803,0.5272407732864675 +69,0.66804788213628,0.49207443142660234 +70,0.4933712121212121,0.5163147792706334 +71,0.653921568627451,0.47976011994003 +72,0.7469349261238605,0.5 +73,0.7987421383647799,0.489355497229513 +74,0.497164461247637,0.5304182509505704 +75,0.7486495074674293,0.4953310696095076 +76,0.483,0.5362318840579711 +77,0.5041322314049587,0.48269581056466304 +78,0.9872605306097783,0.4938602612602686 +79,0.5061032863849765,0.4749536178107607 +80,0.7490542244640606,0.5189393939393939 +81,0.4967860422405877,0.4953789279112754 +82,0.6653883029721956,0.48631123919308356 +83,0.5282685512367491,0.4866220735785953 +84,0.5013673655423884,0.5018181818181818 +85,0.9630083204264669,0.48885397965290245 +86,0.5022872827081427,0.47358834244080145 +87,0.5139925373134329,0.4863883847549909 +88,0.8588938256473112,0.49714591509097394 +89,0.5096952908587258,0.5018115942028986 +90,0.5136861313868614,0.49023090586145646 +91,0.49624765478424016,0.46313799621928164 +92,0.49571836346336823,0.5316698656429942 +93,0.7458279845956355,0.5090361445783133 +94,0.4891611687087653,0.5144508670520231 +95,0.5032437442075997,0.5395948434622467 +96,0.5018518518518519,0.5 +97,0.5004721435316336,0.4679245283018868 +98,0.4918970448045758,0.5232558139534884 +99,0.6663577386468953,0.4965229485396384 +100,0.7989605480746516,0.502956830277942 diff --git a/experiments/No_Refresh_1_0s_ttl/lambda_distribution.pdf b/experiments/No_Refresh_1_0s_ttl/lambda_distribution.pdf index 99600af..3f8fc47 100644 Binary files a/experiments/No_Refresh_1_0s_ttl/lambda_distribution.pdf and b/experiments/No_Refresh_1_0s_ttl/lambda_distribution.pdf differ diff --git a/experiments/No_Refresh_1_0s_ttl/lambda_vs_access_count.pdf b/experiments/No_Refresh_1_0s_ttl/lambda_vs_access_count.pdf index 60a1598..cc0ec1f 100644 Binary files a/experiments/No_Refresh_1_0s_ttl/lambda_vs_access_count.pdf and b/experiments/No_Refresh_1_0s_ttl/lambda_vs_access_count.pdf differ diff --git a/experiments/No_Refresh_1_0s_ttl/objects_in_cache_over_time.pdf b/experiments/No_Refresh_1_0s_ttl/objects_in_cache_over_time.pdf index fa69997..9945c7c 100644 Binary files a/experiments/No_Refresh_1_0s_ttl/objects_in_cache_over_time.pdf and b/experiments/No_Refresh_1_0s_ttl/objects_in_cache_over_time.pdf differ diff --git a/experiments/No_Refresh_1_0s_ttl/overall_hit_age.csv b/experiments/No_Refresh_1_0s_ttl/overall_hit_age.csv index 6a19fba..a4713e0 100644 --- a/experiments/No_Refresh_1_0s_ttl/overall_hit_age.csv +++ b/experiments/No_Refresh_1_0s_ttl/overall_hit_age.csv @@ -1,9 +1,9 @@ ,hit_rate,avg_age count,100.0,100.0 -mean,0.619673736493892,0.4976340127164911 -std,0.15169157416583476,0.07281557921922656 -min,0.41,0.2542372881355932 -25%,0.4959007993441279,0.46297849716446127 -50%,0.5411570894063774,0.48810190369540873 -75%,0.7357392018056838,0.5397796817625459 -max,0.9664941432852084,0.7083333333333334 +mean,0.6106589394405821,0.5015452422120209 +std,0.15132826274882488,0.019318631378919444 +min,0.483,0.46313799621928164 +25%,0.4998761674999377,0.48838831096845714 +50%,0.5103522325853262,0.5 +75%,0.7459501043980399,0.5153286948176583 +max,0.9901008644183672,0.5511669658886894 diff --git a/experiments/No_Refresh_2_0s_ttl/details.csv b/experiments/No_Refresh_2_0s_ttl/details.csv index b1771ff..153ca8e 100644 --- a/experiments/No_Refresh_2_0s_ttl/details.csv +++ b/experiments/No_Refresh_2_0s_ttl/details.csv @@ -1,101 +1,101 @@ obj_id,access_count,hits,misses,mu,lambda,hit_rate,avg_age -1,591,535,56,0,5,90.52,0.9560067681895094 -2,244,197,47,0,2,80.74,0.7704918032786885 -3,361,307,54,0,3,85.04,0.9362880886426593 -4,736,679,57,0,6,92.26,0.938858695652174 -5,100,62,38,0,1,62.0,0.61 -6,628,571,57,0,5,90.92,0.8949044585987261 -7,123,85,38,0,1,69.11,0.7398373983739838 -8,128,83,45,0,1,64.84,0.5625 -9,1379,1320,59,0,11,95.72,0.9564902102973168 -10,1003,945,58,0,8,94.22,1.0259222333000997 -11,122,78,44,0,1,63.93,0.639344262295082 -12,117,75,42,0,1,64.1,0.6239316239316239 -13,148,106,42,0,1,71.62,0.7364864864864865 -14,108,70,38,0,1,64.81,0.7407407407407407 -15,257,209,48,0,2,81.32,0.7665369649805448 -16,106,67,39,0,1,63.21,0.5754716981132075 -17,507,452,55,0,4,89.15,0.8086785009861933 -18,128,87,41,0,1,67.97,0.71875 -19,518,464,54,0,4,89.58,0.8378378378378378 -20,112,72,40,0,1,64.29,0.625 -21,137,96,41,0,1,70.07,0.7591240875912408 -22,899,841,58,0,7,93.55,0.9365962180200222 -23,2525,2465,60,0,20,97.62,0.9275247524752476 -24,113,75,38,0,1,66.37,0.6902654867256637 -25,375,322,53,0,3,85.87,0.904 -26,129,88,41,0,1,68.22,0.7364341085271318 -27,123,84,39,0,1,68.29,0.6097560975609756 -28,1328,1270,58,0,11,95.63,1.0135542168674698 -29,1062,1004,58,0,9,94.54,0.8907721280602636 -30,124,83,41,0,1,66.94,0.6693548387096774 -31,249,200,49,0,2,80.32,0.8353413654618473 -32,250,201,49,0,2,80.4,0.76 -33,602,546,56,0,5,90.7,0.9069767441860465 -34,120,80,40,0,1,66.67,0.6666666666666666 -35,124,86,38,0,1,69.35,0.8387096774193549 -36,117,73,44,0,1,62.39,0.6153846153846154 -37,134,92,42,0,1,68.66,0.6492537313432836 -38,250,200,50,0,2,80.0,0.76 -39,121,78,43,0,1,64.46,0.6694214876033058 -40,128,82,46,0,1,64.06,0.78125 -41,103,63,40,0,1,61.17,0.5922330097087378 -42,570,514,56,0,4,90.18,0.8175438596491228 -43,375,322,53,0,3,85.87,0.9173333333333333 -44,119,82,37,0,1,68.91,0.7142857142857143 -45,115,76,39,0,1,66.09,0.6434782608695652 -46,254,206,48,0,2,81.1,0.8385826771653543 -47,243,191,52,0,2,78.6,0.7818930041152263 -48,107,68,39,0,1,63.55,0.616822429906542 -49,131,88,43,0,1,67.18,0.6870229007633588 -50,130,87,43,0,1,66.92,0.6076923076923076 -51,259,209,50,0,2,80.69,0.7722007722007722 -52,134,90,44,0,1,67.16,0.6716417910447762 -53,112,68,44,0,1,60.71,0.5357142857142857 -54,958,901,57,0,8,94.05,1.024008350730689 -55,140,97,43,0,1,69.29,0.7142857142857143 -56,2363,2303,60,0,19,97.46,0.9767245027507406 -57,112,72,40,0,1,64.29,0.7142857142857143 -58,108,67,41,0,1,62.04,0.6296296296296297 -59,252,202,50,0,2,80.16,0.7976190476190477 -60,2578,2518,60,0,22,97.67,0.951900698215671 -61,279,227,52,0,2,81.36,0.7383512544802867 -62,1070,1012,58,0,9,94.58,0.9271028037383178 -63,485,430,55,0,4,88.66,0.8412371134020619 -64,261,210,51,0,2,80.46,0.8467432950191571 -65,262,214,48,0,2,81.68,0.7824427480916031 -66,112,71,41,0,1,63.39,0.625 -67,350,297,53,0,3,84.86,0.82 -68,506,451,55,0,4,89.13,0.8695652173913043 -69,258,209,49,0,2,81.01,0.7364341085271318 -70,121,84,37,0,1,69.42,0.8181818181818182 -71,1424,1365,59,0,12,95.86,0.9824438202247191 -72,126,85,41,0,1,67.46,0.5793650793650794 -73,137,94,43,0,1,68.61,0.6788321167883211 -74,481,426,55,0,4,88.57,1.0395010395010396 -75,116,77,39,0,1,66.38,0.75 -76,111,70,41,0,1,63.06,0.6936936936936937 -77,115,75,40,0,1,65.22,0.7217391304347827 -78,489,435,54,0,4,88.96,0.9079754601226994 -79,133,91,42,0,1,68.42,0.6616541353383458 -80,133,89,44,0,1,66.92,0.7443609022556391 -81,214,165,49,0,2,77.1,0.6495327102803738 -82,345,291,54,0,3,84.35,0.8869565217391304 -83,123,80,43,0,1,65.04,0.6910569105691057 -84,125,81,44,0,1,64.8,0.656 -85,129,89,40,0,1,68.99,0.6666666666666666 -86,108,70,38,0,1,64.81,0.6018518518518519 -87,121,78,43,0,1,64.46,0.7024793388429752 -88,261,213,48,0,2,81.61,0.7739463601532567 -89,363,310,53,0,3,85.4,0.8705234159779615 -90,1132,1074,58,0,9,94.88,0.950530035335689 -91,127,85,42,0,1,66.93,0.5905511811023622 -92,114,77,37,0,1,67.54,0.6842105263157895 -93,343,290,53,0,3,84.55,0.880466472303207 -94,132,90,42,0,1,68.18,0.696969696969697 -95,365,313,52,0,3,85.75,0.8821917808219178 -96,257,208,49,0,2,80.93,0.7120622568093385 -97,880,823,57,0,7,93.52,1.0261363636363636 -98,6417,6356,61,0,52,99.05,0.8669160043634097 -99,2246,2186,60,0,18,97.33,0.9541406945681211 -100,110,73,37,0,1,66.36,0.5909090909090909 +1,34341,33813,528,0,32,98.46,0.9879153198800268 +2,1078,716,362,0,1,66.42,0.6781076066790352 +3,5386,4900,486,0,5,90.98,0.8821017452655031 +4,15013,14494,519,0,14,96.54,0.9555052288017052 +5,1042,689,353,0,1,66.12,0.6180422264875239 +6,3175,2719,456,0,3,85.64,0.8620472440944882 +7,1046,693,353,0,1,66.25,0.6759082217973231 +8,2109,1679,430,0,2,79.61,0.7652916073968705 +9,3328,2863,465,0,3,86.03,0.8572716346153846 +10,1105,752,353,0,1,68.05,0.6760180995475114 +11,2158,1730,428,0,2,80.17,0.7873030583873958 +12,1069,708,361,0,1,66.23,0.6557530402245089 +13,1076,713,363,0,1,66.26,0.6756505576208178 +14,1102,741,361,0,1,67.24,0.6542649727767695 +15,1054,703,351,0,1,66.7,0.6764705882352942 +16,1088,728,360,0,1,66.91,0.6387867647058824 +17,1103,739,364,0,1,67.0,0.6772438803263826 +18,1091,726,365,0,1,66.54,0.6269477543538039 +19,1065,712,353,0,1,66.85,0.6835680751173709 +20,1087,726,361,0,1,66.79,0.6669733210671573 +21,1060,698,362,0,1,65.85,0.6679245283018868 +22,4199,3722,477,0,4,88.64,0.8994998809240295 +23,1096,735,361,0,1,67.06,0.666058394160584 +24,1057,689,368,0,1,65.18,0.6811731315042573 +25,1036,681,355,0,1,65.73,0.6766409266409267 +26,4312,3833,479,0,4,88.89,0.8919294990723562 +27,2200,1772,428,0,2,80.55,0.7895454545454546 +28,1042,688,354,0,1,66.03,0.6746641074856046 +29,1095,737,358,0,1,67.31,0.6940639269406392 +30,2176,1742,434,0,2,80.06,0.7886029411764706 +31,1000,654,346,0,1,65.4,0.63 +32,1069,706,363,0,1,66.04,0.6950420954162769 +33,1075,705,370,0,1,65.58,0.6827906976744186 +34,1119,752,367,0,1,67.2,0.6586237712243074 +35,1129,763,366,0,1,67.58,0.6634189548272807 +36,1057,700,357,0,1,66.23,0.6357615894039735 +37,2166,1731,435,0,2,79.92,0.8125577100646353 +38,1089,735,354,0,1,67.49,0.657483930211203 +39,11957,11444,513,0,11,95.71,0.9723174709375262 +40,2166,1732,434,0,2,79.96,0.7488457987072945 +41,1084,725,359,0,1,66.88,0.6595940959409594 +42,2131,1703,428,0,2,79.92,0.8047864852182074 +43,1085,721,364,0,1,66.45,0.6626728110599078 +44,24442,23916,526,0,23,97.85,0.9847802962114394 +45,2086,1660,426,0,2,79.58,0.7761265580057526 +46,1067,709,358,0,1,66.45,0.669165885660731 +47,1073,722,351,0,1,67.29,0.6551724137931034 +48,1058,690,368,0,1,65.22,0.6351606805293005 +49,2162,1731,431,0,2,80.06,0.803422756706753 +50,1033,682,351,0,1,66.02,0.6427879961277831 +51,1139,769,370,0,1,67.52,0.6935908691834943 +52,1061,707,354,0,1,66.64,0.6833176248821866 +53,1094,739,355,0,1,67.55,0.6983546617915904 +54,1091,737,354,0,1,67.55,0.6727772685609532 +55,4245,3765,480,0,4,88.69,0.8829210836277974 +56,2059,1635,424,0,2,79.41,0.7931034482758621 +57,1114,759,355,0,1,68.13,0.6651705565529623 +58,1047,693,354,0,1,66.19,0.6838586437440306 +59,1031,682,349,0,1,66.15,0.6576139670223085 +60,3272,2813,459,0,3,85.97,0.8331295843520783 +61,1131,774,357,0,1,68.44,0.695844385499558 +62,1087,733,354,0,1,67.43,0.6614535418583257 +63,1057,693,364,0,1,65.56,0.6281929990539262 +64,1140,777,363,0,1,68.16,0.7096491228070175 +65,1073,710,363,0,1,66.17,0.684995340167754 +66,1149,789,360,0,1,68.67,0.6422976501305483 +67,4365,3885,480,0,4,89.0,0.8923253150057274 +68,18168,17646,522,0,17,97.13,0.9745706737120211 +69,4226,3749,477,0,4,88.71,0.8556554661618552 +70,1156,781,375,0,1,67.56,0.6868512110726643 +71,2120,1693,427,0,2,79.86,0.7768867924528302 +72,1090,728,362,0,1,66.79,0.7018348623853211 +73,1078,712,366,0,1,66.05,0.6669758812615956 +74,1078,714,364,0,1,66.23,0.7022263450834879 +75,1105,748,357,0,1,67.69,0.6950226244343891 +76,1072,725,347,0,1,67.63,0.6781716417910447 +77,7483,6981,502,0,7,93.29,0.9204864359214219 +78,1068,706,362,0,1,66.1,0.6657303370786517 +79,1091,731,360,0,1,67.0,0.6324472960586618 +80,1164,803,361,0,1,68.99,0.6872852233676976 +81,1020,659,361,0,1,64.61,0.6568627450980392 +82,1084,716,368,0,1,66.05,0.6392988929889298 +83,2147,1719,428,0,2,80.07,0.8267349790405216 +84,1061,705,356,0,1,66.45,0.6361922714420358 +85,1098,741,357,0,1,67.49,0.6757741347905283 +86,1082,727,355,0,1,67.19,0.6811460258780037 +87,1099,735,364,0,1,66.88,0.6696997270245678 +88,1049,685,364,0,1,65.3,0.6539561487130601 +89,2139,1711,428,0,2,79.99,0.7980364656381487 +90,1148,789,359,0,1,68.73,0.662020905923345 +91,1118,755,363,0,1,67.53,0.6699463327370304 +92,1088,723,365,0,1,66.45,0.6773897058823529 +93,1137,770,367,0,1,67.72,0.6693051890941073 +94,1064,702,362,0,1,65.98,0.6663533834586466 +95,213645,213109,536,0,199,99.75,0.9526878700648271 +96,2160,1737,423,0,2,80.42,0.7935185185185185 +97,2104,1674,430,0,2,79.56,0.7842205323193916 +98,1085,727,358,0,1,67.0,0.6700460829493088 +99,1112,755,357,0,1,67.9,0.6924460431654677 +100,1059,692,367,0,1,65.34,0.6553352219074599 diff --git a/experiments/No_Refresh_2_0s_ttl/hit_age.csv b/experiments/No_Refresh_2_0s_ttl/hit_age.csv index 180c846..044712e 100644 --- a/experiments/No_Refresh_2_0s_ttl/hit_age.csv +++ b/experiments/No_Refresh_2_0s_ttl/hit_age.csv @@ -1,101 +1,101 @@ obj_id,hit_rate,avg_age -1,0.9052453468697124,1.0560747663551402 -2,0.8073770491803278,0.9543147208121827 -3,0.850415512465374,1.1009771986970684 -4,0.9225543478260869,1.0176730486008836 -5,0.62,0.9838709677419355 -6,0.9092356687898089,0.9842381786339754 -7,0.6910569105691057,1.0705882352941176 -8,0.6484375,0.8674698795180723 -9,0.9572153734590283,0.9992424242424243 -10,0.942173479561316,1.0888888888888888 -11,0.639344262295082,1.0 -12,0.6410256410256411,0.9733333333333334 -13,0.7162162162162162,1.028301886792453 -14,0.6481481481481481,1.1428571428571428 -15,0.8132295719844358,0.9425837320574163 -16,0.6320754716981132,0.9104477611940298 -17,0.8915187376725838,0.9070796460176991 -18,0.6796875,1.0574712643678161 -19,0.8957528957528957,0.9353448275862069 -20,0.6428571428571429,0.9722222222222222 -21,0.7007299270072993,1.0833333333333333 -22,0.9354838709677419,1.0011890606420928 -23,0.9762376237623762,0.9501014198782961 -24,0.6637168141592921,1.04 -25,0.8586666666666667,1.0527950310559007 -26,0.6821705426356589,1.0795454545454546 -27,0.6829268292682927,0.8928571428571429 -28,0.9563253012048193,1.0598425196850394 -29,0.9453860640301318,0.9422310756972112 -30,0.6693548387096774,1.0 -31,0.8032128514056225,1.04 -32,0.804,0.945273631840796 -33,0.9069767441860465,1.0 -34,0.6666666666666666,1.0 -35,0.6935483870967742,1.2093023255813953 -36,0.6239316239316239,0.9863013698630136 -37,0.6865671641791045,0.9456521739130435 -38,0.8,0.95 -39,0.6446280991735537,1.0384615384615385 -40,0.640625,1.2195121951219512 -41,0.6116504854368932,0.9682539682539683 -42,0.9017543859649123,0.9066147859922179 -43,0.8586666666666667,1.0683229813664596 -44,0.6890756302521008,1.0365853658536586 -45,0.6608695652173913,0.9736842105263158 -46,0.8110236220472441,1.0339805825242718 -47,0.7860082304526749,0.9947643979057592 -48,0.6355140186915887,0.9705882352941176 -49,0.6717557251908397,1.0227272727272727 -50,0.6692307692307692,0.9080459770114943 -51,0.806949806949807,0.9569377990430622 -52,0.6716417910447762,1.0 -53,0.6071428571428571,0.8823529411764706 -54,0.9405010438413361,1.0887902330743617 -55,0.6928571428571428,1.0309278350515463 -56,0.9746085484553534,1.0021710811984368 -57,0.6428571428571429,1.1111111111111112 -58,0.6203703703703703,1.0149253731343284 -59,0.8015873015873016,0.995049504950495 -60,0.9767261442979054,0.9745830023828436 -61,0.8136200716845878,0.9074889867841409 -62,0.9457943925233645,0.9802371541501976 -63,0.8865979381443299,0.9488372093023256 -64,0.8045977011494253,1.0523809523809524 -65,0.816793893129771,0.9579439252336449 -66,0.6339285714285714,0.9859154929577465 -67,0.8485714285714285,0.9663299663299664 -68,0.8913043478260869,0.975609756097561 -69,0.810077519379845,0.9090909090909091 -70,0.6942148760330579,1.1785714285714286 -71,0.9585674157303371,1.0249084249084248 -72,0.6746031746031746,0.8588235294117647 -73,0.6861313868613139,0.9893617021276596 -74,0.8856548856548857,1.1737089201877935 -75,0.6637931034482759,1.12987012987013 -76,0.6306306306306306,1.1 -77,0.6521739130434783,1.1066666666666667 -78,0.8895705521472392,1.0206896551724138 -79,0.6842105263157895,0.967032967032967 -80,0.6691729323308271,1.1123595505617978 -81,0.7710280373831776,0.8424242424242424 -82,0.8434782608695652,1.0515463917525774 -83,0.6504065040650406,1.0625 -84,0.648,1.0123456790123457 -85,0.689922480620155,0.9662921348314607 -86,0.6481481481481481,0.9285714285714286 -87,0.6446280991735537,1.0897435897435896 -88,0.8160919540229885,0.9483568075117371 -89,0.8539944903581267,1.0193548387096774 -90,0.9487632508833922,1.0018621973929236 -91,0.6692913385826772,0.8823529411764706 -92,0.6754385964912281,1.0129870129870129 -93,0.8454810495626822,1.0413793103448277 -94,0.6818181818181818,1.0222222222222221 -95,0.8575342465753425,1.0287539936102237 -96,0.8093385214007782,0.8798076923076923 -97,0.9352272727272727,1.097205346294046 -98,0.9904940003116721,0.8752359974826935 -99,0.9732858414959928,0.9803293687099726 -100,0.6636363636363637,0.8904109589041096 +1,0.9846247925220581,1.0033419099163043 +2,0.6641929499072357,1.020949720670391 +3,0.9097660601559598,0.9695918367346938 +4,0.9654299607007261,0.9897198840899682 +5,0.6612284069097889,0.9346879535558781 +6,0.8563779527559056,1.0066200809121 +7,0.6625239005736138,1.02020202020202 +8,0.7961119013750593,0.9612864800476474 +9,0.8602764423076923,0.9965071603213412 +10,0.6805429864253394,0.9933510638297872 +11,0.8016682113067656,0.9820809248554914 +12,0.6623012160898035,0.9901129943502824 +13,0.662639405204461,1.0196353436185133 +14,0.6724137931034483,0.9730094466936572 +15,0.6669829222011385,1.0142247510668563 +16,0.6691176470588235,0.9546703296703297 +17,0.6699909338168631,1.0108254397834913 +18,0.6654445462878094,0.9421487603305785 +19,0.6685446009389672,1.0224719101123596 +20,0.6678932842686293,0.9986225895316805 +21,0.6584905660377358,1.0143266475644699 +22,0.886401524172422,1.0147770016120365 +23,0.6706204379562044,0.9931972789115646 +24,0.651844843897824,1.0449927431059507 +25,0.6573359073359073,1.0293685756240822 +26,0.8889146567717996,1.0033915992695017 +27,0.8054545454545454,0.9802483069977427 +28,0.6602687140115163,1.0218023255813953 +29,0.6730593607305936,1.0312075983717774 +30,0.8005514705882353,0.9850746268656716 +31,0.654,0.963302752293578 +32,0.6604303086997194,1.0524079320113315 +33,0.6558139534883721,1.0411347517730496 +34,0.6720285969615728,0.9800531914893617 +35,0.6758193091231178,0.981651376146789 +36,0.6622516556291391,0.96 +37,0.7991689750692521,1.0167533217793183 +38,0.6749311294765841,0.9741496598639455 +39,0.9570962616040813,1.015903530234184 +40,0.7996306555863343,0.9364896073903002 +41,0.6688191881918819,0.9862068965517241 +42,0.7991553261379634,1.0070463887257781 +43,0.6645161290322581,0.9972260748959778 +44,0.9784796661484331,1.0064392038802474 +45,0.7957813998082455,0.9753012048192771 +46,0.6644798500468604,1.007052186177715 +47,0.6728797763280522,0.9736842105263158 +48,0.6521739130434783,0.9739130434782609 +49,0.8006475485661425,1.0034662045060658 +50,0.6602129719264279,0.9736070381231672 +51,0.675153643546971,1.0273081924577374 +52,0.6663524976437323,1.0254596888260255 +53,0.6755027422303473,1.03382949932341 +54,0.6755270394133822,0.9959294436906377 +55,0.8869257950530035,0.9954847277556441 +56,0.7940747935891209,0.998776758409786 +57,0.6813285457809695,0.9762845849802372 +58,0.66189111747851,1.0331890331890332 +59,0.6614936954413191,0.9941348973607038 +60,0.8597188264058679,0.9690721649484536 +61,0.6843501326259946,1.016795865633075 +62,0.6743330266789328,0.9809004092769441 +63,0.6556291390728477,0.9581529581529582 +64,0.6815789473684211,1.0411840411840412 +65,0.6616961789375583,1.0352112676056338 +66,0.6866840731070496,0.935361216730038 +67,0.8900343642611683,1.0025740025740026 +68,0.9712681638044914,1.0034002040122407 +69,0.8871273071462376,0.9645238730328087 +70,0.6756055363321799,1.0166453265044815 +71,0.7985849056603773,0.9728292971057295 +72,0.6678899082568808,1.0508241758241759 +73,0.660482374768089,1.0098314606741574 +74,0.6623376623376623,1.0602240896358543 +75,0.676923076923077,1.0267379679144386 +76,0.6763059701492538,1.0027586206896553 +77,0.9329146064412669,0.9866781263429308 +78,0.6610486891385767,1.0070821529745042 +79,0.6700274977085243,0.9439124487004104 +80,0.6898625429553265,0.9962640099626401 +81,0.6460784313725491,1.0166919575113809 +82,0.6605166051660517,0.9678770949720671 +83,0.8006520726595249,1.0325770796974985 +84,0.6644674835061263,0.9574468085106383 +85,0.674863387978142,1.001349527665317 +86,0.6719038817005545,1.0137551581843192 +87,0.6687898089171974,1.0013605442176872 +88,0.6530028598665396,1.0014598540145985 +89,0.7999064983637214,0.9976621858562245 +90,0.6872822299651568,0.9632446134347274 +91,0.6753130590339893,0.9920529801324504 +92,0.6645220588235294,1.0193637621023512 +93,0.6772207563764292,0.9883116883116884 +94,0.6597744360902256,1.0099715099715099 +95,0.9974911652507664,0.9550840180377178 +96,0.8041666666666667,0.9867587795048935 +97,0.7956273764258555,0.985663082437276 +98,0.6700460829493088,1.0 +99,0.6789568345323741,1.0198675496688743 +100,0.6534466477809254,1.0028901734104045 diff --git a/experiments/No_Refresh_2_0s_ttl/lambda_distribution.pdf b/experiments/No_Refresh_2_0s_ttl/lambda_distribution.pdf index a6cfa75..837eb62 100644 Binary files a/experiments/No_Refresh_2_0s_ttl/lambda_distribution.pdf and b/experiments/No_Refresh_2_0s_ttl/lambda_distribution.pdf differ diff --git a/experiments/No_Refresh_2_0s_ttl/lambda_vs_access_count.pdf b/experiments/No_Refresh_2_0s_ttl/lambda_vs_access_count.pdf index 895a611..bfecb3a 100644 Binary files a/experiments/No_Refresh_2_0s_ttl/lambda_vs_access_count.pdf and b/experiments/No_Refresh_2_0s_ttl/lambda_vs_access_count.pdf differ diff --git a/experiments/No_Refresh_2_0s_ttl/objects_in_cache_over_time.pdf b/experiments/No_Refresh_2_0s_ttl/objects_in_cache_over_time.pdf index fff705a..e036323 100644 Binary files a/experiments/No_Refresh_2_0s_ttl/objects_in_cache_over_time.pdf and b/experiments/No_Refresh_2_0s_ttl/objects_in_cache_over_time.pdf differ diff --git a/experiments/No_Refresh_2_0s_ttl/overall_hit_age.csv b/experiments/No_Refresh_2_0s_ttl/overall_hit_age.csv index 91bb2cf..5952dac 100644 --- a/experiments/No_Refresh_2_0s_ttl/overall_hit_age.csv +++ b/experiments/No_Refresh_2_0s_ttl/overall_hit_age.csv @@ -1,9 +1,9 @@ ,hit_rate,avg_age count,100.0,100.0 -mean,0.769815289387402,1.0034930453709514 -std,0.11953590678844736,0.07668973688754598 -min,0.6071428571428571,0.8424242424242424 -25%,0.66377403112603,0.953261395578711 -50%,0.743622126799697,1.0 -75%,0.8858906487772468,1.0517550319096711 -max,0.9904940003116721,1.2195121951219512 +mean,0.7277601169941756,0.9972298475197796 +std,0.09830526281613299,0.027196423303013563 +min,0.6460784313725491,0.9346879535558781 +25%,0.6626105290467492,0.9791110398620806 +50%,0.6745982073285375,0.999388379204893 +75%,0.7991587383707855,1.0166569842562063 +max,0.9974911652507664,1.0602240896358543 diff --git a/experiments/No_Refresh_3_0s_ttl/details.csv b/experiments/No_Refresh_3_0s_ttl/details.csv index e4ff8e6..5a20551 100644 --- a/experiments/No_Refresh_3_0s_ttl/details.csv +++ b/experiments/No_Refresh_3_0s_ttl/details.csv @@ -1,101 +1,101 @@ obj_id,access_count,hits,misses,mu,lambda,hit_rate,avg_age -1,127,93,34,0,1,73.23,1.062992125984252 -2,148,116,32,0,1,78.38,1.2364864864864864 -3,117,85,32,0,1,72.65,1.0940170940170941 -4,125,91,34,0,1,72.8,1.032 -5,140,106,34,0,1,75.71,1.1642857142857144 -6,130,98,32,0,1,75.38,1.2538461538461538 -7,263,225,38,0,2,85.55,1.11787072243346 -8,109,78,31,0,1,71.56,1.073394495412844 -9,399,361,38,0,3,90.48,1.3358395989974938 -10,127,93,34,0,1,73.23,1.1496062992125984 -11,122,89,33,0,1,72.95,1.0901639344262295 -12,142,108,34,0,1,76.06,1.1126760563380282 -13,123,88,35,0,1,71.54,0.983739837398374 -14,131,98,33,0,1,74.81,1.251908396946565 -15,141,110,31,0,1,78.01,1.148936170212766 -16,102,69,33,0,1,67.65,0.9901960784313726 -17,112,79,33,0,1,70.54,0.9910714285714286 -18,372,334,38,0,3,89.78,1.3091397849462365 -19,102,73,29,0,1,71.57,1.0784313725490196 -20,148,114,34,0,1,77.03,1.114864864864865 -21,365,327,38,0,3,89.59,1.3068493150684932 -22,520,480,40,0,4,92.31,1.4384615384615385 -23,273,235,38,0,2,86.08,1.3626373626373627 -24,153,119,34,0,1,77.78,1.1176470588235294 -25,803,762,41,0,7,94.89,1.3424657534246576 -26,128,96,32,0,1,75.0,1.1171875 -27,107,74,33,0,1,69.16,1.0841121495327102 -28,946,905,41,0,8,95.67,1.3107822410147991 -29,115,84,31,0,1,73.04,1.0347826086956522 -30,115,84,31,0,1,73.04,1.0956521739130434 -31,258,222,36,0,2,86.05,1.306201550387597 -32,118,85,33,0,1,72.03,0.9830508474576272 -33,123,90,33,0,1,73.17,1.2926829268292683 -34,138,104,34,0,1,75.36,1.0942028985507246 -35,226,190,36,0,2,84.07,1.0309734513274336 -36,261,224,37,0,2,85.82,1.2528735632183907 -37,440,401,39,0,3,91.14,1.3295454545454546 -38,122,89,33,0,1,72.95,1.0573770491803278 -39,127,96,31,0,1,75.59,1.0551181102362204 -40,102,73,29,0,1,71.57,1.0784313725490196 -41,139,107,32,0,1,76.98,1.1007194244604317 -42,118,86,32,0,1,72.88,1.0677966101694916 -43,135,102,33,0,1,75.56,1.0518518518518518 -44,251,215,36,0,2,85.66,1.2868525896414342 -45,253,217,36,0,2,85.77,1.2727272727272727 -46,139,107,32,0,1,76.98,1.0359712230215827 -47,120,90,30,0,1,75.0,1.15 -48,257,220,37,0,2,85.6,1.2684824902723735 -49,256,220,36,0,2,85.94,1.24609375 -50,2480,2438,42,0,20,98.31,1.3608870967741935 -51,105,77,28,0,1,73.33,1.0666666666666667 -52,133,103,30,0,1,77.44,1.2781954887218046 -53,804,763,41,0,6,94.9,1.4900497512437811 -54,137,105,32,0,1,76.64,1.1532846715328466 -55,100,70,30,0,1,70.0,1.03 -56,146,113,33,0,1,77.4,1.3013698630136987 -57,124,90,34,0,1,72.58,1.0080645161290323 -58,140,108,32,0,1,77.14,1.2 -59,108,78,30,0,1,72.22,0.9722222222222222 -60,132,99,33,0,1,75.0,1.2121212121212122 -61,601,561,40,0,5,93.34,1.4226289517470883 -62,116,85,31,0,1,73.28,1.103448275862069 -63,109,79,30,0,1,72.48,0.9908256880733946 -64,127,94,33,0,1,74.02,1.1574803149606299 -65,128,96,32,0,1,75.0,1.140625 -66,252,216,36,0,2,85.71,1.3492063492063493 -67,140,110,30,0,1,78.57,1.1285714285714286 -68,108,77,31,0,1,71.3,1.1296296296296295 -69,247,210,37,0,2,85.02,1.2469635627530364 -70,147,112,35,0,1,76.19,1.129251700680272 -71,125,94,31,0,1,75.2,0.912 -72,276,238,38,0,2,86.23,1.3043478260869565 -73,382,345,37,0,3,90.31,1.4162303664921465 -74,258,221,37,0,2,85.66,1.197674418604651 -75,122,89,33,0,1,72.95,1.1557377049180328 -76,134,99,35,0,1,73.88,1.0671641791044777 -77,113,85,28,0,1,75.22,0.9823008849557522 -78,485,445,40,0,4,91.75,1.3278350515463917 -79,138,109,29,0,1,78.99,1.1594202898550725 -80,124,92,32,0,1,74.19,1.0725806451612903 -81,126,97,29,0,1,76.98,1.1984126984126984 -82,136,104,32,0,1,76.47,1.0 -83,123,92,31,0,1,74.8,0.991869918699187 -84,132,101,31,0,1,76.52,1.1818181818181819 -85,223,187,36,0,2,83.86,1.3183856502242153 -86,126,97,29,0,1,76.98,1.1666666666666667 -87,118,85,33,0,1,72.03,0.9915254237288136 -88,383,344,39,0,3,89.82,1.5221932114882506 -89,136,104,32,0,1,76.47,1.1102941176470589 -90,122,92,30,0,1,75.41,1.1885245901639345 -91,121,87,34,0,1,71.9,0.9338842975206612 -92,492,452,40,0,4,91.87,1.4146341463414633 -93,385,346,39,0,3,89.87,1.405194805194805 -94,127,94,33,0,1,74.02,1.1732283464566928 -95,132,97,35,0,1,73.48,1.0606060606060606 -96,5506,5464,42,0,45,99.24,1.4139120958953868 -97,105,74,31,0,1,70.48,1.0285714285714285 -98,261,225,36,0,2,86.21,1.2950191570881227 -99,381,343,38,0,3,90.03,1.220472440944882 -100,117,85,32,0,1,72.65,1.1452991452991452 +1,3243,2919,324,0,3,90.01,1.3200740055504163 +2,1114,842,272,0,1,75.58,1.1301615798922802 +3,1070,805,265,0,1,75.23,1.1158878504672898 +4,4305,3973,332,0,4,92.29,1.3440185830429734 +5,1115,843,272,0,1,75.61,1.105829596412556 +6,28028,27673,355,0,26,98.73,1.4631796774653918 +7,2159,1853,306,0,2,85.83,1.2802223251505327 +8,1082,819,263,0,1,75.69,1.156192236598891 +9,1081,805,276,0,1,74.47,1.0555041628122108 +10,1095,832,263,0,1,75.98,1.1461187214611872 +11,3252,2930,322,0,3,90.1,1.3766912669126692 +12,4343,4012,331,0,4,92.38,1.388671425282063 +13,1074,801,273,0,1,74.58,1.1517690875232776 +14,2071,1767,304,0,2,85.32,1.3109608884596813 +15,1088,819,269,0,1,75.28,1.1865808823529411 +16,7567,7223,344,0,7,95.45,1.4121844852649663 +17,12012,11663,349,0,11,97.09,1.4805194805194806 +18,3250,2929,321,0,3,90.12,1.361846153846154 +19,1085,812,273,0,1,74.84,1.1216589861751152 +20,1061,795,266,0,1,74.93,1.1225259189443921 +21,1036,771,265,0,1,74.42,1.1447876447876448 +22,3152,2825,327,0,3,89.63,1.3480329949238579 +23,2119,1814,305,0,2,85.61,1.315714959886739 +24,1040,771,269,0,1,74.13,1.0913461538461537 +25,1078,807,271,0,1,74.86,1.1456400742115027 +26,58220,57862,358,0,54,99.39,1.4793713500515286 +27,242887,242528,359,0,225,99.85,1.4382531794620543 +28,1045,779,266,0,1,74.55,1.1330143540669857 +29,1034,759,275,0,1,73.4,1.1179883945841393 +30,1092,819,273,0,1,75.0,1.1007326007326008 +31,2118,1811,307,0,2,85.51,1.2889518413597734 +32,1000,740,260,0,1,74.0,1.128 +33,8585,8240,345,0,8,95.98,1.4399534071054165 +34,2217,1911,306,0,2,86.2,1.298150654036987 +35,2169,1858,311,0,2,85.66,1.2706316274781004 +36,2144,1837,307,0,2,85.68,1.2630597014925373 +37,1097,821,276,0,1,74.84,1.1330902461257977 +38,1090,813,277,0,1,74.59,1.110091743119266 +39,1051,777,274,0,1,73.93,1.076117982873454 +40,1060,792,268,0,1,74.72,1.1226415094339623 +41,1119,844,275,0,1,75.42,1.1438784629133154 +42,1049,779,270,0,1,74.26,1.0972354623450906 +43,1130,854,276,0,1,75.58,1.14070796460177 +44,1131,866,265,0,1,76.57,1.169761273209549 +45,5320,4981,339,0,5,93.63,1.3855263157894737 +46,1106,831,275,0,1,75.14,1.1157323688969258 +47,5611,5272,339,0,5,93.96,1.3671359828907503 +48,5314,4976,338,0,5,93.64,1.4002634550244637 +49,19463,19110,353,0,18,98.19,1.4851256229769305 +50,5327,4991,336,0,5,93.69,1.3974094236906327 +51,1134,864,270,0,1,76.19,1.13668430335097 +52,1151,876,275,0,1,76.11,1.1685490877497828 +53,1148,876,272,0,1,76.31,1.1724738675958188 +54,1073,801,272,0,1,74.65,1.0987884436160298 +55,1087,816,271,0,1,75.07,1.1352345906163754 +56,1011,748,263,0,1,73.99,1.1612265084075173 +57,34310,33954,356,0,32,98.96,1.4917516758962401 +58,1075,809,266,0,1,75.26,1.1590697674418604 +59,1077,810,267,0,1,75.21,1.1188486536675952 +60,4269,3938,331,0,4,92.25,1.3799484656828298 +61,1112,840,272,0,1,75.54,1.0845323741007193 +62,1084,810,274,0,1,74.72,1.1439114391143912 +63,6354,6013,341,0,6,94.63,1.4186339313818068 +64,1046,781,265,0,1,74.67,1.054493307839388 +65,4457,4127,330,0,4,92.6,1.3874803679605117 +66,1160,888,272,0,1,76.55,1.1594827586206897 +67,2106,1800,306,0,2,85.47,1.2692307692307692 +68,1049,790,259,0,1,75.31,1.1782650142993327 +69,1105,837,268,0,1,75.75,1.1402714932126696 +70,5405,5067,338,0,5,93.75,1.3851988899167438 +71,1073,802,271,0,1,74.74,1.1295433364398881 +72,1050,783,267,0,1,74.57,1.1361904761904762 +73,1075,805,270,0,1,74.88,1.0465116279069768 +74,2225,1913,312,0,2,85.98,1.2957303370786517 +75,1090,814,276,0,1,74.68,1.1055045871559632 +76,1089,816,273,0,1,74.93,1.0312213039485767 +77,1162,893,269,0,1,76.85,1.1686746987951808 +78,1062,789,273,0,1,74.29,1.128060263653484 +79,1084,812,272,0,1,74.91,1.080258302583026 +80,1079,812,267,0,1,75.25,1.118628359592215 +81,6563,6222,341,0,6,94.8,1.4360810604906293 +82,2168,1860,308,0,2,85.79,1.3044280442804428 +83,1112,843,269,0,1,75.81,1.1573741007194245 +84,1071,796,275,0,1,74.32,1.1727357609710551 +85,1048,786,262,0,1,75.0,1.133587786259542 +86,6450,6109,341,0,6,94.71,1.4203100775193798 +87,1112,840,272,0,1,75.54,1.1267985611510791 +88,1103,830,273,0,1,75.25,1.0942883046237535 +89,1112,841,271,0,1,75.63,1.143884892086331 +90,4311,3981,330,0,4,92.35,1.3825098585015079 +91,2191,1885,306,0,2,86.03,1.2765860337745323 +92,3237,2914,323,0,3,90.02,1.3710225517454433 +93,1055,791,264,0,1,74.98,1.1601895734597156 +94,1047,776,271,0,1,74.12,1.0983763132760267 +95,1090,821,269,0,1,75.32,1.1394495412844037 +96,1073,801,272,0,1,74.65,1.1286113699906803 +97,2155,1848,307,0,2,85.75,1.265429234338747 +98,2170,1860,310,0,2,85.71,1.2792626728110599 +99,1086,819,267,0,1,75.41,1.156537753222836 +100,4283,3951,332,0,4,92.25,1.394349754844735 diff --git a/experiments/No_Refresh_3_0s_ttl/hit_age.csv b/experiments/No_Refresh_3_0s_ttl/hit_age.csv index 3bec2d8..60d0502 100644 --- a/experiments/No_Refresh_3_0s_ttl/hit_age.csv +++ b/experiments/No_Refresh_3_0s_ttl/hit_age.csv @@ -1,101 +1,101 @@ obj_id,hit_rate,avg_age -1,0.7322834645669292,1.4516129032258065 -2,0.7837837837837838,1.5775862068965518 -3,0.7264957264957265,1.5058823529411764 -4,0.728,1.4175824175824177 -5,0.7571428571428571,1.5377358490566038 -6,0.7538461538461538,1.663265306122449 -7,0.8555133079847909,1.3066666666666666 -8,0.7155963302752294,1.5 -9,0.9047619047619048,1.4764542936288088 -10,0.7322834645669292,1.5698924731182795 -11,0.7295081967213115,1.4943820224719102 -12,0.7605633802816901,1.462962962962963 -13,0.7154471544715447,1.375 -14,0.7480916030534351,1.6734693877551021 -15,0.7801418439716312,1.4727272727272727 -16,0.6764705882352942,1.463768115942029 -17,0.7053571428571429,1.4050632911392404 -18,0.8978494623655914,1.4580838323353293 -19,0.7156862745098039,1.5068493150684932 -20,0.7702702702702703,1.4473684210526316 -21,0.8958904109589041,1.4587155963302751 -22,0.9230769230769231,1.5583333333333333 -23,0.8608058608058609,1.5829787234042554 -24,0.7777777777777778,1.4369747899159664 -25,0.9489414694894147,1.4146981627296589 -26,0.75,1.4895833333333333 -27,0.6915887850467289,1.5675675675675675 -28,0.9566596194503171,1.3701657458563536 -29,0.7304347826086957,1.4166666666666667 -30,0.7304347826086957,1.5 -31,0.8604651162790697,1.518018018018018 -32,0.7203389830508474,1.3647058823529412 -33,0.7317073170731707,1.7666666666666666 -34,0.7536231884057971,1.4519230769230769 -35,0.8407079646017699,1.2263157894736842 -36,0.8582375478927203,1.4598214285714286 -37,0.9113636363636364,1.458852867830424 -38,0.7295081967213115,1.449438202247191 -39,0.7559055118110236,1.3958333333333333 -40,0.7156862745098039,1.5068493150684932 -41,0.7697841726618705,1.4299065420560748 -42,0.7288135593220338,1.4651162790697674 -43,0.7555555555555555,1.392156862745098 -44,0.8565737051792829,1.5023255813953489 -45,0.857707509881423,1.4838709677419355 -46,0.7697841726618705,1.3457943925233644 -47,0.75,1.5333333333333334 -48,0.8560311284046692,1.481818181818182 -49,0.859375,1.45 -50,0.9830645161290322,1.3843314191960623 -51,0.7333333333333333,1.4545454545454546 -52,0.7744360902255639,1.6504854368932038 -53,0.9490049751243781,1.5701179554390563 -54,0.7664233576642335,1.5047619047619047 -55,0.7,1.4714285714285715 -56,0.773972602739726,1.6814159292035398 -57,0.7258064516129032,1.3888888888888888 -58,0.7714285714285715,1.5555555555555556 -59,0.7222222222222222,1.3461538461538463 -60,0.75,1.6161616161616161 -61,0.9334442595673876,1.5240641711229947 -62,0.7327586206896551,1.5058823529411764 -63,0.7247706422018348,1.3670886075949367 -64,0.7401574803149606,1.5638297872340425 -65,0.75,1.5208333333333333 -66,0.8571428571428571,1.5740740740740742 -67,0.7857142857142857,1.4363636363636363 -68,0.7129629629629629,1.5844155844155845 -69,0.8502024291497976,1.4666666666666666 -70,0.7619047619047619,1.4821428571428572 -71,0.752,1.2127659574468086 -72,0.8623188405797102,1.5126050420168067 -73,0.9031413612565445,1.5681159420289854 -74,0.8565891472868217,1.3981900452488687 -75,0.7295081967213115,1.5842696629213484 -76,0.7388059701492538,1.4444444444444444 -77,0.7522123893805309,1.3058823529411765 -78,0.9175257731958762,1.447191011235955 -79,0.7898550724637681,1.4678899082568808 -80,0.7419354838709677,1.4456521739130435 -81,0.7698412698412699,1.556701030927835 -82,0.7647058823529411,1.3076923076923077 -83,0.7479674796747967,1.326086956521739 -84,0.7651515151515151,1.5445544554455446 -85,0.8385650224215246,1.572192513368984 -86,0.7698412698412699,1.5154639175257731 -87,0.7203389830508474,1.3764705882352941 -88,0.8981723237597912,1.694767441860465 -89,0.7647058823529411,1.4519230769230769 -90,0.7540983606557377,1.576086956521739 -91,0.71900826446281,1.2988505747126438 -92,0.9186991869918699,1.5398230088495575 -93,0.8987012987012987,1.5635838150289016 -94,0.7401574803149606,1.5851063829787233 -95,0.7348484848484849,1.443298969072165 -96,0.9923719578641482,1.4247803806734993 -97,0.7047619047619048,1.4594594594594594 -98,0.8620689655172413,1.5022222222222221 -99,0.9002624671916011,1.3556851311953353 -100,0.7264957264957265,1.576470588235294 +1,0.9000925069380203,1.4665981500513874 +2,0.755834829443447,1.495249406175772 +3,0.7523364485981309,1.4832298136645963 +4,0.9228803716608595,1.456330229046061 +5,0.7560538116591928,1.4626334519572954 +6,0.9873340944769516,1.4819499150796807 +7,0.8582677165354331,1.4916351861845656 +8,0.7569316081330869,1.5274725274725274 +9,0.7446808510638298,1.4173913043478261 +10,0.7598173515981735,1.5084134615384615 +11,0.9009840098400984,1.5279863481228668 +12,0.9237854017959936,1.5032402791625126 +13,0.7458100558659218,1.5443196004993758 +14,0.8532110091743119,1.5365025466893039 +15,0.7527573529411765,1.5763125763125763 +16,0.9545394476014273,1.4794406756195486 +17,0.970945720945721,1.5248220869416103 +18,0.9012307692307693,1.5110959371799249 +19,0.7483870967741936,1.498768472906404 +20,0.7492931196983977,1.4981132075471697 +21,0.7442084942084942,1.5382619974059664 +22,0.896256345177665,1.504070796460177 +23,0.8560641812175555,1.5369349503858876 +24,0.7413461538461539,1.4721141374837874 +25,0.74860853432282,1.530359355638166 +26,0.9938509103400893,1.4885244201721337 +27,0.9985219464195284,1.440382141443462 +28,0.7454545454545455,1.5198973042362003 +29,0.7340425531914894,1.523056653491436 +30,0.75,1.4676434676434675 +31,0.8550519357884797,1.507454445057979 +32,0.74,1.5243243243243243 +33,0.9598136284216657,1.5002427184466018 +34,0.8619756427604871,1.5060177917320774 +35,0.8566159520516367,1.4833153928955867 +36,0.8568097014925373,1.4741426238432227 +37,0.7484047402005469,1.5140073081607794 +38,0.7458715596330275,1.4883148831488315 +39,0.7392959086584205,1.4555984555984556 +40,0.7471698113207547,1.5025252525252526 +41,0.7542448614834674,1.5165876777251184 +42,0.7426120114394662,1.4775353016688062 +43,0.7557522123893805,1.509367681498829 +44,0.7656940760389036,1.5277136258660509 +45,0.9362781954887218,1.4798233286488658 +46,0.7513562386980108,1.4849578820697955 +47,0.9395829620388523,1.4550455235204856 +48,0.9363944298080542,1.4953778135048232 +49,0.981863022144582,1.512558869701727 +50,0.9369250985545335,1.4914846724103386 +51,0.7619047619047619,1.4918981481481481 +52,0.7610773240660296,1.5353881278538812 +53,0.7630662020905923,1.5365296803652968 +54,0.7465051258154707,1.4719101123595506 +55,0.7506899724011039,1.5122549019607843 +56,0.7398615232443125,1.5695187165775402 +57,0.9896240163217721,1.5073923543617835 +58,0.7525581395348837,1.5401730531520395 +59,0.7520891364902507,1.4876543209876543 +60,0.9224642773483251,1.4959370238699847 +61,0.7553956834532374,1.4357142857142857 +62,0.7472324723247232,1.5308641975308641 +63,0.946333018570979,1.4990853151505072 +64,0.7466539196940727,1.412291933418694 +65,0.925959165357864,1.498425006057669 +66,0.7655172413793103,1.5146396396396395 +67,0.8547008547008547,1.485 +68,0.7530981887511916,1.5645569620253164 +69,0.7574660633484163,1.5053763440860215 +70,0.9374653098982424,1.4776001578843496 +71,0.7474370922646785,1.5112219451371571 +72,0.7457142857142857,1.5236270753512133 +73,0.7488372093023256,1.3975155279503106 +74,0.8597752808988764,1.5070569785676948 +75,0.7467889908256881,1.4803439803439804 +76,0.7493112947658402,1.3762254901960784 +77,0.7685025817555938,1.520716685330347 +78,0.7429378531073446,1.5183776932826363 +79,0.7490774907749077,1.4421182266009853 +80,0.752548656163114,1.4864532019704433 +81,0.9480420539387475,1.5147862423657987 +82,0.8579335793357934,1.5204301075268818 +83,0.7580935251798561,1.5266903914590748 +84,0.7432306255835668,1.5778894472361809 +85,0.75,1.5114503816793894 +86,0.9471317829457364,1.4995907677197577 +87,0.7553956834532374,1.4916666666666667 +88,0.7524932003626473,1.4542168674698794 +89,0.7562949640287769,1.5124851367419738 +90,0.9234516353514266,1.4971112785732228 +91,0.8603377453217709,1.483819628647215 +92,0.90021624961384,1.5229924502402197 +93,0.7497630331753554,1.5474083438685209 +94,0.7411652340019103,1.481958762886598 +95,0.7532110091743119,1.51278928136419 +96,0.7465051258154707,1.511860174781523 +97,0.8575406032482599,1.4756493506493507 +98,0.8571428571428571,1.4924731182795699 +99,0.7541436464088398,1.5335775335775337 +100,0.9224842400186785,1.5115160718805365 diff --git a/experiments/No_Refresh_3_0s_ttl/lambda_distribution.pdf b/experiments/No_Refresh_3_0s_ttl/lambda_distribution.pdf index 6ac69b0..52b9f00 100644 Binary files a/experiments/No_Refresh_3_0s_ttl/lambda_distribution.pdf and b/experiments/No_Refresh_3_0s_ttl/lambda_distribution.pdf differ diff --git a/experiments/No_Refresh_3_0s_ttl/lambda_vs_access_count.pdf b/experiments/No_Refresh_3_0s_ttl/lambda_vs_access_count.pdf index 3581c0e..c2e35ea 100644 Binary files a/experiments/No_Refresh_3_0s_ttl/lambda_vs_access_count.pdf and b/experiments/No_Refresh_3_0s_ttl/lambda_vs_access_count.pdf differ diff --git a/experiments/No_Refresh_3_0s_ttl/objects_in_cache_over_time.pdf b/experiments/No_Refresh_3_0s_ttl/objects_in_cache_over_time.pdf index 92e08a3..183faf9 100644 Binary files a/experiments/No_Refresh_3_0s_ttl/objects_in_cache_over_time.pdf and b/experiments/No_Refresh_3_0s_ttl/objects_in_cache_over_time.pdf differ diff --git a/experiments/No_Refresh_3_0s_ttl/overall_hit_age.csv b/experiments/No_Refresh_3_0s_ttl/overall_hit_age.csv index db2cc05..c88cae8 100644 --- a/experiments/No_Refresh_3_0s_ttl/overall_hit_age.csv +++ b/experiments/No_Refresh_3_0s_ttl/overall_hit_age.csv @@ -1,9 +1,9 @@ ,hit_rate,avg_age count,100.0,100.0 -mean,0.7906927824364712,1.479522176980214 -std,0.07676518565586872,0.09745960173237347 -min,0.6764705882352942,1.2127659574468086 -25%,0.731389183457052,1.428625001710431 -50%,0.7612340710932259,1.472077922077922 -75%,0.8567275747508305,1.5473047304730474 -max,0.9923719578641482,1.7666666666666666 +mean,0.8159040915293513,1.4993537506269705 +std,0.08567749535403389,0.034432376657342924 +min,0.7340425531914894,1.3762254901960784 +25%,0.7487800405574492,1.4829120509700968 +50%,0.7566132860809319,1.5028827658438826 +75%,0.9001234426069753,1.5205017519777482 +max,0.9985219464195284,1.5778894472361809 diff --git a/experiments/No_Refresh_4_0s_ttl/details.csv b/experiments/No_Refresh_4_0s_ttl/details.csv index 3a19846..4a28b06 100644 --- a/experiments/No_Refresh_4_0s_ttl/details.csv +++ b/experiments/No_Refresh_4_0s_ttl/details.csv @@ -1,101 +1,101 @@ obj_id,access_count,hits,misses,mu,lambda,hit_rate,avg_age -1,113,90,23,0,1,79.65,1.6460176991150441 -2,127,103,24,0,1,81.1,1.4566929133858268 -3,119,95,24,0,1,79.83,1.588235294117647 -4,365,337,28,0,3,92.33,1.7808219178082192 -5,257,229,28,0,2,89.11,1.7704280155642023 -6,591,562,29,0,5,95.09,1.9137055837563453 -7,482,453,29,0,4,93.98,1.7738589211618256 -8,129,106,23,0,1,82.17,1.7596899224806202 -9,131,105,26,0,1,80.15,1.3206106870229009 -10,238,211,27,0,2,88.66,1.684873949579832 -11,135,110,25,0,1,81.48,1.6592592592592592 -12,855,826,29,0,7,96.61,2.024561403508772 -13,113,90,23,0,1,79.65,1.6194690265486726 -14,1330,1301,29,0,11,97.82,1.8406015037593986 -15,479,451,28,0,4,94.15,1.8246346555323592 -16,372,344,28,0,3,92.47,1.8629032258064515 -17,129,104,25,0,1,80.62,1.689922480620155 -18,118,94,24,0,1,79.66,1.6016949152542372 -19,226,200,26,0,2,88.5,1.8185840707964602 -20,117,93,24,0,1,79.49,1.6666666666666667 -21,672,643,29,0,6,95.68,1.9345238095238095 -22,527,498,29,0,4,94.5,1.8444022770398483 -23,132,107,25,0,1,81.06,1.5757575757575757 -24,111,87,24,0,1,78.38,1.4594594594594594 -25,107,82,25,0,1,76.64,1.7289719626168225 -26,106,81,25,0,1,76.42,1.509433962264151 -27,119,96,23,0,1,80.67,1.6722689075630253 -28,219,193,26,0,2,88.13,1.82648401826484 -29,253,225,28,0,2,88.93,1.841897233201581 -30,114,89,25,0,1,78.07,1.5614035087719298 -31,218,190,28,0,2,87.16,1.9220183486238531 -32,117,92,25,0,1,78.63,1.5042735042735043 -33,120,96,24,0,1,80.0,1.6833333333333333 -34,376,348,28,0,3,92.55,1.7207446808510638 -35,1366,1336,30,0,12,97.8,1.9546120058565153 -36,238,211,27,0,2,88.66,1.7941176470588236 -37,118,94,24,0,1,79.66,1.7118644067796611 -38,704,675,29,0,6,95.88,1.9630681818181819 -39,112,89,23,0,1,79.46,1.6607142857142858 -40,123,100,23,0,1,81.3,1.6910569105691058 -41,122,98,24,0,1,80.33,1.721311475409836 -42,336,308,28,0,3,91.67,1.9285714285714286 -43,814,785,29,0,7,96.44,1.8636363636363635 -44,358,331,27,0,3,92.46,1.8463687150837989 -45,115,91,24,0,1,79.13,1.626086956521739 -46,112,88,24,0,1,78.57,1.4642857142857142 -47,122,98,24,0,1,80.33,1.6557377049180328 -48,113,90,23,0,1,79.65,1.4867256637168142 -49,1108,1079,29,0,9,97.38,1.9747292418772564 -50,118,92,26,0,1,77.97,1.5423728813559323 -51,115,92,23,0,1,80.0,1.5913043478260869 -52,120,95,25,0,1,79.17,1.3666666666666667 -53,338,310,28,0,3,91.72,1.7751479289940828 -54,236,209,27,0,2,88.56,1.8008474576271187 -55,115,92,23,0,1,80.0,1.4608695652173913 -56,123,99,24,0,1,80.49,1.6504065040650406 -57,133,109,24,0,1,81.95,1.7067669172932332 -58,255,228,27,0,2,89.41,1.6745098039215687 -59,100,77,23,0,1,77.0,1.37 -60,133,107,26,0,1,80.45,1.3759398496240602 -61,147,121,26,0,1,82.31,1.619047619047619 -62,130,105,25,0,1,80.77,1.7461538461538462 -63,551,522,29,0,5,94.74,1.7568058076225046 -64,155,130,25,0,1,83.87,1.5806451612903225 -65,251,223,28,0,2,88.84,1.7091633466135459 -66,102,79,23,0,1,77.45,1.4313725490196079 -67,353,325,28,0,3,92.07,1.7705382436260624 -68,245,218,27,0,2,88.98,1.616326530612245 -69,1245,1216,29,0,11,97.67,1.8441767068273092 -70,234,207,27,0,2,88.46,1.6581196581196582 -71,130,106,24,0,1,81.54,1.5 -72,104,80,24,0,1,76.92,1.4807692307692308 -73,112,89,23,0,1,79.46,1.4375 -74,103,80,23,0,1,77.67,1.4077669902912622 -75,19833,19803,30,0,166,99.85,1.58624514697726 -76,134,109,25,0,1,81.34,1.3955223880597014 -77,129,105,24,0,1,81.4,1.6356589147286822 -78,104,81,23,0,1,77.88,1.3269230769230769 -79,139,116,23,0,1,83.45,1.669064748201439 -80,113,89,24,0,1,78.76,1.654867256637168 -81,115,91,24,0,1,79.13,1.5565217391304347 -82,120,95,25,0,1,79.17,1.75 -83,106,83,23,0,1,78.3,1.5943396226415094 -84,106,82,24,0,1,77.36,1.7075471698113207 -85,242,215,27,0,2,88.84,1.756198347107438 -86,102,79,23,0,1,77.45,1.5588235294117647 -87,100,78,22,0,1,78.0,1.38 -88,125,101,24,0,1,80.8,1.504 -89,129,104,25,0,1,80.62,1.682170542635659 -90,100,75,25,0,1,75.0,1.46 -91,243,216,27,0,2,88.89,1.6584362139917694 -92,121,97,24,0,1,80.17,1.4545454545454546 -93,377,349,28,0,3,92.57,1.8249336870026525 -94,114,90,24,0,1,78.95,1.5 -95,135,110,25,0,1,81.48,1.8148148148148149 -96,112,89,23,0,1,79.46,1.5178571428571428 -97,124,101,23,0,1,81.45,1.6129032258064515 -98,1582,1552,30,0,13,98.1,1.9835651074589127 -99,2247,2217,30,0,19,98.66,1.9554962171784602 -100,119,94,25,0,1,78.99,1.4873949579831933 +1,1046,835,211,0,1,79.83,1.511472275334608 +2,3155,2907,248,0,3,92.14,1.8263074484944533 +3,1124,909,215,0,1,80.87,1.596085409252669 +4,1092,876,216,0,1,80.22,1.6272893772893773 +5,2111,1876,235,0,2,88.87,1.7721459024159165 +6,1096,883,213,0,1,80.57,1.6177007299270072 +7,36484,36219,265,0,34,99.27,1.9837737090231333 +8,1106,890,216,0,1,80.47,1.6012658227848102 +9,7586,7329,257,0,7,96.61,1.9272343791194306 +10,1061,850,211,0,1,80.11,1.589066918001885 +11,3225,2979,246,0,3,92.37,1.8316279069767443 +12,1115,899,216,0,1,80.63,1.5919282511210762 +13,3169,2924,245,0,3,92.27,1.8554749132218364 +14,11820,11559,261,0,11,97.79,1.9683587140439933 +15,1094,883,211,0,1,80.71,1.6206581352833638 +16,1056,844,212,0,1,79.92,1.6420454545454546 +17,1067,853,214,0,1,79.94,1.5941893158388003 +18,1078,862,216,0,1,79.96,1.5584415584415585 +19,1058,843,215,0,1,79.68,1.61531190926276 +20,1073,861,212,0,1,80.24,1.6150978564771667 +21,1037,822,215,0,1,79.27,1.5641272902603665 +22,1075,862,213,0,1,80.19,1.6353488372093024 +23,1030,821,209,0,1,79.71,1.5747572815533981 +24,1064,852,212,0,1,80.08,1.6165413533834587 +25,5471,5216,255,0,5,95.34,1.9296289526594772 +26,128924,128658,266,0,121,99.79,1.9766296422698644 +27,1072,855,217,0,1,79.76,1.6100746268656716 +28,2007,1773,234,0,2,88.34,1.7842551071250623 +29,2180,1943,237,0,2,89.13,1.7605504587155962 +30,27777,27513,264,0,26,99.05,1.9725672318824927 +31,1032,816,216,0,1,79.07,1.569767441860465 +32,1025,812,213,0,1,79.22,1.575609756097561 +33,2070,1832,238,0,2,88.5,1.8169082125603864 +34,16940,16677,263,0,16,98.45,1.9874852420306965 +35,1008,801,207,0,1,79.46,1.6001984126984128 +36,1096,884,212,0,1,80.66,1.5857664233576643 +37,4275,4023,252,0,4,94.11,1.88046783625731 +38,1028,815,213,0,1,79.28,1.5807392996108949 +39,1068,856,212,0,1,80.15,1.5795880149812733 +40,8461,8202,259,0,8,96.94,1.9666706063113106 +41,1002,793,209,0,1,79.14,1.562874251497006 +42,2114,1876,238,0,2,88.74,1.7913907284768211 +43,2067,1833,234,0,2,88.68,1.7397194000967586 +44,1046,832,214,0,1,79.54,1.5334608030592733 +45,1102,893,209,0,1,81.03,1.6234119782214156 +46,1011,798,213,0,1,78.93,1.5618199802176063 +47,1132,920,212,0,1,81.27,1.6236749116607774 +48,9644,9384,260,0,9,97.3,1.9399626710908338 +49,2163,1925,238,0,2,89.0,1.765603328710125 +50,1008,798,210,0,1,79.17,1.6587301587301588 +51,1034,819,215,0,1,79.21,1.574468085106383 +52,1052,834,218,0,1,79.28,1.591254752851711 +53,1050,833,217,0,1,79.33,1.6752380952380952 +54,14782,14520,262,0,14,98.23,1.9263293194425652 +55,2138,1900,238,0,2,88.87,1.7600561272217026 +56,4326,4075,251,0,4,94.2,1.9059177068885806 +57,4249,3997,252,0,4,94.07,1.8696163803247823 +58,1064,850,214,0,1,79.89,1.574248120300752 +59,1070,856,214,0,1,80.0,1.5841121495327102 +60,6313,6058,255,0,6,95.96,1.939489941390781 +61,2143,1904,239,0,2,88.85,1.7368175454969668 +62,1066,853,213,0,1,80.02,1.6303939962476548 +63,5272,5017,255,0,5,95.16,1.8988998482549317 +64,1037,827,210,0,1,79.75,1.6663452266152363 +65,5142,4889,253,0,5,95.08,1.9224037339556592 +66,1000,783,217,0,1,78.3,1.57 +67,1064,848,216,0,1,79.7,1.5780075187969924 +68,1093,877,216,0,1,80.24,1.6413540713632204 +69,1085,875,210,0,1,80.65,1.5594470046082949 +70,2123,1885,238,0,2,88.79,1.7644842204427698 +71,1051,838,213,0,1,79.73,1.659372026641294 +72,1074,859,215,0,1,79.98,1.5614525139664805 +73,3227,2979,248,0,3,92.31,1.8404090486519988 +74,1069,855,214,0,1,79.98,1.5930776426566884 +75,1051,838,213,0,1,79.73,1.5470980019029497 +76,1138,920,218,0,1,80.84,1.5500878734622143 +77,2082,1844,238,0,2,88.57,1.749759846301633 +78,1107,894,213,0,1,80.76,1.6567299006323397 +79,1091,875,216,0,1,80.2,1.6223648029330888 +80,1089,876,213,0,1,80.44,1.5583103764921946 +81,4088,3838,250,0,4,93.88,1.8732876712328768 +82,1095,882,213,0,1,80.55,1.5726027397260274 +83,1091,882,209,0,1,80.84,1.620531622364803 +84,2151,1912,239,0,2,88.89,1.7759181775918178 +85,1068,859,209,0,1,80.43,1.5627340823970037 +86,3221,2973,248,0,3,92.3,1.887923005277864 +87,3221,2973,248,0,3,92.3,1.8593604470661285 +88,1059,847,212,0,1,79.98,1.591123701605288 +89,2107,1871,236,0,2,88.8,1.7816801139060274 +90,1030,820,210,0,1,79.61,1.5388349514563107 +91,1067,853,214,0,1,79.94,1.5829428303655109 +92,10619,10359,260,0,10,97.55,1.9609191072605707 +93,2161,1923,238,0,2,88.99,1.7954650624710782 +94,2104,1869,235,0,2,88.83,1.7599809885931559 +95,2143,1906,237,0,2,88.94,1.7223518432104525 +96,1124,905,219,0,1,80.52,1.5951957295373667 +97,1036,824,212,0,1,79.54,1.6303088803088803 +98,1066,850,216,0,1,79.74,1.596622889305816 +99,2203,1964,239,0,2,89.15,1.7748524738992284 +100,2107,1867,240,0,2,88.61,1.7508305647840532 diff --git a/experiments/No_Refresh_4_0s_ttl/hit_age.csv b/experiments/No_Refresh_4_0s_ttl/hit_age.csv index acccfe9..e066d99 100644 --- a/experiments/No_Refresh_4_0s_ttl/hit_age.csv +++ b/experiments/No_Refresh_4_0s_ttl/hit_age.csv @@ -1,101 +1,101 @@ obj_id,hit_rate,avg_age -1,0.7964601769911505,2.066666666666667 -2,0.8110236220472441,1.796116504854369 -3,0.7983193277310925,1.9894736842105263 -4,0.9232876712328767,1.9287833827893175 -5,0.8910505836575876,1.9868995633187774 -6,0.9509306260575296,2.012455516014235 -7,0.9398340248962656,1.8874172185430464 -8,0.8217054263565892,2.141509433962264 -9,0.8015267175572519,1.6476190476190475 -10,0.8865546218487395,1.900473933649289 -11,0.8148148148148148,2.036363636363636 -12,0.9660818713450292,2.095641646489104 -13,0.7964601769911505,2.033333333333333 -14,0.9781954887218045,1.88162951575711 -15,0.941544885177453,1.9379157427937916 -16,0.9247311827956989,2.01453488372093 -17,0.8062015503875969,2.0961538461538463 -18,0.7966101694915254,2.0106382978723403 -19,0.8849557522123894,2.055 -20,0.7948717948717948,2.096774193548387 -21,0.9568452380952381,2.021772939346812 -22,0.9449715370018975,1.9518072289156627 -23,0.8106060606060606,1.9439252336448598 -24,0.7837837837837838,1.8620689655172413 -25,0.7663551401869159,2.2560975609756095 -26,0.7641509433962265,1.9753086419753085 -27,0.8067226890756303,2.0729166666666665 -28,0.8812785388127854,2.0725388601036268 -29,0.8893280632411067,2.071111111111111 -30,0.7807017543859649,2.0 -31,0.8715596330275229,2.205263157894737 -32,0.7863247863247863,1.9130434782608696 -33,0.8,2.1041666666666665 -34,0.925531914893617,1.8591954022988506 -35,0.9780380673499268,1.998502994011976 -36,0.8865546218487395,2.023696682464455 -37,0.7966101694915254,2.148936170212766 -38,0.9588068181818182,2.0474074074074076 -39,0.7946428571428571,2.0898876404494384 -40,0.8130081300813008,2.08 -41,0.8032786885245902,2.142857142857143 -42,0.9166666666666666,2.103896103896104 -43,0.9643734643734644,1.932484076433121 -44,0.9245810055865922,1.9969788519637461 -45,0.7913043478260869,2.0549450549450547 -46,0.7857142857142857,1.8636363636363635 -47,0.8032786885245902,2.061224489795918 -48,0.7964601769911505,1.8666666666666667 -49,0.973826714801444,2.0278035217794255 -50,0.7796610169491526,1.9782608695652173 -51,0.8,1.9891304347826086 -52,0.7916666666666666,1.7263157894736842 -53,0.9171597633136095,1.935483870967742 -54,0.885593220338983,2.0334928229665072 -55,0.8,1.826086956521739 -56,0.8048780487804879,2.0505050505050506 -57,0.8195488721804511,2.0825688073394497 -58,0.8941176470588236,1.8728070175438596 -59,0.77,1.7792207792207793 -60,0.8045112781954887,1.7102803738317758 -61,0.8231292517006803,1.9669421487603307 -62,0.8076923076923077,2.1619047619047618 -63,0.9473684210526315,1.8544061302681993 -64,0.8387096774193549,1.8846153846153846 -65,0.8884462151394422,1.9237668161434978 -66,0.7745098039215687,1.8481012658227849 -67,0.9206798866855525,1.9230769230769231 -68,0.889795918367347,1.81651376146789 -69,0.976706827309237,1.888157894736842 -70,0.8846153846153846,1.8743961352657006 -71,0.8153846153846154,1.8396226415094339 -72,0.7692307692307693,1.925 -73,0.7946428571428571,1.8089887640449438 -74,0.7766990291262136,1.8125 -75,0.9984873695356224,1.588648184618492 -76,0.8134328358208955,1.7155963302752293 -77,0.813953488372093,2.0095238095238095 -78,0.7788461538461539,1.7037037037037037 -79,0.8345323741007195,2.0 -80,0.7876106194690266,2.101123595505618 -81,0.7913043478260869,1.967032967032967 -82,0.7916666666666666,2.210526315789474 -83,0.7830188679245284,2.036144578313253 -84,0.7735849056603774,2.207317073170732 -85,0.8884297520661157,1.9767441860465116 -86,0.7745098039215687,2.0126582278481013 -87,0.78,1.7692307692307692 -88,0.808,1.8613861386138615 -89,0.8062015503875969,2.0865384615384617 -90,0.75,1.9466666666666668 -91,0.8888888888888888,1.8657407407407407 -92,0.8016528925619835,1.8144329896907216 -93,0.9257294429708223,1.9713467048710602 -94,0.7894736842105263,1.9 -95,0.8148148148148148,2.227272727272727 -96,0.7946428571428571,1.9101123595505618 -97,0.8145161290322581,1.9801980198019802 -98,0.9810366624525917,2.0219072164948453 -99,0.986648865153538,1.981957600360848 -100,0.7899159663865546,1.8829787234042554 +1,0.7982791586998088,1.8934131736526947 +2,0.9213946117274168,1.9821121431028552 +3,0.8087188612099644,1.9735973597359735 +4,0.8021978021978022,2.028538812785388 +5,0.8886783514921838,1.994136460554371 +6,0.8056569343065694,2.0079275198187996 +7,0.9927365420458283,1.9982881912808195 +8,0.8047016274864376,1.989887640449438 +9,0.9661218033219088,1.994815118024287 +10,0.8011310084825636,1.983529411764706 +11,0.9237209302325582,1.9828801611278952 +12,0.8062780269058296,1.974416017797553 +13,0.9226885452824235,2.0109439124487003 +14,0.9779187817258883,2.0128038757678 +15,0.8071297989031079,2.0079275198187996 +16,0.7992424242424242,2.0545023696682465 +17,0.7994376757263355,1.9941383352872215 +18,0.7996289424860853,1.948955916473318 +19,0.7967863894139886,2.0272835112692764 +20,0.8024231127679403,2.012775842044135 +21,0.7926711668273867,1.97323600973236 +22,0.8018604651162791,2.039443155452436 +23,0.7970873786407767,1.9756394640682096 +24,0.8007518796992481,2.0187793427230045 +25,0.9533906050082251,2.0239647239263805 +26,0.9979367689491483,1.9807163176794291 +27,0.7975746268656716,2.0187134502923976 +28,0.8834080717488789,2.0197405527354766 +29,0.8912844036697247,1.975295934122491 +30,0.9904957338805487,1.9914949296696107 +31,0.7906976744186046,1.9852941176470589 +32,0.7921951219512195,1.9889162561576355 +33,0.885024154589372,2.052947598253275 +34,0.9844746162927981,2.0188283264376086 +35,0.7946428571428571,2.013732833957553 +36,0.8065693430656934,1.9660633484162895 +37,0.9410526315789474,1.9982600049714143 +38,0.7928015564202334,1.9938650306748467 +39,0.8014981273408239,1.9707943925233644 +40,0.9693889611157074,2.028773469885394 +41,0.7914171656686627,1.974779319041614 +42,0.8874172185430463,2.0186567164179103 +43,0.8867924528301887,1.961811238406983 +44,0.7954110898661568,1.9278846153846154 +45,0.8103448275862069,2.003359462486002 +46,0.7893175074183977,1.9786967418546366 +47,0.8127208480565371,1.9978260869565216 +48,0.9730402322687681,1.9937127024722934 +49,0.889967637540453,1.9838961038961038 +50,0.7916666666666666,2.0952380952380953 +51,0.7920696324951644,1.9877899877899878 +52,0.7927756653992395,2.0071942446043165 +53,0.7933333333333333,2.1116446578631454 +54,0.9822757407657963,1.9610881542699725 +55,0.8886810102899907,1.9805263157894737 +56,0.9419787332408691,2.0233128834355827 +57,0.9406919275123559,1.9874906179634726 +58,0.7988721804511278,1.9705882352941178 +59,0.8,1.980140186915888 +60,0.9596071598289244,2.021129085506768 +61,0.8884741017265516,1.9548319327731092 +62,0.800187617260788,2.037514654161782 +63,0.9516312594840668,1.9954155870041859 +64,0.7974927675988428,2.089480048367594 +65,0.9507973551147414,2.021885866230313 +66,0.783,2.005108556832695 +67,0.7969924812030075,1.9799528301886793 +68,0.8023787740164684,2.0456100342075256 +69,0.8064516129032258,1.9337142857142857 +70,0.8878944889307584,1.9872679045092838 +71,0.7973358705994291,2.081145584725537 +72,0.7998137802607076,1.9522700814901048 +73,0.9231484350790208,1.9936220208123532 +74,0.7998129092609916,1.991812865497076 +75,0.7973358705994291,1.9403341288782816 +76,0.8084358523725835,1.9173913043478261 +77,0.8856868395773295,1.9755965292841648 +78,0.8075880758807588,2.0514541387024607 +79,0.8020164986251146,2.0228571428571427 +80,0.8044077134986226,1.937214611872146 +81,0.9388454011741683,1.9953100573215217 +82,0.8054794520547945,1.9523809523809523 +83,0.8084326306141155,2.00453514739229 +84,0.8888888888888888,1.997907949790795 +85,0.8043071161048689,1.9429569266589057 +86,0.9230052778640174,2.0454086781029264 +87,0.9230052778640174,2.0144635048772286 +88,0.7998111425873465,1.989374262101535 +89,0.8879924062648316,2.006413682522715 +90,0.7961165048543689,1.9329268292682926 +91,0.7994376757263355,1.9800703399765534 +92,0.9755155852716828,2.0101361135244713 +93,0.8898658028690422,2.017680707228289 +94,0.8883079847908745,1.9812734082397003 +95,0.8894073728418106,1.9365162644281217 +96,0.8051601423487544,1.9812154696132596 +97,0.7953667953667953,2.049757281553398 +98,0.797373358348968,2.0023529411764707 +99,0.8915115751248298,1.990835030549898 +100,0.88609397247271,1.9758971612212104 diff --git a/experiments/No_Refresh_4_0s_ttl/lambda_distribution.pdf b/experiments/No_Refresh_4_0s_ttl/lambda_distribution.pdf index fa61beb..22974ce 100644 Binary files a/experiments/No_Refresh_4_0s_ttl/lambda_distribution.pdf and b/experiments/No_Refresh_4_0s_ttl/lambda_distribution.pdf differ diff --git a/experiments/No_Refresh_4_0s_ttl/lambda_vs_access_count.pdf b/experiments/No_Refresh_4_0s_ttl/lambda_vs_access_count.pdf index 0e8bf1e..d0e8f67 100644 Binary files a/experiments/No_Refresh_4_0s_ttl/lambda_vs_access_count.pdf and b/experiments/No_Refresh_4_0s_ttl/lambda_vs_access_count.pdf differ diff --git a/experiments/No_Refresh_4_0s_ttl/objects_in_cache_over_time.pdf b/experiments/No_Refresh_4_0s_ttl/objects_in_cache_over_time.pdf index c6684fe..676c410 100644 Binary files a/experiments/No_Refresh_4_0s_ttl/objects_in_cache_over_time.pdf and b/experiments/No_Refresh_4_0s_ttl/objects_in_cache_over_time.pdf differ diff --git a/experiments/No_Refresh_4_0s_ttl/overall_hit_age.csv b/experiments/No_Refresh_4_0s_ttl/overall_hit_age.csv index fada11a..dafb901 100644 --- a/experiments/No_Refresh_4_0s_ttl/overall_hit_age.csv +++ b/experiments/No_Refresh_4_0s_ttl/overall_hit_age.csv @@ -1,9 +1,9 @@ ,hit_rate,avg_age count,100.0,100.0 -mean,0.8461611168860607,1.966244726179581 -std,0.06904890299740231,0.12918574131498722 -min,0.75,1.588648184618492 -25%,0.7946428571428571,1.8798211706342576 -50%,0.8120158760642724,1.9792294446835987 -75%,0.8918173495078966,2.054958791208791 -max,0.9984873695356224,2.2560975609756095 +mean,0.8529286517016675,1.9959603082017114 +std,0.06775773364762111,0.0367534968685268 +min,0.783,1.8934131736526947 +25%,0.7991498632946001,1.9758327369329602 +50%,0.8065104779844596,1.9937888665735701 +75%,0.891341196533501,2.0179247095256945 +max,0.9979367689491483,2.1116446578631454 diff --git a/experiments/No_Refresh_5_0s_ttl/details.csv b/experiments/No_Refresh_5_0s_ttl/details.csv index 50ab84b..556b6f4 100644 --- a/experiments/No_Refresh_5_0s_ttl/details.csv +++ b/experiments/No_Refresh_5_0s_ttl/details.csv @@ -1,101 +1,101 @@ obj_id,access_count,hits,misses,mu,lambda,hit_rate,avg_age -1,136,113,23,0,1,83.09,2.0808823529411766 -2,139,117,22,0,1,84.17,2.1870503597122304 -3,151,127,24,0,1,84.11,1.8344370860927153 -4,385,360,25,0,3,93.51,2.412987012987013 -5,135,112,23,0,1,82.96,1.8 -6,130,107,23,0,1,82.31,1.823076923076923 -7,129,107,22,0,1,82.95,2.1782945736434107 -8,133,110,23,0,1,82.71,2.075187969924812 -9,132,110,22,0,1,83.33,2.1136363636363638 -10,113,92,21,0,1,81.42,2.0707964601769913 -11,278,253,25,0,2,91.01,2.0755395683453237 -12,126,103,23,0,1,81.75,2.007936507936508 -13,128,105,23,0,1,82.03,2.109375 -14,147,126,21,0,1,85.71,2.183673469387755 -15,137,113,24,0,1,82.48,2.0072992700729926 -16,123,100,23,0,1,81.3,1.8048780487804879 -17,239,215,24,0,2,89.96,2.2677824267782425 -18,135,113,22,0,1,83.7,2.1481481481481484 -19,124,102,22,0,1,82.26,2.161290322580645 -20,264,239,25,0,2,90.53,2.242424242424242 -21,124,101,23,0,1,81.45,2.1129032258064515 -22,277,252,25,0,2,90.97,1.963898916967509 -23,127,105,22,0,1,82.68,2.0078740157480315 -24,2113,2086,27,0,16,98.72,2.4557501183151915 -25,271,247,24,0,2,91.14,2.2287822878228782 -26,126,104,22,0,1,82.54,1.8571428571428572 -27,160,137,23,0,1,85.62,2.3375 -28,122,99,23,0,1,81.15,2.0737704918032787 -29,768,742,26,0,6,96.61,2.5247395833333335 -30,267,243,24,0,2,91.01,2.4644194756554305 -31,260,236,24,0,2,90.77,2.326923076923077 -32,127,105,22,0,1,82.68,1.9448818897637796 -33,131,109,22,0,1,83.21,1.8931297709923665 -34,135,111,24,0,1,82.22,2.037037037037037 -35,378,353,25,0,3,93.39,2.328042328042328 -36,408,382,26,0,3,93.63,2.2205882352941178 -37,121,98,23,0,1,80.99,2.024793388429752 -38,139,116,23,0,1,83.45,2.028776978417266 -39,279,254,25,0,2,91.04,2.3512544802867383 -40,580,554,26,0,4,95.52,2.360344827586207 -41,276,251,25,0,2,90.94,2.25 -42,131,111,20,0,1,84.73,2.1374045801526718 -43,385,360,25,0,3,93.51,2.3766233766233764 -44,690,664,26,0,5,96.23,2.294202898550725 -45,139,116,23,0,1,83.45,2.014388489208633 -46,1010,983,27,0,7,97.33,2.488118811881188 -47,261,237,24,0,2,90.8,2.256704980842912 -48,158,134,24,0,1,84.81,2.2025316455696204 -49,121,100,21,0,1,82.64,2.0661157024793386 -50,125,103,22,0,1,82.4,2.208 -51,154,131,23,0,1,85.06,2.0259740259740258 -52,126,103,23,0,1,81.75,2.0952380952380953 -53,141,118,23,0,1,83.69,2.00709219858156 -54,153,130,23,0,1,84.97,2.111111111111111 -55,131,109,22,0,1,83.21,2.16793893129771 -56,409,383,26,0,3,93.64,2.3056234718826407 -57,132,110,22,0,1,83.33,1.9166666666666667 -58,415,390,25,0,3,93.98,2.2409638554216866 -59,141,118,23,0,1,83.69,1.8794326241134751 -60,152,128,24,0,1,84.21,2.1052631578947367 -61,123,100,23,0,1,81.3,1.9024390243902438 -62,240,216,24,0,2,90.0,2.225 -63,132,110,22,0,1,83.33,1.9393939393939394 -64,133,110,23,0,1,82.71,2.045112781954887 -65,302,276,26,0,2,91.39,2.218543046357616 -66,127,105,22,0,1,82.68,1.937007874015748 -67,134,111,23,0,1,82.84,2.1940298507462686 -68,100,78,22,0,1,78.0,2.08 -69,151,128,23,0,1,84.77,2.2980132450331126 -70,133,109,24,0,1,81.95,1.9548872180451127 -71,139,117,22,0,1,84.17,2.2014388489208634 -72,108,86,22,0,1,79.63,1.9259259259259258 -73,140,116,24,0,1,82.86,1.9 -74,157,133,24,0,1,84.71,2.1656050955414012 -75,133,110,23,0,1,82.71,2.2706766917293235 -76,132,110,22,0,1,83.33,2.121212121212121 -77,380,354,26,0,3,93.16,2.471052631578947 -78,139,118,21,0,1,84.89,2.035971223021583 -79,145,122,23,0,1,84.14,2.0827586206896553 -80,259,234,25,0,2,90.35,2.2664092664092665 -81,31960,31933,27,0,241,99.92,2.046589486858573 -82,380,355,25,0,3,93.42,2.305263157894737 -83,126,104,22,0,1,82.54,1.8968253968253967 -84,135,113,22,0,1,83.7,2.140740740740741 -85,249,224,25,0,2,89.96,2.3293172690763053 -86,519,493,26,0,4,94.99,2.250481695568401 -87,413,387,26,0,3,93.7,2.1598062953995156 -88,271,246,25,0,2,90.77,2.1549815498154983 -89,2027,2000,27,0,15,98.67,2.3739516526887026 -90,129,107,22,0,1,82.95,2.062015503875969 -91,406,381,25,0,3,93.84,2.2610837438423643 -92,139,115,24,0,1,82.73,2.172661870503597 -93,677,651,26,0,5,96.16,2.3943870014771047 -94,136,113,23,0,1,83.09,1.9779411764705883 -95,152,128,24,0,1,84.21,2.210526315789474 -96,904,877,27,0,7,97.01,2.424778761061947 -97,392,366,26,0,3,93.37,2.326530612244898 -98,136,114,22,0,1,83.82,2.1838235294117645 -99,243,219,24,0,2,90.12,2.1893004115226335 -100,272,247,25,0,2,90.81,2.1654411764705883 +1,1017,842,175,0,1,82.79,2.057030481809243 +2,20019,19810,209,0,19,98.96,2.4550676856985865 +3,1075,896,179,0,1,83.35,2.046511627906977 +4,1095,918,177,0,1,83.84,2.0182648401826486 +5,1010,834,176,0,1,82.57,2.0287128712871287 +6,5324,5120,204,0,5,96.17,2.432757325319309 +7,2139,1944,195,0,2,90.88,2.2954651706404863 +8,1059,883,176,0,1,83.38,2.075542965061379 +9,1017,844,173,0,1,82.99,2.062930186823992 +10,3214,3015,199,0,3,93.81,2.3378967019290604 +11,1041,864,177,0,1,83.0,2.143131604226705 +12,3188,2990,198,0,3,93.79,2.3808030112923464 +13,1022,845,177,0,1,82.68,2.080234833659491 +14,1067,890,177,0,1,83.41,2.121836925960637 +15,1042,867,175,0,1,83.21,2.1833013435700575 +16,1097,921,176,0,1,83.96,2.1011850501367366 +17,5256,5053,203,0,5,96.14,2.4185692541856927 +18,2164,1970,194,0,2,91.04,2.2384473197781887 +19,12809,12601,208,0,12,98.38,2.4585838082598173 +20,1028,850,178,0,1,82.68,2.0428015564202333 +21,1118,940,178,0,1,84.08,2.186046511627907 +22,4223,4020,203,0,4,95.19,2.4106085721051387 +23,1063,889,174,0,1,83.63,1.9614299153339605 +24,1098,922,176,0,1,83.97,2.0 +25,3158,2960,198,0,3,93.73,2.3556048131728944 +26,1062,887,175,0,1,83.52,2.1421845574387945 +27,1058,880,178,0,1,83.18,2.112476370510397 +28,97039,96828,211,0,92,99.78,2.4460680757221325 +29,2078,1886,192,0,2,90.76,2.296438883541867 +30,5251,5048,203,0,5,96.13,2.410588459341078 +31,1093,913,180,0,1,83.53,2.0347666971637692 +32,1039,865,174,0,1,83.25,2.051973051010587 +33,1034,862,172,0,1,83.37,2.0599613152804643 +34,1057,881,176,0,1,83.35,2.1712393566698203 +35,1135,957,178,0,1,84.32,2.1145374449339207 +36,5214,5012,202,0,5,96.13,2.345416187188339 +37,32649,32439,210,0,31,99.36,2.521853655548409 +38,2052,1861,191,0,2,90.69,2.257797270955166 +39,2122,1931,191,0,2,91.0,2.2582469368520264 +40,5396,5191,205,0,5,96.2,2.38880652335063 +41,1062,882,180,0,1,83.05,2.083804143126177 +42,2069,1879,190,0,2,90.82,2.247462542290962 +43,2051,1858,193,0,2,90.59,2.262311067771819 +44,1098,919,179,0,1,83.7,2.0564663023679417 +45,1047,871,176,0,1,83.19,2.0448901623686724 +46,1087,916,171,0,1,84.27,2.044158233670653 +47,1020,845,175,0,1,82.84,2.0764705882352943 +48,1066,892,174,0,1,83.68,2.1397748592870545 +49,2105,1914,191,0,2,90.93,2.2679334916864606 +50,1098,921,177,0,1,83.88,2.0801457194899817 +51,1081,906,175,0,1,83.81,2.087881591119334 +52,1029,855,174,0,1,83.09,2.072886297376093 +53,5238,5035,203,0,5,96.12,2.4014891179839633 +54,1044,868,176,0,1,83.14,2.057471264367816 +55,1028,855,173,0,1,83.17,2.0836575875486383 +56,4234,4031,203,0,4,95.21,2.411667453944261 +57,3136,2938,198,0,3,93.69,2.314732142857143 +58,2111,1919,192,0,2,90.9,2.286120322122217 +59,1077,901,176,0,1,83.66,2.071494893221913 +60,1083,904,179,0,1,83.47,2.1865189289012004 +61,1052,874,178,0,1,83.08,2.008555133079848 +62,2113,1922,191,0,2,90.96,2.2749645054424987 +63,3164,2966,198,0,3,93.74,2.326801517067004 +64,1078,901,177,0,1,83.58,2.047309833024119 +65,5165,4962,203,0,5,96.07,2.3688286544046466 +66,1081,903,178,0,1,83.53,2.057354301572618 +67,1001,828,173,0,1,82.72,2.07992007992008 +68,2105,1913,192,0,2,90.88,2.224228028503563 +69,2164,1969,195,0,2,90.99,2.2523105360443623 +70,1099,921,178,0,1,83.8,2.1255686988171063 +71,1000,825,175,0,1,82.5,2.077 +72,1025,851,174,0,1,83.02,2.1365853658536587 +73,2080,1887,193,0,2,90.72,2.3610576923076922 +74,1111,934,177,0,1,84.07,2.1467146714671466 +75,1022,847,175,0,1,82.88,2.00293542074364 +76,1109,932,177,0,1,84.04,2.1199278629395852 +77,1053,876,177,0,1,83.19,2.0579297245963915 +78,1059,884,175,0,1,83.47,2.169971671388102 +79,1055,879,176,0,1,83.32,2.104265402843602 +80,1059,882,177,0,1,83.29,2.1359773371104818 +81,1052,877,175,0,1,83.37,2.0627376425855513 +82,1052,875,177,0,1,83.17,2.0665399239543727 +83,1082,904,178,0,1,83.55,2.093345656192237 +84,2116,1924,192,0,2,90.93,2.2485822306238186 +85,2042,1850,192,0,2,90.6,2.225269343780607 +86,1092,914,178,0,1,83.7,2.022893772893773 +87,37129,36919,210,0,35,99.43,2.4789517627730344 +88,5299,5096,203,0,5,96.17,2.383657293829024 +89,2089,1899,190,0,2,90.9,2.2264241263762568 +90,1095,920,175,0,1,84.02,2.14337899543379 +91,1072,895,177,0,1,83.49,2.058768656716418 +92,4172,3970,202,0,4,95.16,2.4206615532118887 +93,1042,864,178,0,1,82.92,2.1228406909788866 +94,1081,906,175,0,1,83.81,2.026827012025902 +95,1066,890,176,0,1,83.49,2.0881801125703565 +96,1028,854,174,0,1,83.07,2.09727626459144 +97,1041,866,175,0,1,83.19,2.1248799231508166 +98,1053,875,178,0,1,83.1,2.0313390313390314 +99,1047,869,178,0,1,83.0,2.09360076408787 +100,1030,853,177,0,1,82.82,2.0893203883495146 diff --git a/experiments/No_Refresh_5_0s_ttl/hit_age.csv b/experiments/No_Refresh_5_0s_ttl/hit_age.csv index 5903e50..297e993 100644 --- a/experiments/No_Refresh_5_0s_ttl/hit_age.csv +++ b/experiments/No_Refresh_5_0s_ttl/hit_age.csv @@ -1,101 +1,101 @@ obj_id,hit_rate,avg_age -1,0.8308823529411765,2.504424778761062 -2,0.841726618705036,2.5982905982905984 -3,0.8410596026490066,2.1811023622047245 -4,0.935064935064935,2.5805555555555557 -5,0.8296296296296296,2.169642857142857 -6,0.823076923076923,2.2149532710280373 -7,0.8294573643410853,2.6261682242990654 -8,0.8270676691729323,2.5090909090909093 -9,0.8333333333333334,2.536363636363636 -10,0.8141592920353983,2.5434782608695654 -11,0.9100719424460432,2.280632411067194 -12,0.8174603174603174,2.4563106796116503 -13,0.8203125,2.5714285714285716 -14,0.8571428571428571,2.5476190476190474 -15,0.8248175182481752,2.433628318584071 -16,0.8130081300813008,2.22 -17,0.899581589958159,2.5209302325581397 -18,0.837037037037037,2.566371681415929 -19,0.8225806451612904,2.627450980392157 -20,0.9053030303030303,2.4769874476987446 -21,0.8145161290322581,2.594059405940594 -22,0.9097472924187726,2.1587301587301586 -23,0.8267716535433071,2.4285714285714284 -24,0.987221959299574,2.487535953978907 -25,0.9114391143911439,2.445344129554656 -26,0.8253968253968254,2.25 -27,0.85625,2.72992700729927 -28,0.8114754098360656,2.5555555555555554 -29,0.9661458333333334,2.6132075471698113 -30,0.9101123595505618,2.707818930041152 -31,0.9076923076923077,2.5635593220338984 -32,0.8267716535433071,2.3523809523809525 -33,0.8320610687022901,2.2752293577981653 -34,0.8222222222222222,2.4774774774774775 -35,0.9338624338624338,2.492917847025496 -36,0.9362745098039216,2.3717277486910993 -37,0.8099173553719008,2.5 -38,0.8345323741007195,2.4310344827586206 -39,0.910394265232975,2.5826771653543306 -40,0.9551724137931035,2.4711191335740073 -41,0.9094202898550725,2.4741035856573705 -42,0.8473282442748091,2.5225225225225225 -43,0.935064935064935,2.5416666666666665 -44,0.9623188405797102,2.3840361445783134 -45,0.8345323741007195,2.413793103448276 -46,0.9732673267326732,2.5564598168870805 -47,0.9080459770114943,2.4852320675105486 -48,0.8481012658227848,2.5970149253731343 -49,0.8264462809917356,2.5 -50,0.824,2.679611650485437 -51,0.8506493506493507,2.381679389312977 -52,0.8174603174603174,2.563106796116505 -53,0.8368794326241135,2.3983050847457625 -54,0.8496732026143791,2.4846153846153847 -55,0.8320610687022901,2.6055045871559632 -56,0.9364303178484108,2.462140992167102 -57,0.8333333333333334,2.3 -58,0.9397590361445783,2.3846153846153846 -59,0.8368794326241135,2.2457627118644066 -60,0.8421052631578947,2.5 -61,0.8130081300813008,2.34 -62,0.9,2.4722222222222223 -63,0.8333333333333334,2.327272727272727 -64,0.8270676691729323,2.4727272727272727 -65,0.9139072847682119,2.427536231884058 -66,0.8267716535433071,2.342857142857143 -67,0.8283582089552238,2.6486486486486487 -68,0.78,2.6666666666666665 -69,0.847682119205298,2.7109375 -70,0.8195488721804511,2.385321100917431 -71,0.841726618705036,2.6153846153846154 -72,0.7962962962962963,2.4186046511627906 -73,0.8285714285714286,2.293103448275862 -74,0.8471337579617835,2.556390977443609 -75,0.8270676691729323,2.7454545454545456 -76,0.8333333333333334,2.5454545454545454 -77,0.9315789473684211,2.652542372881356 -78,0.8489208633093526,2.3983050847457625 -79,0.8413793103448276,2.4754098360655736 -80,0.9034749034749034,2.5085470085470085 -81,0.9991551939924906,2.0483199198321485 -82,0.9342105263157895,2.4676056338028167 -83,0.8253968253968254,2.298076923076923 -84,0.837037037037037,2.5575221238938055 -85,0.8995983935742972,2.5892857142857144 -86,0.9499036608863198,2.369168356997972 -87,0.937046004842615,2.304909560723514 -88,0.9077490774907749,2.3739837398373984 -89,0.986679822397632,2.406 -90,0.8294573643410853,2.485981308411215 -91,0.9384236453201971,2.409448818897638 -92,0.8273381294964028,2.626086956521739 -93,0.9615952732644018,2.490015360983103 -94,0.8308823529411765,2.3805309734513274 -95,0.8421052631578947,2.625 -96,0.9701327433628318,2.4994298745724057 -97,0.9336734693877551,2.4918032786885247 -98,0.8382352941176471,2.6052631578947367 -99,0.9012345679012346,2.4292237442922375 -100,0.9080882352941176,2.3846153846153846 +1,0.8279252704031466,2.4845605700712587 +2,0.9895599180778261,2.480969207470974 +3,0.8334883720930233,2.455357142857143 +4,0.8383561643835616,2.4074074074074074 +5,0.8257425742574257,2.4568345323741005 +6,0.9616829451540195,2.5296875 +7,0.908835904628331,2.5257201646090537 +8,0.833805476864967,2.4892412231030576 +9,0.8298918387413963,2.485781990521327 +10,0.9380833851897946,2.492205638474295 +11,0.829971181556196,2.582175925925926 +12,0.937892095357591,2.5384615384615383 +13,0.8268101761252447,2.515976331360947 +14,0.8341143392689785,2.5438202247191013 +15,0.8320537428023033,2.6239907727797003 +16,0.8395624430264357,2.50271444082519 +17,0.9613774733637748,2.515733227785474 +18,0.910351201478743,2.4588832487309644 +19,0.9837614177531423,2.4991667327989844 +20,0.8268482490272373,2.4705882352941178 +21,0.8407871198568873,2.6 +22,0.9519299076485911,2.5323383084577116 +23,0.8363123236124177,2.34533183352081 +24,0.8397085610200364,2.3817787418655096 +25,0.9373020899303357,2.513175675675676 +26,0.835216572504708,2.564825253664036 +27,0.831758034026465,2.539772727272727 +28,0.9978256165047042,2.4513983558474823 +29,0.9076034648700674,2.5302226935312833 +30,0.9613406970100933,2.5075277337559427 +31,0.8353156450137237,2.43592552026287 +32,0.8325312800769971,2.4647398843930635 +33,0.8336557059961315,2.4709976798143853 +34,0.8334910122989593,2.604994324631101 +35,0.8431718061674008,2.5078369905956115 +36,0.9612581511315689,2.439944134078212 +37,0.993567950013783,2.5381793520145504 +38,0.9069200779727096,2.489521762493283 +39,0.909990574929312,2.48161574313827 +40,0.962008895478132,2.4831439029088807 +41,0.8305084745762712,2.5090702947845807 +42,0.9081681971967134,2.474720596061735 +43,0.9058995611896635,2.497308934337998 +44,0.836976320582878,2.457018498367791 +45,0.8319006685768864,2.4580941446613087 +46,0.8426862925482981,2.425764192139738 +47,0.8284313725490197,2.506508875739645 +48,0.8367729831144465,2.557174887892377 +49,0.9092636579572446,2.4942528735632186 +50,0.8387978142076503,2.479913137893594 +51,0.8381128584643849,2.4911699779249448 +52,0.8309037900874635,2.4947368421052634 +53,0.9612447499045437,2.498311817279047 +54,0.8314176245210728,2.474654377880184 +55,0.8317120622568094,2.5052631578947366 +56,0.952054794520548,2.533118332919871 +57,0.9368622448979592,2.47072838665759 +58,0.9090478446234013,2.514851485148515 +59,0.8365831012070566,2.4761376248612654 +60,0.8347183748845799,2.6194690265486726 +61,0.8307984790874525,2.417620137299771 +62,0.9096071935636536,2.501040582726327 +63,0.9374209860935525,2.4821308159136883 +64,0.8358070500927643,2.4495005549389566 +65,0.9606969990319458,2.465739621120516 +66,0.8353376503237743,2.4629014396456257 +67,0.8271728271728271,2.5144927536231885 +68,0.9087885985748219,2.4474647151071616 +69,0.9098890942698706,2.4753682072117824 +70,0.83803457688808,2.536373507057546 +71,0.825,2.5175757575757576 +72,0.8302439024390244,2.573443008225617 +73,0.9072115384615385,2.602543720190779 +74,0.8406840684068407,2.5535331905781584 +75,0.8287671232876712,2.4167650531286893 +76,0.8403967538322813,2.522532188841202 +77,0.8319088319088319,2.473744292237443 +78,0.8347497639282342,2.5995475113122173 +79,0.833175355450237,2.525597269624573 +80,0.8328611898016998,2.564625850340136 +81,0.8336501901140685,2.4743443557582667 +82,0.8317490494296578,2.4845714285714284 +83,0.8354898336414048,2.5055309734513274 +84,0.9092627599243857,2.472972972972973 +85,0.9059745347698335,2.456216216216216 +86,0.836996336996337,2.4168490153172866 +87,0.9943440437393951,2.493052357864514 +88,0.9616908850726552,2.4786106750392465 +89,0.9090473910962182,2.4491837809373354 +90,0.8401826484018264,2.5510869565217393 +91,0.8348880597014925,2.465921787709497 +92,0.951581975071908,2.5438287153652395 +93,0.8291746641074856,2.560185185185185 +94,0.8381128584643849,2.4183222958057393 +95,0.8348968105065666,2.501123595505618 +96,0.830739299610895,2.5245901639344264 +97,0.8318924111431316,2.5542725173210163 +98,0.8309591642924976,2.4445714285714284 +99,0.8299904489016237,2.522439585730725 +100,0.8281553398058252,2.5228604923798357 diff --git a/experiments/No_Refresh_5_0s_ttl/lambda_distribution.pdf b/experiments/No_Refresh_5_0s_ttl/lambda_distribution.pdf index 13b919e..ac290f2 100644 Binary files a/experiments/No_Refresh_5_0s_ttl/lambda_distribution.pdf and b/experiments/No_Refresh_5_0s_ttl/lambda_distribution.pdf differ diff --git a/experiments/No_Refresh_5_0s_ttl/lambda_vs_access_count.pdf b/experiments/No_Refresh_5_0s_ttl/lambda_vs_access_count.pdf index fd026a9..f8e194c 100644 Binary files a/experiments/No_Refresh_5_0s_ttl/lambda_vs_access_count.pdf and b/experiments/No_Refresh_5_0s_ttl/lambda_vs_access_count.pdf differ diff --git a/experiments/No_Refresh_5_0s_ttl/objects_in_cache_over_time.pdf b/experiments/No_Refresh_5_0s_ttl/objects_in_cache_over_time.pdf index 41ad058..d4a5f11 100644 Binary files a/experiments/No_Refresh_5_0s_ttl/objects_in_cache_over_time.pdf and b/experiments/No_Refresh_5_0s_ttl/objects_in_cache_over_time.pdf differ diff --git a/experiments/No_Refresh_5_0s_ttl/overall_hit_age.csv b/experiments/No_Refresh_5_0s_ttl/overall_hit_age.csv index 9a6e03d..b56c3d5 100644 --- a/experiments/No_Refresh_5_0s_ttl/overall_hit_age.csv +++ b/experiments/No_Refresh_5_0s_ttl/overall_hit_age.csv @@ -1,9 +1,9 @@ ,hit_rate,avg_age count,100.0,100.0 -mean,0.8689161003980432,2.469801316710304 -std,0.05362014513420393,0.13549611807744597 -min,0.78,2.0483199198321485 -25%,0.8270676691729323,2.3846153846153846 -50%,0.841726618705036,2.4849237260629664 -75%,0.9100820467221729,2.5632199275958536 -max,0.9991551939924906,2.7454545454545456 +mean,0.8725120313088975,2.498238888150122 +std,0.054253138996698945,0.05047201928154133 +min,0.825,2.34533183352081 +25%,0.8319067910758455,2.4694216233979627 +50%,0.8375154569422085,2.494494857834241 +75%,0.9093495418588469,2.5267119984567903 +max,0.9978256165047042,2.6239907727797003 diff --git a/experiments/avg_ages.md b/experiments/avg_ages.md index ba3a913..f7d5a3c 100644 --- a/experiments/avg_ages.md +++ b/experiments/avg_ages.md @@ -1,8 +1,8 @@ | | avg_ages | |:-----|-----------:| -| 0.5s | 0.240582 | -| 1.0s | 0.497634 | -| 2.0s | 1.00349 | -| 3.0s | 1.47952 | -| 4.0s | 1.96624 | -| 5.0s | 2.4698 | \ No newline at end of file +| 0.5s | 0.248128 | +| 1.0s | 0.501545 | +| 2.0s | 0.99723 | +| 3.0s | 1.49935 | +| 4.0s | 1.99596 | +| 5.0s | 2.49824 | \ No newline at end of file diff --git a/experiments/hit_rates.md b/experiments/hit_rates.md index 7db1536..07ecab2 100644 --- a/experiments/hit_rates.md +++ b/experiments/hit_rates.md @@ -1,8 +1,8 @@ | | hit_rates | |:-----|------------:| -| 0.5s | 0.45867 | -| 1.0s | 0.619674 | -| 2.0s | 0.769815 | -| 3.0s | 0.790693 | -| 4.0s | 0.846161 | -| 5.0s | 0.868916 | \ No newline at end of file +| 0.5s | 0.459811 | +| 1.0s | 0.610659 | +| 2.0s | 0.72776 | +| 3.0s | 0.815904 | +| 4.0s | 0.852929 | +| 5.0s | 0.872512 | \ No newline at end of file diff --git a/experiments/hr_and_age_vs_ttl.png b/experiments/hr_and_age_vs_ttl.png index 2f48f09..b32fe8d 100644 Binary files a/experiments/hr_and_age_vs_ttl.png and b/experiments/hr_and_age_vs_ttl.png differ diff --git a/multi_aoi_cache_simulation.ipynb b/multi_aoi_cache_simulation.ipynb index 8b05ac0..1578e78 100644 --- a/multi_aoi_cache_simulation.ipynb +++ b/multi_aoi_cache_simulation.ipynb @@ -25,7 +25,7 @@ "# Constants\n", "SEED = 42\n", "DATABASE_OBJECTS = 100 # Number of objects in the database\n", - "ACCESS_COUNT_LIMIT = 100 # Total time to run the simulation\n", + "ACCESS_COUNT_LIMIT = 1000 # Total time to run the simulation\n", "EXPERIMENT_BASE_DIR = \"./experiments/\"\n", "TEMP_BASE_DIR = \"./.aoi_cache/\"\n", "\n", @@ -331,7 +331,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Progress: 100%|████████████████████████████████████████████████████▉| 999/1000 [00:07<00:00, 131.29it/s]" + "Progress: 100%|████████████████████████████████████████████████████▉| 999/1000 [00:06<00:00, 162.60it/s]" ] }, {