[{"data":1,"prerenderedAt":2586},["ShallowReactive",2],{"blog-current-raid5-vs-raid10-performance-benchmark-mdadm-en":3,"blog-previous-raid5-vs-raid10-performance-benchmark-mdadm-en":209,"blog-next-raid5-vs-raid10-performance-benchmark-mdadm-en":224,"blog-alt-de-raid5-vs-raid10-performance-benchmark-mdadm-en":236,"blog-alt-en-raid5-vs-raid10-performance-benchmark-mdadm-en":238,"employee-bernd-helm":239,"content-query-UXS9ccDnv4":345,"content-query-MZ7t3ppMsS":1969,"content-query-EC7xcJJMAZ":2486,"content-query-1PFeYVQSzn":2523,"related-refs-devops--en":2559},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"author":10,"image":11,"releaseDate":12,"blogCategories":13,"articleTags":16,"tags":18,"body":20,"_type":203,"_id":204,"_source":205,"_file":206,"_stem":207,"_extension":208},"/en/blog/raid5-vs-raid10-performance-benchmark-mdadm","blog",false,"","RAID5 vs Raid10 Performance Benchmark MDADM","Comment and investigation in RAID performance RAID 5 vs RAID10 has been discussed for ages; it's common knowledge that RAID10 offers better performance – but how much depends on the actual implementation, hardware and use-case. I just got a server with 4 x 16TB …","bernd-helm","/blog/thumbnails/RAID_white.png","2019-11-06",[14,15],"What moves us","Infrastructure",[17],"SSD",[19],"devops",{"type":21,"children":22,"toc":195},"root",[23,32,38,43,49,69,75,80,89,94,99,104,109,115,120,130,140,150,155,160,169,174,180,185,190],{"type":24,"tag":25,"props":26,"children":28},"element","h2",{"id":27},"comment-and-investigation-in-raid-performance",[29],{"type":30,"value":31},"text","Comment and Investigation in RAID Performance",{"type":24,"tag":33,"props":34,"children":35},"p",{},[36],{"type":30,"value":37},"RAID 5 vs RAID10 has been discussed for ages; its common knowledge that RAID10 offers better performance – but how much depends on the actual implementation, hardware and use-case.",{"type":24,"tag":33,"props":39,"children":40},{},[41],{"type":30,"value":42},"I just got a Server with 4 x 16TB of disks, all brand new, and decided to give it a test to find out if the performance gains of raid 10 justify the smaller usable disk space. We plan to use it as a Backup-Server so our workload is mostly sequential write.",{"type":24,"tag":25,"props":44,"children":46},{"id":45},"testing-methodology",[47],{"type":30,"value":48},"Testing Methodology",{"type":24,"tag":33,"props":50,"children":51},{},[52,54,60,62,67],{"type":30,"value":53},"All tests are executed using ",{"type":24,"tag":55,"props":56,"children":57},"em",{},[58],{"type":30,"value":59},"fio",{"type":30,"value":61}," with ",{"type":24,"tag":55,"props":63,"children":64},{},[65],{"type":30,"value":66},"iodepth=32 direct=1 ioengine=libaio refill_buffers",{"type":30,"value":68}," and a time limit of 60 seconds. the sequential read and write tests are done with 1024k block size and 1 process. The random read/write tests with 4k block size and 4 processes. For testing, a 30GB partition on the start of each disk is used. The Linux kernel version is 5.10.",{"type":24,"tag":25,"props":70,"children":72},{"id":71},"plain-disk-performance",[73],{"type":30,"value":74},"Plain Disk performance",{"type":24,"tag":33,"props":76,"children":77},{},[78],{"type":30,"value":79},"Before I get to the actual testing, I want to get the baseline of a single disks performance and also make sure that all disks are performing similar.",{"type":24,"tag":81,"props":82,"children":88},"img",{"alt":83,"aspect-ratio":84,"height":85,"object-fit":86,"src":87},"raid_1","2",200,"contain","/blog/raid_1.png",[],{"type":24,"tag":81,"props":90,"children":93},{"alt":91,"aspect-ratio":84,"height":85,"object-fit":86,"src":92},"raid_2","/blog/raid_2.png",[],{"type":24,"tag":81,"props":95,"children":98},{"alt":96,"aspect-ratio":84,"height":85,"object-fit":86,"src":97},"raid_3","/blog/raid_3.png",[],{"type":24,"tag":81,"props":100,"children":103},{"alt":101,"aspect-ratio":84,"height":85,"object-fit":86,"src":102},"raid_4","/blog/raid_4.png",[],{"type":24,"tag":33,"props":105,"children":106},{},[107],{"type":30,"value":108},"Everything looks nice a flat here as it should. We have around 268MB/s sequential read and write and a random IOPS performance of 550 read / 480 write.",{"type":24,"tag":25,"props":110,"children":112},{"id":111},"raid-5-vs-raid-10",[113],{"type":30,"value":114},"Raid 5 vs Raid 10",{"type":24,"tag":81,"props":116,"children":119},{"alt":117,"aspect-ratio":84,"height":85,"object-fit":86,"src":118},"raid_5","/blog/raid_5.png",[],{"type":24,"tag":33,"props":121,"children":122},{},[123,125],{"type":30,"value":124},"The Seq. Reading performance between RAID5 and RAID10 is smaller than i would have guessed. The far2 layout really makes a difference here.\n",{"type":24,"tag":81,"props":126,"children":129},{"alt":127,"aspect-ratio":84,"height":85,"object-fit":86,"src":128},"raid_6","/blog/raid_6.png",[],{"type":24,"tag":33,"props":131,"children":132},{},[133,135],{"type":30,"value":134},"With Seq. writing, we see real differences. The „Classic“ Raid10 shows the best write speed, while the far2 and raid5 are each a step-down.\n",{"type":24,"tag":81,"props":136,"children":139},{"alt":137,"aspect-ratio":84,"height":85,"object-fit":86,"src":138},"raid_7","/blog/raid_7.png",[],{"type":24,"tag":33,"props":141,"children":142},{},[143,145],{"type":30,"value":144},"Interestingly, there is not much difference on the random read test, which i would not have expected.\n",{"type":24,"tag":81,"props":146,"children":149},{"alt":147,"aspect-ratio":84,"height":85,"object-fit":86,"src":148},"raid_8","/blog/raid_8.png",[],{"type":24,"tag":33,"props":151,"children":152},{},[153],{"type":30,"value":154},"The Rand Write graph looks very similar to the Seq Write graph. Only difference is that the classic raid10 can handle random writes better than sequential ones.",{"type":24,"tag":33,"props":156,"children":157},{},[158],{"type":30,"value":159},"MDADM has multiple implementations on how the raid works internally. For raid10 i tested the „near 2“ and „far 2“ layouts, where „near 2“ is the default. From the docs:",{"type":24,"tag":161,"props":162,"children":163},"blockquote",{},[164],{"type":24,"tag":33,"props":165,"children":166},{},[167],{"type":30,"value":168},"The advantage of this (… far 2) layout is that MD can easily spread sequential reads over the devices, making them similar to RAID0 in terms of speed. The cost is more seeking for writes, making them substantially slower.",{"type":24,"tag":33,"props":170,"children":171},{},[172],{"type":30,"value":173},"Yes, this can be seen on the benchmark graphs",{"type":24,"tag":25,"props":175,"children":177},{"id":176},"conclusions",[178],{"type":30,"value":179},"Conclusions",{"type":24,"tag":33,"props":181,"children":182},{},[183],{"type":30,"value":184},"From my tests, it looks like the reading performance difference is neglect. On Writing, RAID10 has a huge advantage.",{"type":24,"tag":33,"props":186,"children":187},{},[188],{"type":30,"value":189},"For our Backup-Server, we go with Raid 5, because it is 3x faster than the 1GBit network card of the server and won't bottleneck our backup- or restore processes.",{"type":24,"tag":33,"props":191,"children":192},{},[193],{"type":30,"value":194},"If you have a more critical use case, i advice to do your own benchmarks that reflect your workload better. Especially if you are using SSDs, the results can be drastically different.",{"title":7,"searchDepth":196,"depth":196,"links":197},2,[198,199,200,201,202],{"id":27,"depth":196,"text":31},{"id":45,"depth":196,"text":48},{"id":71,"depth":196,"text":74},{"id":111,"depth":196,"text":114},{"id":176,"depth":196,"text":179},"markdown","common:en:blog:5.raid5-vs-raid10-performance-benchmark-mdadm.md","common","en/blog/5.raid5-vs-raid10-performance-benchmark-mdadm.md","en/blog/5.raid5-vs-raid10-performance-benchmark-mdadm","md",{"_path":210,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":211,"description":212,"author":213,"image":214,"releaseDate":215,"blogCategories":216,"articleTags":218,"tags":219,"_type":203,"_id":221,"_source":205,"_file":222,"_stem":223,"_extension":208},"/en/blog/riak-compact-eleveldb-tombstones-and-reclaim-disk-space","RIAK compact e/leveldb tombstones and reclaim disk space","When attempting to reclaim disk space, deleting data may seem like the obvious first step. However, in Riak this is not necessarily the best thing to do if the disk is nearly full...","daniel-walter","/blog/thumbnails/RIAK_white.png","2017-09-26",[14,217],"Databases",[17],[220,19],"databases","common:en:blog:4.riak-compact-eleveldb-tombstones-and-reclaim-disk-space.md","en/blog/4.riak-compact-eleveldb-tombstones-and-reclaim-disk-space.md","en/blog/4.riak-compact-eleveldb-tombstones-and-reclaim-disk-space",{"_path":225,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":226,"description":227,"author":10,"image":228,"releaseDate":229,"blogCategories":230,"articleTags":231,"tags":232,"_type":203,"_id":233,"_source":205,"_file":234,"_stem":235,"_extension":208},"/en/blog/why-we-dont-use-samsung-nvme-pro-ssds-anymore","Why we dont use Samsung NVME Pro SSDs anymore","When it comes to buying an NVME SSD for a software developer workstation, you have a choice: buy a cheap one or an expensive one. So far I've gone for the more expensive ones because they promised better performance and longer life - now I see how wrong I was...","/blog/thumbnails/SSD_white.png","2020-04-16",[14,15],[17],[19],"common:en:blog:6.why-we-dont-use-samsung-nvme-pro-ssds-anymore.md","en/blog/6.why-we-dont-use-samsung-nvme-pro-ssds-anymore.md","en/blog/6.why-we-dont-use-samsung-nvme-pro-ssds-anymore",{"_path":237},"/blog/raid5-vs-raid10-leistungsbenchmark-mdadm",{"_path":4},{"_path":240,"_dir":241,"_draft":6,"_partial":6,"_locale":7,"slug":10,"teams":242,"primaryTeam":244,"firstName":245,"lastName":246,"prefixTitle":7,"suffixTitle":7,"education":247,"executiveRole":252,"role":253,"workingSince":261,"inTheCompanySince":262,"techSkills":263,"skills":309,"projects":321,"contactDetails":334,"_image":338,"image":339,"_id":340,"_type":341,"title":342,"_source":241,"_file":343,"_stem":344,"_extension":341},"/employees/bernd-helm","employees",[243,244],"ai","devOps","Bernd","Helm",[248],[249,250,251],"B. Sc. Angewandte Informatik","FHDW Dresden","2010","CTO",[254,255,244,256,257,258,259,260],"founder","chiefTechnologyOfficer","databaseSpecialist","admin","softwareDeveloper","backendDeveloper","consultant","2005","2008",[264,268,271,273,276,278,281,283,285,287,290,294,297,300,303,306],{"name":265,"level":266,"icon":267},"Docker","expert","/images/Docker.svg",{"name":269,"level":266,"icon":270},"Linux","/images/linux_os-mono.svg",{"name":272,"level":266},"Zabbix",{"name":274,"level":266,"icon":275},"MariaDB ColumnStore","/images/maria-db-logo.svg",{"name":277,"level":266},"OpenAI",{"name":279,"level":266,"icon":280},"Pytorch","/images/PyTorch.svg",{"name":282,"level":266},"PHP",{"name":284,"level":266},"Java",{"name":286,"level":266},"Python",{"name":288,"level":266,"icon":289},"SQL","/images/SQL.svg",{"name":291,"level":292,"icon":293},"C++","advanced","/images/cpp-logo.svg",{"name":295,"level":292,"icon":296},"C#","/images/csharp.svg",{"name":298,"level":292,"icon":299},"CSS","/images/css.svg",{"name":301,"level":292,"icon":302},"HTML","/images/html.svg",{"name":304,"level":292,"icon":305},"OpenCV","/images/OpenCV.svg",{"name":307,"level":292,"icon":308},"Vue.js","/images/vuejs.svg",[310,312,314,315,317,319],{"name":311,"level":266},"artificialIntelligence",{"name":313,"level":266},"codingGuidelines",{"name":220,"level":266},{"name":316,"level":266},"linuxServerAdministration",{"name":318,"level":266},"softwareArchitect",{"name":320,"level":292},"qualityAssurance",[322,325,327,329,332],{"project":323,"position":324},"Gridside","Technical Consultant",{"project":326,"position":324},"Herole",{"project":328,"position":324},"Montagespezis",{"project":330,"position":331},"Orsee","Technical Manager",{"project":333,"position":324},"Vipr",{"eMail":335,"phone":336,"visibility":337},"bernd.helm@helmundwalter.de","+49 351 799 035 20","1","images/employees/Portraits/bernd_helm.webp","images/employees/Portraits/BerndHelm_MS.webp","employees:employees:1.bernd-helm.json","json","Bernd Helm","employees/1.bernd-helm.json","employees/1.bernd-helm",{"_path":210,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":211,"description":212,"author":213,"image":214,"releaseDate":215,"blogCategories":346,"articleTags":347,"tags":348,"body":349,"_type":203,"_id":221,"_source":205,"_file":222,"_stem":223,"_extension":208},[14,217],[17],[220,19],{"type":21,"children":350,"toc":1962},[351,357,362,370,376,428,433,439,452,457,462,468,485,490,1850,1855,1934,1940,1949,1956],{"type":24,"tag":25,"props":352,"children":354},{"id":353},"the-problem",[355],{"type":30,"value":356},"The Problem",{"type":24,"tag":33,"props":358,"children":359},{},[360],{"type":30,"value":361},"When attempting to reclaim disk space, deleting data may seem like the obvious first step. However, in Riak this is not necessarily the best thing to do if the disk is nearly full.\nThis is because deleting objects in Riak is complicated. As stated in the object-deletion section of latest Riak documentation:",{"type":24,"tag":33,"props":363,"children":364},{},[365],{"type":24,"tag":55,"props":366,"children":367},{},[368],{"type":30,"value":369},"In single-server, non-clustered data storage systems, object deletion is a trivial process. In an eventually consistent, clustered system like Riak, however, object deletion is far less trivial because objects live on multiple nodes, which means that a deletion process must be chosen to determine when an object can be removed from the storage backend.",{"type":24,"tag":25,"props":371,"children":373},{"id":372},"how-deletion-works",[374],{"type":30,"value":375},"How deletion works",{"type":24,"tag":377,"props":378,"children":379},"ol",{},[380,395,408,413,418,423],{"type":24,"tag":381,"props":382,"children":383},"li",{},[384,386,393],{"type":30,"value":385},"Riak writes a ",{"type":24,"tag":387,"props":388,"children":390},"a",{"href":389},"https://riak.docs.hw.ag/riak/kv/latest/using/reference/object-deletion/#tombstones",[391],{"type":30,"value":392},"“tombstone”",{"type":30,"value":394}," value for the key to the N vnodes that contain it\n(this is a new record)",{"type":24,"tag":381,"props":396,"children":397},{},[398,400,406],{"type":30,"value":399},"Riak by ",{"type":24,"tag":387,"props":401,"children":403},{"href":402},"https://riak.docs.hw.ag/riak/kv/latest/configuring/reference/#other-settings",[404],{"type":30,"value":405},"default, waits 3 seconds",{"type":30,"value":407}," to verify all vnodes agree to the\ntombstone/delete",{"type":24,"tag":381,"props":409,"children":410},{},[411],{"type":30,"value":412},"Riak issues an actual delete operation against the key to leveldb",{"type":24,"tag":381,"props":414,"children":415},{},[416],{"type":30,"value":417},"leveldb creates its own tombstone",{"type":24,"tag":381,"props":419,"children":420},{},[421],{"type":30,"value":422},"the leveldb tombstone “floats” through level-0 and level-1 as part of normal\ncompactions",{"type":24,"tag":381,"props":424,"children":425},{},[426],{"type":30,"value":427},"upon reaching level-2, leveldb will initiate immediate compaction and\npropagation of tombstones in .sst table files containing 1000 or more\ntombstones.",{"type":24,"tag":33,"props":429,"children":430},{},[431],{"type":30,"value":432},"Consequence of this is that freeing disk space, if it happens either, it happens very slowly.",{"type":24,"tag":25,"props":434,"children":436},{"id":435},"solution-for-eleveldb",[437],{"type":30,"value":438},"Solution for e/leveldb",{"type":24,"tag":33,"props":440,"children":441},{},[442,444,450],{"type":30,"value":443},"In short, there is a c++ function in leveldb that is used to compact the underlying storage. The function is called ",{"type":24,"tag":387,"props":445,"children":447},{"href":446},"https://github.com/hw-dwalter/leveldb/blob/5db913fdc28801714d587c44524d90b48e51210e/include/leveldb/db.h#L157",[448],{"type":30,"value":449},"\"CompactRange\"",{"type":30,"value":451},".",{"type":24,"tag":33,"props":453,"children":454},{},[455],{"type":30,"value":456},"In particular, deleted and overwritten versions are discarded, and the data is rearranged to reduce the cost of operations needed to access the data.",{"type":24,"tag":33,"props":458,"children":459},{},[460],{"type":30,"value":461},"This function does not exist in the erlang code that uses this c++ library. This means that we needed to build a standalone tool that calls this library function on all leveldb files in Riak. Drawback of this is, that your Riak server has to be offline while running such a 3rd party tool.",{"type":24,"tag":25,"props":463,"children":465},{"id":464},"use-case",[466],{"type":30,"value":467},"Use case",{"type":24,"tag":33,"props":469,"children":470},{},[471,473,478,480,484],{"type":30,"value":472},"We build such a tool, you can check it out from github RiakToolsCxx.git and build it with ",{"type":24,"tag":55,"props":474,"children":475},{},[476],{"type":30,"value":477},"cmake",{"type":30,"value":479},". External dependency leveldb-basho is pulled automatically by ",{"type":24,"tag":55,"props":481,"children":482},{},[483],{"type":30,"value":477},{"type":30,"value":451},{"type":24,"tag":33,"props":486,"children":487},{},[488],{"type":30,"value":489},"Checkout and build process could look like:",{"type":24,"tag":491,"props":492,"children":496},"pre",{"className":493,"code":494,"language":495,"meta":7,"style":7},"language-bash shiki shiki-themes github-dark github-dark monokai","dwalter@knxwork:~/Projects$ git clone https://github.com/hw-dwalter/RiakToolsCxx.git RiakToolsCxx\nCloning into 'RiakToolsCxx'...\nremote: Counting objects: 11, done.\nremote: Total 11 (delta 0), reused 0 (delta 0), pack-reused 11\nUnpacking objects: 100% (11/11), done.\ndwalter@knxwork:~/Projects$ cd RiakToolsCxx/\ndwalter@knxwork:~/Projects/RiakToolsCxx$ mkdir build\ndwalter@knxwork:~/Projects/RiakToolsCxx$ cd build/\ndwalter@knxwork:~/Projects/RiakToolsCxx/build$ cmake ..\n-- The CXX compiler identification is GNU 6.3.0\n-- Check for working CXX compiler: /usr/bin/c++\n-- Check for working CXX compiler: /usr/bin/c++ -- works\n-- Detecting CXX compiler ABI info\n-- Detecting CXX compiler ABI info - done\n-- Detecting CXX compile features\n-- Detecting CXX compile features - done\n-- Performing Test COMPILER_SUPPORTS_CXX11\n-- Performing Test COMPILER_SUPPORTS_CXX11 - Success\n-- Performing Test COMPILER_SUPPORTS_CXX0X\n-- Performing Test COMPILER_SUPPORTS_CXX0X - Success\n-- The C compiler identification is GNU 6.3.0\n-- Check for working C compiler: /usr/bin/cc\n-- Check for working C compiler: /usr/bin/cc -- works\n-- Detecting C compiler ABI info\n-- Detecting C compiler ABI info - done\n-- Detecting C compile features\n-- Detecting C compile features - done\n-- Boost version: 1.62.0\n-- Found the following Boost libraries:\n--   filesystem\n--   system\n-- Configuring done\n-- Generating done\n-- Build files have been written to: /home/dwalter/Projects/RiakToolsCxx/build\ndwalter@knxwork:~/Projects/RiakToolsCxx/build$ make\nScanning dependencies of target leveldb-basho\n[ 10%] Creating directories for 'leveldb-basho'\n[ 20%] Performing download step (git clone) for 'leveldb-basho'\nCloning into 'leveldb-basho'...\nAlready on 'develop'\nYour branch is up-to-date with 'origin/develop'.\n[ 30%] No patch step for 'leveldb-basho'\n[ 40%] No update step for 'leveldb-basho'\n[ 50%] No configure step for 'leveldb-basho'\n[ 60%] Performing build step for 'leveldb-basho'\nar: creating libleveldb.a\n[ 70%] No install step for 'leveldb-basho'\n[ 80%] Completed 'leveldb-basho'\n[ 80%] Built target leveldb-basho\nScanning dependencies of target riakcompact\n[ 90%] Building CXX object src/CMakeFiles/riakcompact.dir/main.cpp.o\n[100%] Linking CXX executable riakcompact\n[100%] Built target riakcompact\ndwalter@knxwork:~/Projects/RiakToolsCxx/build$ ./src/riakcompact \nusage:   ./src/riakcompact [path]\n","bash",[497],{"type":24,"tag":498,"props":499,"children":500},"code",{"__ignoreMap":7},[501,534,552,581,631,654,672,691,708,727,771,808,851,882,921,947,980,1003,1033,1054,1083,1120,1153,1194,1222,1258,1282,1314,1337,1369,1382,1395,1412,1429,1472,1485,1514,1534,1565,1582,1601,1634,1651,1668,1685,1702,1721,1738,1752,1761,1786,1795,1804,1813,1831],{"type":24,"tag":502,"props":503,"children":506},"span",{"class":504,"line":505},"line",1,[507,513,519,524,529],{"type":24,"tag":502,"props":508,"children":510},{"style":509},"--shiki-default:#B392F0;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E",[511],{"type":30,"value":512},"dwalter@knxwork:~/Projects$",{"type":24,"tag":502,"props":514,"children":516},{"style":515},"--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74",[517],{"type":30,"value":518}," git",{"type":24,"tag":502,"props":520,"children":521},{"style":515},[522],{"type":30,"value":523}," clone",{"type":24,"tag":502,"props":525,"children":526},{"style":515},[527],{"type":30,"value":528}," https://github.com/hw-dwalter/RiakToolsCxx.git",{"type":24,"tag":502,"props":530,"children":531},{"style":515},[532],{"type":30,"value":533}," RiakToolsCxx\n",{"type":24,"tag":502,"props":535,"children":536},{"class":504,"line":196},[537,542,547],{"type":24,"tag":502,"props":538,"children":539},{"style":509},[540],{"type":30,"value":541},"Cloning",{"type":24,"tag":502,"props":543,"children":544},{"style":515},[545],{"type":30,"value":546}," into",{"type":24,"tag":502,"props":548,"children":549},{"style":515},[550],{"type":30,"value":551}," 'RiakToolsCxx'...\n",{"type":24,"tag":502,"props":553,"children":555},{"class":504,"line":554},3,[556,561,566,571,576],{"type":24,"tag":502,"props":557,"children":558},{"style":509},[559],{"type":30,"value":560},"remote:",{"type":24,"tag":502,"props":562,"children":563},{"style":515},[564],{"type":30,"value":565}," Counting",{"type":24,"tag":502,"props":567,"children":568},{"style":515},[569],{"type":30,"value":570}," objects:",{"type":24,"tag":502,"props":572,"children":573},{"style":515},[574],{"type":30,"value":575}," 11,",{"type":24,"tag":502,"props":577,"children":578},{"style":515},[579],{"type":30,"value":580}," done.\n",{"type":24,"tag":502,"props":582,"children":584},{"class":504,"line":583},4,[585,589,594,600,606,611,616,621,626],{"type":24,"tag":502,"props":586,"children":587},{"style":509},[588],{"type":30,"value":560},{"type":24,"tag":502,"props":590,"children":591},{"style":515},[592],{"type":30,"value":593}," Total",{"type":24,"tag":502,"props":595,"children":597},{"style":596},"--shiki-default:#79B8FF;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF",[598],{"type":30,"value":599}," 11",{"type":24,"tag":502,"props":601,"children":603},{"style":602},"--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2",[604],{"type":30,"value":605}," (delta ",{"type":24,"tag":502,"props":607,"children":608},{"style":596},[609],{"type":30,"value":610},"0",{"type":24,"tag":502,"props":612,"children":613},{"style":602},[614],{"type":30,"value":615},"), reused 0 (",{"type":24,"tag":502,"props":617,"children":618},{"style":509},[619],{"type":30,"value":620},"delta",{"type":24,"tag":502,"props":622,"children":623},{"style":596},[624],{"type":30,"value":625}," 0",{"type":24,"tag":502,"props":627,"children":628},{"style":602},[629],{"type":30,"value":630},"), pack-reused 11\n",{"type":24,"tag":502,"props":632,"children":634},{"class":504,"line":633},5,[635,640,644,649],{"type":24,"tag":502,"props":636,"children":637},{"style":509},[638],{"type":30,"value":639},"Unpacking",{"type":24,"tag":502,"props":641,"children":642},{"style":515},[643],{"type":30,"value":570},{"type":24,"tag":502,"props":645,"children":646},{"style":515},[647],{"type":30,"value":648}," 100%",{"type":24,"tag":502,"props":650,"children":651},{"style":602},[652],{"type":30,"value":653}," (11/11), done.\n",{"type":24,"tag":502,"props":655,"children":657},{"class":504,"line":656},6,[658,662,667],{"type":24,"tag":502,"props":659,"children":660},{"style":509},[661],{"type":30,"value":512},{"type":24,"tag":502,"props":663,"children":664},{"style":515},[665],{"type":30,"value":666}," cd",{"type":24,"tag":502,"props":668,"children":669},{"style":515},[670],{"type":30,"value":671}," RiakToolsCxx/\n",{"type":24,"tag":502,"props":673,"children":675},{"class":504,"line":674},7,[676,681,686],{"type":24,"tag":502,"props":677,"children":678},{"style":509},[679],{"type":30,"value":680},"dwalter@knxwork:~/Projects/RiakToolsCxx$",{"type":24,"tag":502,"props":682,"children":683},{"style":515},[684],{"type":30,"value":685}," mkdir",{"type":24,"tag":502,"props":687,"children":688},{"style":515},[689],{"type":30,"value":690}," build\n",{"type":24,"tag":502,"props":692,"children":694},{"class":504,"line":693},8,[695,699,703],{"type":24,"tag":502,"props":696,"children":697},{"style":509},[698],{"type":30,"value":680},{"type":24,"tag":502,"props":700,"children":701},{"style":515},[702],{"type":30,"value":666},{"type":24,"tag":502,"props":704,"children":705},{"style":515},[706],{"type":30,"value":707}," build/\n",{"type":24,"tag":502,"props":709,"children":711},{"class":504,"line":710},9,[712,717,722],{"type":24,"tag":502,"props":713,"children":714},{"style":509},[715],{"type":30,"value":716},"dwalter@knxwork:~/Projects/RiakToolsCxx/build$",{"type":24,"tag":502,"props":718,"children":719},{"style":515},[720],{"type":30,"value":721}," cmake",{"type":24,"tag":502,"props":723,"children":724},{"style":515},[725],{"type":30,"value":726}," ..\n",{"type":24,"tag":502,"props":728,"children":730},{"class":504,"line":729},10,[731,736,741,746,751,756,761,766],{"type":24,"tag":502,"props":732,"children":733},{"style":509},[734],{"type":30,"value":735},"--",{"type":24,"tag":502,"props":737,"children":738},{"style":515},[739],{"type":30,"value":740}," The",{"type":24,"tag":502,"props":742,"children":743},{"style":515},[744],{"type":30,"value":745}," CXX",{"type":24,"tag":502,"props":747,"children":748},{"style":515},[749],{"type":30,"value":750}," compiler",{"type":24,"tag":502,"props":752,"children":753},{"style":515},[754],{"type":30,"value":755}," identification",{"type":24,"tag":502,"props":757,"children":758},{"style":515},[759],{"type":30,"value":760}," is",{"type":24,"tag":502,"props":762,"children":763},{"style":515},[764],{"type":30,"value":765}," GNU",{"type":24,"tag":502,"props":767,"children":768},{"style":596},[769],{"type":30,"value":770}," 6.3.0\n",{"type":24,"tag":502,"props":772,"children":774},{"class":504,"line":773},11,[775,779,784,789,794,798,803],{"type":24,"tag":502,"props":776,"children":777},{"style":509},[778],{"type":30,"value":735},{"type":24,"tag":502,"props":780,"children":781},{"style":515},[782],{"type":30,"value":783}," Check",{"type":24,"tag":502,"props":785,"children":786},{"style":515},[787],{"type":30,"value":788}," for",{"type":24,"tag":502,"props":790,"children":791},{"style":515},[792],{"type":30,"value":793}," working",{"type":24,"tag":502,"props":795,"children":796},{"style":515},[797],{"type":30,"value":745},{"type":24,"tag":502,"props":799,"children":800},{"style":515},[801],{"type":30,"value":802}," compiler:",{"type":24,"tag":502,"props":804,"children":805},{"style":515},[806],{"type":30,"value":807}," /usr/bin/c++\n",{"type":24,"tag":502,"props":809,"children":811},{"class":504,"line":810},12,[812,816,820,824,828,832,836,841,846],{"type":24,"tag":502,"props":813,"children":814},{"style":509},[815],{"type":30,"value":735},{"type":24,"tag":502,"props":817,"children":818},{"style":515},[819],{"type":30,"value":783},{"type":24,"tag":502,"props":821,"children":822},{"style":515},[823],{"type":30,"value":788},{"type":24,"tag":502,"props":825,"children":826},{"style":515},[827],{"type":30,"value":793},{"type":24,"tag":502,"props":829,"children":830},{"style":515},[831],{"type":30,"value":745},{"type":24,"tag":502,"props":833,"children":834},{"style":515},[835],{"type":30,"value":802},{"type":24,"tag":502,"props":837,"children":838},{"style":515},[839],{"type":30,"value":840}," /usr/bin/c++",{"type":24,"tag":502,"props":842,"children":843},{"style":596},[844],{"type":30,"value":845}," --",{"type":24,"tag":502,"props":847,"children":848},{"style":515},[849],{"type":30,"value":850}," works\n",{"type":24,"tag":502,"props":852,"children":854},{"class":504,"line":853},13,[855,859,864,868,872,877],{"type":24,"tag":502,"props":856,"children":857},{"style":509},[858],{"type":30,"value":735},{"type":24,"tag":502,"props":860,"children":861},{"style":515},[862],{"type":30,"value":863}," Detecting",{"type":24,"tag":502,"props":865,"children":866},{"style":515},[867],{"type":30,"value":745},{"type":24,"tag":502,"props":869,"children":870},{"style":515},[871],{"type":30,"value":750},{"type":24,"tag":502,"props":873,"children":874},{"style":515},[875],{"type":30,"value":876}," ABI",{"type":24,"tag":502,"props":878,"children":879},{"style":515},[880],{"type":30,"value":881}," info\n",{"type":24,"tag":502,"props":883,"children":885},{"class":504,"line":884},14,[886,890,894,898,902,906,911,916],{"type":24,"tag":502,"props":887,"children":888},{"style":509},[889],{"type":30,"value":735},{"type":24,"tag":502,"props":891,"children":892},{"style":515},[893],{"type":30,"value":863},{"type":24,"tag":502,"props":895,"children":896},{"style":515},[897],{"type":30,"value":745},{"type":24,"tag":502,"props":899,"children":900},{"style":515},[901],{"type":30,"value":750},{"type":24,"tag":502,"props":903,"children":904},{"style":515},[905],{"type":30,"value":876},{"type":24,"tag":502,"props":907,"children":908},{"style":515},[909],{"type":30,"value":910}," info",{"type":24,"tag":502,"props":912,"children":913},{"style":515},[914],{"type":30,"value":915}," -",{"type":24,"tag":502,"props":917,"children":918},{"style":515},[919],{"type":30,"value":920}," done\n",{"type":24,"tag":502,"props":922,"children":924},{"class":504,"line":923},15,[925,929,933,937,942],{"type":24,"tag":502,"props":926,"children":927},{"style":509},[928],{"type":30,"value":735},{"type":24,"tag":502,"props":930,"children":931},{"style":515},[932],{"type":30,"value":863},{"type":24,"tag":502,"props":934,"children":935},{"style":515},[936],{"type":30,"value":745},{"type":24,"tag":502,"props":938,"children":939},{"style":515},[940],{"type":30,"value":941}," compile",{"type":24,"tag":502,"props":943,"children":944},{"style":515},[945],{"type":30,"value":946}," features\n",{"type":24,"tag":502,"props":948,"children":950},{"class":504,"line":949},16,[951,955,959,963,967,972,976],{"type":24,"tag":502,"props":952,"children":953},{"style":509},[954],{"type":30,"value":735},{"type":24,"tag":502,"props":956,"children":957},{"style":515},[958],{"type":30,"value":863},{"type":24,"tag":502,"props":960,"children":961},{"style":515},[962],{"type":30,"value":745},{"type":24,"tag":502,"props":964,"children":965},{"style":515},[966],{"type":30,"value":941},{"type":24,"tag":502,"props":968,"children":969},{"style":515},[970],{"type":30,"value":971}," features",{"type":24,"tag":502,"props":973,"children":974},{"style":515},[975],{"type":30,"value":915},{"type":24,"tag":502,"props":977,"children":978},{"style":515},[979],{"type":30,"value":920},{"type":24,"tag":502,"props":981,"children":983},{"class":504,"line":982},17,[984,988,993,998],{"type":24,"tag":502,"props":985,"children":986},{"style":509},[987],{"type":30,"value":735},{"type":24,"tag":502,"props":989,"children":990},{"style":515},[991],{"type":30,"value":992}," Performing",{"type":24,"tag":502,"props":994,"children":995},{"style":515},[996],{"type":30,"value":997}," Test",{"type":24,"tag":502,"props":999,"children":1000},{"style":515},[1001],{"type":30,"value":1002}," COMPILER_SUPPORTS_CXX11\n",{"type":24,"tag":502,"props":1004,"children":1006},{"class":504,"line":1005},18,[1007,1011,1015,1019,1024,1028],{"type":24,"tag":502,"props":1008,"children":1009},{"style":509},[1010],{"type":30,"value":735},{"type":24,"tag":502,"props":1012,"children":1013},{"style":515},[1014],{"type":30,"value":992},{"type":24,"tag":502,"props":1016,"children":1017},{"style":515},[1018],{"type":30,"value":997},{"type":24,"tag":502,"props":1020,"children":1021},{"style":515},[1022],{"type":30,"value":1023}," COMPILER_SUPPORTS_CXX11",{"type":24,"tag":502,"props":1025,"children":1026},{"style":515},[1027],{"type":30,"value":915},{"type":24,"tag":502,"props":1029,"children":1030},{"style":515},[1031],{"type":30,"value":1032}," Success\n",{"type":24,"tag":502,"props":1034,"children":1036},{"class":504,"line":1035},19,[1037,1041,1045,1049],{"type":24,"tag":502,"props":1038,"children":1039},{"style":509},[1040],{"type":30,"value":735},{"type":24,"tag":502,"props":1042,"children":1043},{"style":515},[1044],{"type":30,"value":992},{"type":24,"tag":502,"props":1046,"children":1047},{"style":515},[1048],{"type":30,"value":997},{"type":24,"tag":502,"props":1050,"children":1051},{"style":515},[1052],{"type":30,"value":1053}," COMPILER_SUPPORTS_CXX0X\n",{"type":24,"tag":502,"props":1055,"children":1057},{"class":504,"line":1056},20,[1058,1062,1066,1070,1075,1079],{"type":24,"tag":502,"props":1059,"children":1060},{"style":509},[1061],{"type":30,"value":735},{"type":24,"tag":502,"props":1063,"children":1064},{"style":515},[1065],{"type":30,"value":992},{"type":24,"tag":502,"props":1067,"children":1068},{"style":515},[1069],{"type":30,"value":997},{"type":24,"tag":502,"props":1071,"children":1072},{"style":515},[1073],{"type":30,"value":1074}," COMPILER_SUPPORTS_CXX0X",{"type":24,"tag":502,"props":1076,"children":1077},{"style":515},[1078],{"type":30,"value":915},{"type":24,"tag":502,"props":1080,"children":1081},{"style":515},[1082],{"type":30,"value":1032},{"type":24,"tag":502,"props":1084,"children":1086},{"class":504,"line":1085},21,[1087,1091,1095,1100,1104,1108,1112,1116],{"type":24,"tag":502,"props":1088,"children":1089},{"style":509},[1090],{"type":30,"value":735},{"type":24,"tag":502,"props":1092,"children":1093},{"style":515},[1094],{"type":30,"value":740},{"type":24,"tag":502,"props":1096,"children":1097},{"style":515},[1098],{"type":30,"value":1099}," C",{"type":24,"tag":502,"props":1101,"children":1102},{"style":515},[1103],{"type":30,"value":750},{"type":24,"tag":502,"props":1105,"children":1106},{"style":515},[1107],{"type":30,"value":755},{"type":24,"tag":502,"props":1109,"children":1110},{"style":515},[1111],{"type":30,"value":760},{"type":24,"tag":502,"props":1113,"children":1114},{"style":515},[1115],{"type":30,"value":765},{"type":24,"tag":502,"props":1117,"children":1118},{"style":596},[1119],{"type":30,"value":770},{"type":24,"tag":502,"props":1121,"children":1123},{"class":504,"line":1122},22,[1124,1128,1132,1136,1140,1144,1148],{"type":24,"tag":502,"props":1125,"children":1126},{"style":509},[1127],{"type":30,"value":735},{"type":24,"tag":502,"props":1129,"children":1130},{"style":515},[1131],{"type":30,"value":783},{"type":24,"tag":502,"props":1133,"children":1134},{"style":515},[1135],{"type":30,"value":788},{"type":24,"tag":502,"props":1137,"children":1138},{"style":515},[1139],{"type":30,"value":793},{"type":24,"tag":502,"props":1141,"children":1142},{"style":515},[1143],{"type":30,"value":1099},{"type":24,"tag":502,"props":1145,"children":1146},{"style":515},[1147],{"type":30,"value":802},{"type":24,"tag":502,"props":1149,"children":1150},{"style":515},[1151],{"type":30,"value":1152}," /usr/bin/cc\n",{"type":24,"tag":502,"props":1154,"children":1156},{"class":504,"line":1155},23,[1157,1161,1165,1169,1173,1177,1181,1186,1190],{"type":24,"tag":502,"props":1158,"children":1159},{"style":509},[1160],{"type":30,"value":735},{"type":24,"tag":502,"props":1162,"children":1163},{"style":515},[1164],{"type":30,"value":783},{"type":24,"tag":502,"props":1166,"children":1167},{"style":515},[1168],{"type":30,"value":788},{"type":24,"tag":502,"props":1170,"children":1171},{"style":515},[1172],{"type":30,"value":793},{"type":24,"tag":502,"props":1174,"children":1175},{"style":515},[1176],{"type":30,"value":1099},{"type":24,"tag":502,"props":1178,"children":1179},{"style":515},[1180],{"type":30,"value":802},{"type":24,"tag":502,"props":1182,"children":1183},{"style":515},[1184],{"type":30,"value":1185}," /usr/bin/cc",{"type":24,"tag":502,"props":1187,"children":1188},{"style":596},[1189],{"type":30,"value":845},{"type":24,"tag":502,"props":1191,"children":1192},{"style":515},[1193],{"type":30,"value":850},{"type":24,"tag":502,"props":1195,"children":1197},{"class":504,"line":1196},24,[1198,1202,1206,1210,1214,1218],{"type":24,"tag":502,"props":1199,"children":1200},{"style":509},[1201],{"type":30,"value":735},{"type":24,"tag":502,"props":1203,"children":1204},{"style":515},[1205],{"type":30,"value":863},{"type":24,"tag":502,"props":1207,"children":1208},{"style":515},[1209],{"type":30,"value":1099},{"type":24,"tag":502,"props":1211,"children":1212},{"style":515},[1213],{"type":30,"value":750},{"type":24,"tag":502,"props":1215,"children":1216},{"style":515},[1217],{"type":30,"value":876},{"type":24,"tag":502,"props":1219,"children":1220},{"style":515},[1221],{"type":30,"value":881},{"type":24,"tag":502,"props":1223,"children":1225},{"class":504,"line":1224},25,[1226,1230,1234,1238,1242,1246,1250,1254],{"type":24,"tag":502,"props":1227,"children":1228},{"style":509},[1229],{"type":30,"value":735},{"type":24,"tag":502,"props":1231,"children":1232},{"style":515},[1233],{"type":30,"value":863},{"type":24,"tag":502,"props":1235,"children":1236},{"style":515},[1237],{"type":30,"value":1099},{"type":24,"tag":502,"props":1239,"children":1240},{"style":515},[1241],{"type":30,"value":750},{"type":24,"tag":502,"props":1243,"children":1244},{"style":515},[1245],{"type":30,"value":876},{"type":24,"tag":502,"props":1247,"children":1248},{"style":515},[1249],{"type":30,"value":910},{"type":24,"tag":502,"props":1251,"children":1252},{"style":515},[1253],{"type":30,"value":915},{"type":24,"tag":502,"props":1255,"children":1256},{"style":515},[1257],{"type":30,"value":920},{"type":24,"tag":502,"props":1259,"children":1261},{"class":504,"line":1260},26,[1262,1266,1270,1274,1278],{"type":24,"tag":502,"props":1263,"children":1264},{"style":509},[1265],{"type":30,"value":735},{"type":24,"tag":502,"props":1267,"children":1268},{"style":515},[1269],{"type":30,"value":863},{"type":24,"tag":502,"props":1271,"children":1272},{"style":515},[1273],{"type":30,"value":1099},{"type":24,"tag":502,"props":1275,"children":1276},{"style":515},[1277],{"type":30,"value":941},{"type":24,"tag":502,"props":1279,"children":1280},{"style":515},[1281],{"type":30,"value":946},{"type":24,"tag":502,"props":1283,"children":1285},{"class":504,"line":1284},27,[1286,1290,1294,1298,1302,1306,1310],{"type":24,"tag":502,"props":1287,"children":1288},{"style":509},[1289],{"type":30,"value":735},{"type":24,"tag":502,"props":1291,"children":1292},{"style":515},[1293],{"type":30,"value":863},{"type":24,"tag":502,"props":1295,"children":1296},{"style":515},[1297],{"type":30,"value":1099},{"type":24,"tag":502,"props":1299,"children":1300},{"style":515},[1301],{"type":30,"value":941},{"type":24,"tag":502,"props":1303,"children":1304},{"style":515},[1305],{"type":30,"value":971},{"type":24,"tag":502,"props":1307,"children":1308},{"style":515},[1309],{"type":30,"value":915},{"type":24,"tag":502,"props":1311,"children":1312},{"style":515},[1313],{"type":30,"value":920},{"type":24,"tag":502,"props":1315,"children":1317},{"class":504,"line":1316},28,[1318,1322,1327,1332],{"type":24,"tag":502,"props":1319,"children":1320},{"style":509},[1321],{"type":30,"value":735},{"type":24,"tag":502,"props":1323,"children":1324},{"style":515},[1325],{"type":30,"value":1326}," Boost",{"type":24,"tag":502,"props":1328,"children":1329},{"style":515},[1330],{"type":30,"value":1331}," version:",{"type":24,"tag":502,"props":1333,"children":1334},{"style":596},[1335],{"type":30,"value":1336}," 1.62.0\n",{"type":24,"tag":502,"props":1338,"children":1340},{"class":504,"line":1339},29,[1341,1345,1350,1355,1360,1364],{"type":24,"tag":502,"props":1342,"children":1343},{"style":509},[1344],{"type":30,"value":735},{"type":24,"tag":502,"props":1346,"children":1347},{"style":515},[1348],{"type":30,"value":1349}," Found",{"type":24,"tag":502,"props":1351,"children":1352},{"style":515},[1353],{"type":30,"value":1354}," the",{"type":24,"tag":502,"props":1356,"children":1357},{"style":515},[1358],{"type":30,"value":1359}," following",{"type":24,"tag":502,"props":1361,"children":1362},{"style":515},[1363],{"type":30,"value":1326},{"type":24,"tag":502,"props":1365,"children":1366},{"style":515},[1367],{"type":30,"value":1368}," libraries:\n",{"type":24,"tag":502,"props":1370,"children":1372},{"class":504,"line":1371},30,[1373,1377],{"type":24,"tag":502,"props":1374,"children":1375},{"style":509},[1376],{"type":30,"value":735},{"type":24,"tag":502,"props":1378,"children":1379},{"style":515},[1380],{"type":30,"value":1381},"   filesystem\n",{"type":24,"tag":502,"props":1383,"children":1385},{"class":504,"line":1384},31,[1386,1390],{"type":24,"tag":502,"props":1387,"children":1388},{"style":509},[1389],{"type":30,"value":735},{"type":24,"tag":502,"props":1391,"children":1392},{"style":515},[1393],{"type":30,"value":1394},"   system\n",{"type":24,"tag":502,"props":1396,"children":1398},{"class":504,"line":1397},32,[1399,1403,1408],{"type":24,"tag":502,"props":1400,"children":1401},{"style":509},[1402],{"type":30,"value":735},{"type":24,"tag":502,"props":1404,"children":1405},{"style":515},[1406],{"type":30,"value":1407}," Configuring",{"type":24,"tag":502,"props":1409,"children":1410},{"style":515},[1411],{"type":30,"value":920},{"type":24,"tag":502,"props":1413,"children":1415},{"class":504,"line":1414},33,[1416,1420,1425],{"type":24,"tag":502,"props":1417,"children":1418},{"style":509},[1419],{"type":30,"value":735},{"type":24,"tag":502,"props":1421,"children":1422},{"style":515},[1423],{"type":30,"value":1424}," Generating",{"type":24,"tag":502,"props":1426,"children":1427},{"style":515},[1428],{"type":30,"value":920},{"type":24,"tag":502,"props":1430,"children":1432},{"class":504,"line":1431},34,[1433,1437,1442,1447,1452,1457,1462,1467],{"type":24,"tag":502,"props":1434,"children":1435},{"style":509},[1436],{"type":30,"value":735},{"type":24,"tag":502,"props":1438,"children":1439},{"style":515},[1440],{"type":30,"value":1441}," Build",{"type":24,"tag":502,"props":1443,"children":1444},{"style":515},[1445],{"type":30,"value":1446}," files",{"type":24,"tag":502,"props":1448,"children":1449},{"style":515},[1450],{"type":30,"value":1451}," have",{"type":24,"tag":502,"props":1453,"children":1454},{"style":515},[1455],{"type":30,"value":1456}," been",{"type":24,"tag":502,"props":1458,"children":1459},{"style":515},[1460],{"type":30,"value":1461}," written",{"type":24,"tag":502,"props":1463,"children":1464},{"style":515},[1465],{"type":30,"value":1466}," to:",{"type":24,"tag":502,"props":1468,"children":1469},{"style":515},[1470],{"type":30,"value":1471}," /home/dwalter/Projects/RiakToolsCxx/build\n",{"type":24,"tag":502,"props":1473,"children":1475},{"class":504,"line":1474},35,[1476,1480],{"type":24,"tag":502,"props":1477,"children":1478},{"style":509},[1479],{"type":30,"value":716},{"type":24,"tag":502,"props":1481,"children":1482},{"style":515},[1483],{"type":30,"value":1484}," make\n",{"type":24,"tag":502,"props":1486,"children":1488},{"class":504,"line":1487},36,[1489,1494,1499,1504,1509],{"type":24,"tag":502,"props":1490,"children":1491},{"style":509},[1492],{"type":30,"value":1493},"Scanning",{"type":24,"tag":502,"props":1495,"children":1496},{"style":515},[1497],{"type":30,"value":1498}," dependencies",{"type":24,"tag":502,"props":1500,"children":1501},{"style":515},[1502],{"type":30,"value":1503}," of",{"type":24,"tag":502,"props":1505,"children":1506},{"style":515},[1507],{"type":30,"value":1508}," target",{"type":24,"tag":502,"props":1510,"children":1511},{"style":515},[1512],{"type":30,"value":1513}," leveldb-basho\n",{"type":24,"tag":502,"props":1515,"children":1517},{"class":504,"line":1516},37,[1518,1523,1529],{"type":24,"tag":502,"props":1519,"children":1520},{"style":602},[1521],{"type":30,"value":1522},"[ 10%] Creating directories ",{"type":24,"tag":502,"props":1524,"children":1526},{"style":1525},"--shiki-default:#F97583;--shiki-dark:#F97583;--shiki-sepia:#F92672",[1527],{"type":30,"value":1528},"for",{"type":24,"tag":502,"props":1530,"children":1531},{"style":515},[1532],{"type":30,"value":1533}," 'leveldb-basho'\n",{"type":24,"tag":502,"props":1535,"children":1537},{"class":504,"line":1536},38,[1538,1543,1548,1552,1557,1561],{"type":24,"tag":502,"props":1539,"children":1540},{"style":602},[1541],{"type":30,"value":1542},"[ 20%] Performing download step (",{"type":24,"tag":502,"props":1544,"children":1545},{"style":509},[1546],{"type":30,"value":1547},"git",{"type":24,"tag":502,"props":1549,"children":1550},{"style":515},[1551],{"type":30,"value":523},{"type":24,"tag":502,"props":1553,"children":1554},{"style":602},[1555],{"type":30,"value":1556},") ",{"type":24,"tag":502,"props":1558,"children":1559},{"style":1525},[1560],{"type":30,"value":1528},{"type":24,"tag":502,"props":1562,"children":1563},{"style":515},[1564],{"type":30,"value":1533},{"type":24,"tag":502,"props":1566,"children":1568},{"class":504,"line":1567},39,[1569,1573,1577],{"type":24,"tag":502,"props":1570,"children":1571},{"style":509},[1572],{"type":30,"value":541},{"type":24,"tag":502,"props":1574,"children":1575},{"style":515},[1576],{"type":30,"value":546},{"type":24,"tag":502,"props":1578,"children":1579},{"style":515},[1580],{"type":30,"value":1581}," 'leveldb-basho'...\n",{"type":24,"tag":502,"props":1583,"children":1585},{"class":504,"line":1584},40,[1586,1591,1596],{"type":24,"tag":502,"props":1587,"children":1588},{"style":509},[1589],{"type":30,"value":1590},"Already",{"type":24,"tag":502,"props":1592,"children":1593},{"style":515},[1594],{"type":30,"value":1595}," on",{"type":24,"tag":502,"props":1597,"children":1598},{"style":515},[1599],{"type":30,"value":1600}," 'develop'\n",{"type":24,"tag":502,"props":1602,"children":1604},{"class":504,"line":1603},41,[1605,1610,1615,1619,1624,1629],{"type":24,"tag":502,"props":1606,"children":1607},{"style":509},[1608],{"type":30,"value":1609},"Your",{"type":24,"tag":502,"props":1611,"children":1612},{"style":515},[1613],{"type":30,"value":1614}," branch",{"type":24,"tag":502,"props":1616,"children":1617},{"style":515},[1618],{"type":30,"value":760},{"type":24,"tag":502,"props":1620,"children":1621},{"style":515},[1622],{"type":30,"value":1623}," up-to-date",{"type":24,"tag":502,"props":1625,"children":1626},{"style":515},[1627],{"type":30,"value":1628}," with",{"type":24,"tag":502,"props":1630,"children":1631},{"style":515},[1632],{"type":30,"value":1633}," 'origin/develop'.\n",{"type":24,"tag":502,"props":1635,"children":1637},{"class":504,"line":1636},42,[1638,1643,1647],{"type":24,"tag":502,"props":1639,"children":1640},{"style":602},[1641],{"type":30,"value":1642},"[ 30%] No patch step ",{"type":24,"tag":502,"props":1644,"children":1645},{"style":1525},[1646],{"type":30,"value":1528},{"type":24,"tag":502,"props":1648,"children":1649},{"style":515},[1650],{"type":30,"value":1533},{"type":24,"tag":502,"props":1652,"children":1654},{"class":504,"line":1653},43,[1655,1660,1664],{"type":24,"tag":502,"props":1656,"children":1657},{"style":602},[1658],{"type":30,"value":1659},"[ 40%] No update step ",{"type":24,"tag":502,"props":1661,"children":1662},{"style":1525},[1663],{"type":30,"value":1528},{"type":24,"tag":502,"props":1665,"children":1666},{"style":515},[1667],{"type":30,"value":1533},{"type":24,"tag":502,"props":1669,"children":1671},{"class":504,"line":1670},44,[1672,1677,1681],{"type":24,"tag":502,"props":1673,"children":1674},{"style":602},[1675],{"type":30,"value":1676},"[ 50%] No configure step ",{"type":24,"tag":502,"props":1678,"children":1679},{"style":1525},[1680],{"type":30,"value":1528},{"type":24,"tag":502,"props":1682,"children":1683},{"style":515},[1684],{"type":30,"value":1533},{"type":24,"tag":502,"props":1686,"children":1688},{"class":504,"line":1687},45,[1689,1694,1698],{"type":24,"tag":502,"props":1690,"children":1691},{"style":602},[1692],{"type":30,"value":1693},"[ 60%] Performing build step ",{"type":24,"tag":502,"props":1695,"children":1696},{"style":1525},[1697],{"type":30,"value":1528},{"type":24,"tag":502,"props":1699,"children":1700},{"style":515},[1701],{"type":30,"value":1533},{"type":24,"tag":502,"props":1703,"children":1705},{"class":504,"line":1704},46,[1706,1711,1716],{"type":24,"tag":502,"props":1707,"children":1708},{"style":509},[1709],{"type":30,"value":1710},"ar:",{"type":24,"tag":502,"props":1712,"children":1713},{"style":515},[1714],{"type":30,"value":1715}," creating",{"type":24,"tag":502,"props":1717,"children":1718},{"style":515},[1719],{"type":30,"value":1720}," libleveldb.a\n",{"type":24,"tag":502,"props":1722,"children":1724},{"class":504,"line":1723},47,[1725,1730,1734],{"type":24,"tag":502,"props":1726,"children":1727},{"style":602},[1728],{"type":30,"value":1729},"[ 70%] No install step ",{"type":24,"tag":502,"props":1731,"children":1732},{"style":1525},[1733],{"type":30,"value":1528},{"type":24,"tag":502,"props":1735,"children":1736},{"style":515},[1737],{"type":30,"value":1533},{"type":24,"tag":502,"props":1739,"children":1741},{"class":504,"line":1740},48,[1742,1747],{"type":24,"tag":502,"props":1743,"children":1744},{"style":602},[1745],{"type":30,"value":1746},"[ 80%] Completed ",{"type":24,"tag":502,"props":1748,"children":1749},{"style":515},[1750],{"type":30,"value":1751},"'leveldb-basho'\n",{"type":24,"tag":502,"props":1753,"children":1755},{"class":504,"line":1754},49,[1756],{"type":24,"tag":502,"props":1757,"children":1758},{"style":602},[1759],{"type":30,"value":1760},"[ 80%] Built target leveldb-basho\n",{"type":24,"tag":502,"props":1762,"children":1764},{"class":504,"line":1763},50,[1765,1769,1773,1777,1781],{"type":24,"tag":502,"props":1766,"children":1767},{"style":509},[1768],{"type":30,"value":1493},{"type":24,"tag":502,"props":1770,"children":1771},{"style":515},[1772],{"type":30,"value":1498},{"type":24,"tag":502,"props":1774,"children":1775},{"style":515},[1776],{"type":30,"value":1503},{"type":24,"tag":502,"props":1778,"children":1779},{"style":515},[1780],{"type":30,"value":1508},{"type":24,"tag":502,"props":1782,"children":1783},{"style":515},[1784],{"type":30,"value":1785}," riakcompact\n",{"type":24,"tag":502,"props":1787,"children":1789},{"class":504,"line":1788},51,[1790],{"type":24,"tag":502,"props":1791,"children":1792},{"style":602},[1793],{"type":30,"value":1794},"[ 90%] Building CXX object src/CMakeFiles/riakcompact.dir/main.cpp.o\n",{"type":24,"tag":502,"props":1796,"children":1798},{"class":504,"line":1797},52,[1799],{"type":24,"tag":502,"props":1800,"children":1801},{"style":602},[1802],{"type":30,"value":1803},"[100%] Linking CXX executable riakcompact\n",{"type":24,"tag":502,"props":1805,"children":1807},{"class":504,"line":1806},53,[1808],{"type":24,"tag":502,"props":1809,"children":1810},{"style":602},[1811],{"type":30,"value":1812},"[100%] Built target riakcompact\n",{"type":24,"tag":502,"props":1814,"children":1816},{"class":504,"line":1815},54,[1817,1821,1826],{"type":24,"tag":502,"props":1818,"children":1819},{"style":509},[1820],{"type":30,"value":716},{"type":24,"tag":502,"props":1822,"children":1823},{"style":515},[1824],{"type":30,"value":1825}," ./src/riakcompact",{"type":24,"tag":502,"props":1827,"children":1828},{"style":602},[1829],{"type":30,"value":1830}," \n",{"type":24,"tag":502,"props":1832,"children":1834},{"class":504,"line":1833},55,[1835,1840,1845],{"type":24,"tag":502,"props":1836,"children":1837},{"style":509},[1838],{"type":30,"value":1839},"usage:",{"type":24,"tag":502,"props":1841,"children":1842},{"style":515},[1843],{"type":30,"value":1844},"   ./src/riakcompact",{"type":24,"tag":502,"props":1846,"children":1847},{"style":602},[1848],{"type":30,"value":1849}," [path]\n",{"type":24,"tag":33,"props":1851,"children":1852},{},[1853],{"type":30,"value":1854},"After this tool is build you can use it like this. Take in mind that your Riak node has to be turned off!",{"type":24,"tag":491,"props":1856,"children":1858},{"className":493,"code":1857,"language":495,"meta":7,"style":7},"root@knxwork:/home/dwalter/Projects/RiakToolsCxx/build# ./src/riakcompact /var/lib/riak/leveldb/\n\"/var/lib/riak/leveldb/91343852333181432387730302044767688728495783936\" [directory]\ncompacting...\ndone\n\"/var/lib/riak/leveldb/685078892498860742907977265335757665463718379520\" [directory]\ncompacting...\ndone\n",[1859],{"type":24,"tag":498,"props":1860,"children":1861},{"__ignoreMap":7},[1862,1879,1892,1900,1908,1920,1927],{"type":24,"tag":502,"props":1863,"children":1864},{"class":504,"line":505},[1865,1870,1874],{"type":24,"tag":502,"props":1866,"children":1867},{"style":509},[1868],{"type":30,"value":1869},"root@knxwork:/home/dwalter/Projects/RiakToolsCxx/build#",{"type":24,"tag":502,"props":1871,"children":1872},{"style":515},[1873],{"type":30,"value":1825},{"type":24,"tag":502,"props":1875,"children":1876},{"style":515},[1877],{"type":30,"value":1878}," /var/lib/riak/leveldb/\n",{"type":24,"tag":502,"props":1880,"children":1881},{"class":504,"line":196},[1882,1887],{"type":24,"tag":502,"props":1883,"children":1884},{"style":509},[1885],{"type":30,"value":1886},"\"/var/lib/riak/leveldb/91343852333181432387730302044767688728495783936\"",{"type":24,"tag":502,"props":1888,"children":1889},{"style":602},[1890],{"type":30,"value":1891}," [directory]\n",{"type":24,"tag":502,"props":1893,"children":1894},{"class":504,"line":554},[1895],{"type":24,"tag":502,"props":1896,"children":1897},{"style":509},[1898],{"type":30,"value":1899},"compacting...\n",{"type":24,"tag":502,"props":1901,"children":1902},{"class":504,"line":583},[1903],{"type":24,"tag":502,"props":1904,"children":1905},{"style":1525},[1906],{"type":30,"value":1907},"done\n",{"type":24,"tag":502,"props":1909,"children":1910},{"class":504,"line":633},[1911,1916],{"type":24,"tag":502,"props":1912,"children":1913},{"style":509},[1914],{"type":30,"value":1915},"\"/var/lib/riak/leveldb/685078892498860742907977265335757665463718379520\"",{"type":24,"tag":502,"props":1917,"children":1918},{"style":602},[1919],{"type":30,"value":1891},{"type":24,"tag":502,"props":1921,"children":1922},{"class":504,"line":656},[1923],{"type":24,"tag":502,"props":1924,"children":1925},{"style":509},[1926],{"type":30,"value":1899},{"type":24,"tag":502,"props":1928,"children":1929},{"class":504,"line":674},[1930],{"type":24,"tag":502,"props":1931,"children":1932},{"style":1525},[1933],{"type":30,"value":1907},{"type":24,"tag":25,"props":1935,"children":1937},{"id":1936},"conclusion",[1938],{"type":30,"value":1939},"Conclusion",{"type":24,"tag":33,"props":1941,"children":1942},{},[1943],{"type":24,"tag":1944,"props":1945,"children":1946},"strong",{},[1947],{"type":30,"value":1948},"After deleting a complete bucket in our riak (key by key), we are able to reduce consumed disk space from 75GB to 25GB with this tool!",{"type":24,"tag":1950,"props":1951,"children":1953},"h1",{"id":1952},"compaction-freed-more-than-66-of-the-data",[1954],{"type":30,"value":1955},"Compaction freed more than 66% of the data!",{"type":24,"tag":1957,"props":1958,"children":1959},"style",{},[1960],{"type":30,"value":1961},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":7,"searchDepth":196,"depth":196,"links":1963},[1964,1965,1966,1967,1968],{"id":353,"depth":196,"text":356},{"id":372,"depth":196,"text":375},{"id":435,"depth":196,"text":438},{"id":464,"depth":196,"text":467},{"id":1936,"depth":196,"text":1939},{"_path":225,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":226,"description":227,"author":10,"image":228,"releaseDate":229,"blogCategories":1970,"articleTags":1971,"tags":1972,"body":1973,"_type":203,"_id":233,"_source":205,"_file":234,"_stem":235,"_extension":208},[14,15],[17],[19],{"type":21,"children":1974,"toc":2483},[1975,1981,1986,1991,2374,2379,2384,2392,2397,2479],{"type":24,"tag":25,"props":1976,"children":1978},{"id":1977},"investigation-in-performance",[1979],{"type":30,"value":1980},"Investigation in Performance",{"type":24,"tag":33,"props":1982,"children":1983},{},[1984],{"type":30,"value":1985},"When it comes to buying an NVME SSD for a software developer workstation, you are faced with a choice: buy one cheap or buy one expensive. So far, I've chosen the more expensive ones because they promised better performance and longer life - I can now see how wrong I was.",{"type":24,"tag":33,"props":1987,"children":1988},{},[1989],{"type":30,"value":1990},"It all started when one employee said his NVME SSD was slower than his Sata SSD. This can't be true, as the Sata SSD is limited to 600MB/s and 3 years old, while his new NVME SSD is supposed to read and write 3000MB/s. And yet it is true. I have done some dirty benchmarks and the results are impressive. I call the benchmark dirty because clearly different PCs are used; different CPUs, sightly different operating system versions, different MySQL versions and configurations. But the differences in the results cannot be explained my that in my opinion. There is something wrong with the Samsung NVME SSDs.",{"type":24,"tag":1992,"props":1993,"children":1994},"table",{},[1995,2033],{"type":24,"tag":1996,"props":1997,"children":1998},"thead",{},[1999],{"type":24,"tag":2000,"props":2001,"children":2002},"tr",{},[2003,2009,2013,2018,2023,2028],{"type":24,"tag":2004,"props":2005,"children":2006},"th",{},[2007],{"type":30,"value":2008},"User",{"type":24,"tag":2004,"props":2010,"children":2011},{},[2012],{"type":30,"value":17},{"type":24,"tag":2004,"props":2014,"children":2015},{},[2016],{"type":30,"value":2017},"Note",{"type":24,"tag":2004,"props":2019,"children":2020},{},[2021],{"type":30,"value":2022},"Allocation",{"type":24,"tag":2004,"props":2024,"children":2025},{},[2026],{"type":30,"value":2027},"TPS",{"type":24,"tag":2004,"props":2029,"children":2030},{},[2031],{"type":30,"value":2032},"QPS",{"type":24,"tag":2034,"props":2035,"children":2036},"tbody",{},[2037,2069,2099,2130,2159,2190,2222,2253,2285,2315,2345],{"type":24,"tag":2000,"props":2038,"children":2039},{},[2040,2046,2051,2054,2059,2064],{"type":24,"tag":2041,"props":2042,"children":2043},"td",{},[2044],{"type":30,"value":2045},"Markus",{"type":24,"tag":2041,"props":2047,"children":2048},{},[2049],{"type":30,"value":2050},"Curical CT1000P1SSD8",{"type":24,"tag":2041,"props":2052,"children":2053},{},[],{"type":24,"tag":2041,"props":2055,"children":2056},{},[2057],{"type":30,"value":2058},"1,00 %",{"type":24,"tag":2041,"props":2060,"children":2061},{},[2062],{"type":30,"value":2063},"304",{"type":24,"tag":2041,"props":2065,"children":2066},{},[2067],{"type":30,"value":2068},"6091",{"type":24,"tag":2000,"props":2070,"children":2071},{},[2072,2077,2081,2084,2089,2094],{"type":24,"tag":2041,"props":2073,"children":2074},{},[2075],{"type":30,"value":2076},"Robert",{"type":24,"tag":2041,"props":2078,"children":2079},{},[2080],{"type":30,"value":2050},{"type":24,"tag":2041,"props":2082,"children":2083},{},[],{"type":24,"tag":2041,"props":2085,"children":2086},{},[2087],{"type":30,"value":2088},"4,00 %",{"type":24,"tag":2041,"props":2090,"children":2091},{},[2092],{"type":30,"value":2093},"412",{"type":24,"tag":2041,"props":2095,"children":2096},{},[2097],{"type":30,"value":2098},"8241",{"type":24,"tag":2000,"props":2100,"children":2101},{},[2102,2107,2112,2115,2120,2125],{"type":24,"tag":2041,"props":2103,"children":2104},{},[2105],{"type":30,"value":2106},"Reiner",{"type":24,"tag":2041,"props":2108,"children":2109},{},[2110],{"type":30,"value":2111},"Samsung SSD 970 PRO 512GB",{"type":24,"tag":2041,"props":2113,"children":2114},{},[],{"type":24,"tag":2041,"props":2116,"children":2117},{},[2118],{"type":30,"value":2119},"66,00 %",{"type":24,"tag":2041,"props":2121,"children":2122},{},[2123],{"type":30,"value":2124},"160",{"type":24,"tag":2041,"props":2126,"children":2127},{},[2128],{"type":30,"value":2129},"3214",{"type":24,"tag":2000,"props":2131,"children":2132},{},[2133,2137,2141,2144,2149,2154],{"type":24,"tag":2041,"props":2134,"children":2135},{},[2136],{"type":30,"value":2045},{"type":24,"tag":2041,"props":2138,"children":2139},{},[2140],{"type":30,"value":2111},{"type":24,"tag":2041,"props":2142,"children":2143},{},[],{"type":24,"tag":2041,"props":2145,"children":2146},{},[2147],{"type":30,"value":2148},"14,00 %",{"type":24,"tag":2041,"props":2150,"children":2151},{},[2152],{"type":30,"value":2153},"120",{"type":24,"tag":2041,"props":2155,"children":2156},{},[2157],{"type":30,"value":2158},"2414",{"type":24,"tag":2000,"props":2160,"children":2161},{},[2162,2166,2170,2175,2180,2185],{"type":24,"tag":2041,"props":2163,"children":2164},{},[2165],{"type":30,"value":245},{"type":24,"tag":2041,"props":2167,"children":2168},{},[2169],{"type":30,"value":2111},{"type":24,"tag":2041,"props":2171,"children":2172},{},[2173],{"type":30,"value":2174},"crypt",{"type":24,"tag":2041,"props":2176,"children":2177},{},[2178],{"type":30,"value":2179},"80,00 %",{"type":24,"tag":2041,"props":2181,"children":2182},{},[2183],{"type":30,"value":2184},"148",{"type":24,"tag":2041,"props":2186,"children":2187},{},[2188],{"type":30,"value":2189},"2976",{"type":24,"tag":2000,"props":2191,"children":2192},{},[2193,2198,2203,2207,2212,2217],{"type":24,"tag":2041,"props":2194,"children":2195},{},[2196],{"type":30,"value":2197},"Daniel",{"type":24,"tag":2041,"props":2199,"children":2200},{},[2201],{"type":30,"value":2202},"Samsung SSD 960 PRO 512GB",{"type":24,"tag":2041,"props":2204,"children":2205},{},[2206],{"type":30,"value":2174},{"type":24,"tag":2041,"props":2208,"children":2209},{},[2210],{"type":30,"value":2211},"46,00 %",{"type":24,"tag":2041,"props":2213,"children":2214},{},[2215],{"type":30,"value":2216},"30",{"type":24,"tag":2041,"props":2218,"children":2219},{},[2220],{"type":30,"value":2221},"614",{"type":24,"tag":2000,"props":2223,"children":2224},{},[2225,2229,2234,2239,2244,2248],{"type":24,"tag":2041,"props":2226,"children":2227},{},[2228],{"type":30,"value":2106},{"type":24,"tag":2041,"props":2230,"children":2231},{},[2232],{"type":30,"value":2233},"Samsung SSD 850 PRO 128GB",{"type":24,"tag":2041,"props":2235,"children":2236},{},[2237],{"type":30,"value":2238},"sata",{"type":24,"tag":2041,"props":2240,"children":2241},{},[2242],{"type":30,"value":2243},"37,00 %",{"type":24,"tag":2041,"props":2245,"children":2246},{},[2247],{"type":30,"value":2153},{"type":24,"tag":2041,"props":2249,"children":2250},{},[2251],{"type":30,"value":2252},"2437",{"type":24,"tag":2000,"props":2254,"children":2255},{},[2256,2260,2265,2270,2275,2280],{"type":24,"tag":2041,"props":2257,"children":2258},{},[2259],{"type":30,"value":2197},{"type":24,"tag":2041,"props":2261,"children":2262},{},[2263],{"type":30,"value":2264},"Samsung SSD 860 PRO 512GB",{"type":24,"tag":2041,"props":2266,"children":2267},{},[2268],{"type":30,"value":2269},"SATA",{"type":24,"tag":2041,"props":2271,"children":2272},{},[2273],{"type":30,"value":2274},"87,00 %",{"type":24,"tag":2041,"props":2276,"children":2277},{},[2278],{"type":30,"value":2279},"185",{"type":24,"tag":2041,"props":2281,"children":2282},{},[2283],{"type":30,"value":2284},"3700",{"type":24,"tag":2000,"props":2286,"children":2287},{},[2288,2293,2298,2301,2305,2310],{"type":24,"tag":2041,"props":2289,"children":2290},{},[2291],{"type":30,"value":2292},"Daneil",{"type":24,"tag":2041,"props":2294,"children":2295},{},[2296],{"type":30,"value":2297},"Samsung SSD 970 EVO Plus 1TB",{"type":24,"tag":2041,"props":2299,"children":2300},{},[],{"type":24,"tag":2041,"props":2302,"children":2303},{},[2304],{"type":30,"value":2058},{"type":24,"tag":2041,"props":2306,"children":2307},{},[2308],{"type":30,"value":2309},"480",{"type":24,"tag":2041,"props":2311,"children":2312},{},[2313],{"type":30,"value":2314},"9614",{"type":24,"tag":2000,"props":2316,"children":2317},{},[2318,2322,2327,2330,2335,2340],{"type":24,"tag":2041,"props":2319,"children":2320},{},[2321],{"type":30,"value":245},{"type":24,"tag":2041,"props":2323,"children":2324},{},[2325],{"type":30,"value":2326},"Sabrent Rocket Q 2TB",{"type":24,"tag":2041,"props":2328,"children":2329},{},[],{"type":24,"tag":2041,"props":2331,"children":2332},{},[2333],{"type":30,"value":2334},"26,00 %",{"type":24,"tag":2041,"props":2336,"children":2337},{},[2338],{"type":30,"value":2339},"237",{"type":24,"tag":2041,"props":2341,"children":2342},{},[2343],{"type":30,"value":2344},"4749",{"type":24,"tag":2000,"props":2346,"children":2347},{},[2348,2353,2358,2361,2365,2369],{"type":24,"tag":2041,"props":2349,"children":2350},{},[2351],{"type":30,"value":2352},"Marcel",{"type":24,"tag":2041,"props":2354,"children":2355},{},[2356],{"type":30,"value":2357},"Patriot Scorch M2 256GB",{"type":24,"tag":2041,"props":2359,"children":2360},{},[],{"type":24,"tag":2041,"props":2362,"children":2363},{},[2364],{"type":30,"value":2058},{"type":24,"tag":2041,"props":2366,"children":2367},{},[2368],{"type":30,"value":2153},{"type":24,"tag":2041,"props":2370,"children":2371},{},[2372],{"type":30,"value":2373},"2440",{"type":24,"tag":33,"props":2375,"children":2376},{},[2377],{"type":30,"value":2378},"As you can see, the Curical P1 SSD is 2x, partially 3x faster than the Samsung Pro SSDs - even though the Curical costs only a third. You can also see that the 860 Pro Sata SSD from Daniel is faster than all Samsung NVME Pro SSDs. If you look for the phenomena on google, you will find other people who have observed the same problem. The Samsung PRO NVME SSDs seem to have a problem with frequent fsync calls.I have used sysbench 1.0.18 with the oltp_read_write benchmark on all machines. They all use BTRFS as filesystem and the MySQL filesystem was mounted with nodatacow, which improves performance. In the table, TPS stands for transactions per second and QPS for queries per second - both values were read from the sysbench statistics.",{"type":24,"tag":33,"props":2380,"children":2381},{},[2382],{"type":30,"value":2383},"Since our database performance is very important to our software developers, I will avoid the Samsung pro NVME SSDs in the future and give other manufacturers a chance. The SSD is still fine for Gaming, Movie editing and stuff, just not for requent fsyncs.",{"type":24,"tag":33,"props":2385,"children":2386},{},[2387],{"type":24,"tag":1944,"props":2388,"children":2389},{},[2390],{"type":30,"value":2391},"Edit: looks like the 970 EVO Plus SSD is not affected by this problem.",{"type":24,"tag":33,"props":2393,"children":2394},{},[2395],{"type":30,"value":2396},"sysbench commands used:",{"type":24,"tag":491,"props":2398,"children":2400},{"className":493,"code":2399,"language":495,"meta":7,"style":7},"sysbench oltp_read_write --table-size=2500000 --mysql-user=root --db-driver=mysql --mysql-password=  prepare\nsysbench oltp_read_write --table-size=2500000 --mysql-user=root --db-driver=mysql --mysql-password=  --time=120 run\n",[2401],{"type":24,"tag":498,"props":2402,"children":2403},{"__ignoreMap":7},[2404,2442],{"type":24,"tag":502,"props":2405,"children":2406},{"class":504,"line":505},[2407,2412,2417,2422,2427,2432,2437],{"type":24,"tag":502,"props":2408,"children":2409},{"style":509},[2410],{"type":30,"value":2411},"sysbench",{"type":24,"tag":502,"props":2413,"children":2414},{"style":515},[2415],{"type":30,"value":2416}," oltp_read_write",{"type":24,"tag":502,"props":2418,"children":2419},{"style":596},[2420],{"type":30,"value":2421}," --table-size=2500000",{"type":24,"tag":502,"props":2423,"children":2424},{"style":596},[2425],{"type":30,"value":2426}," --mysql-user=root",{"type":24,"tag":502,"props":2428,"children":2429},{"style":596},[2430],{"type":30,"value":2431}," --db-driver=mysql",{"type":24,"tag":502,"props":2433,"children":2434},{"style":596},[2435],{"type":30,"value":2436}," --mysql-password=",{"type":24,"tag":502,"props":2438,"children":2439},{"style":515},[2440],{"type":30,"value":2441},"  prepare\n",{"type":24,"tag":502,"props":2443,"children":2444},{"class":504,"line":196},[2445,2449,2453,2457,2461,2465,2469,2474],{"type":24,"tag":502,"props":2446,"children":2447},{"style":509},[2448],{"type":30,"value":2411},{"type":24,"tag":502,"props":2450,"children":2451},{"style":515},[2452],{"type":30,"value":2416},{"type":24,"tag":502,"props":2454,"children":2455},{"style":596},[2456],{"type":30,"value":2421},{"type":24,"tag":502,"props":2458,"children":2459},{"style":596},[2460],{"type":30,"value":2426},{"type":24,"tag":502,"props":2462,"children":2463},{"style":596},[2464],{"type":30,"value":2431},{"type":24,"tag":502,"props":2466,"children":2467},{"style":596},[2468],{"type":30,"value":2436},{"type":24,"tag":502,"props":2470,"children":2471},{"style":596},[2472],{"type":30,"value":2473},"  --time=120",{"type":24,"tag":502,"props":2475,"children":2476},{"style":515},[2477],{"type":30,"value":2478}," run\n",{"type":24,"tag":1957,"props":2480,"children":2481},{},[2482],{"type":30,"value":1961},{"title":7,"searchDepth":196,"depth":196,"links":2484},[2485],{"id":1977,"depth":196,"text":1980},{"_path":2487,"_dir":241,"_draft":6,"_partial":6,"_locale":7,"slug":213,"teams":2488,"primaryTeam":2489,"firstName":2197,"lastName":2490,"prefixTitle":7,"suffixTitle":7,"education":2491,"executiveRole":2494,"role":2495,"workingSince":262,"inTheCompanySince":262,"techSkills":2499,"skills":2506,"projects":2513,"contactDetails":2514,"_image":2517,"image":2518,"_id":2519,"_type":341,"title":2520,"_source":241,"_file":2521,"_stem":2522,"_extension":341},"/employees/daniel-walter",[2489,244],"shopware","Walter",[2492],[249,2493,251],"FHDW","CEO",[254,2496,2497,258,2498,257,260],"chiefExecutiveOfficer","projectManager","fullstackDeveloper",[2500,2501,2502,2503],{"name":291,"level":266,"icon":293},{"name":295,"level":266,"icon":296},{"name":288,"level":266,"icon":289},{"name":2504,"level":292,"icon":2505},"Flutter","/images/Flutter.svg",[2507,2508,2509,2511,2512],{"name":220,"level":266},{"name":316,"level":266},{"name":2510,"level":266},"projectManagement",{"name":2489,"level":266},{"name":318,"level":292},[],{"eMail":2515,"phone":2516,"visibility":337},"daniel.walter@helmundwalter.de","+49 351 799 035 21","images/employees/Portraits/daniel_walter.webp","images/employees/Portraits/DanielWalter_MS.webp","employees:employees:2.daniel-walter.json","Daniel Walter","employees/2.daniel-walter.json","employees/2.daniel-walter",{"_path":240,"_dir":241,"_draft":6,"_partial":6,"_locale":7,"slug":10,"teams":2524,"primaryTeam":244,"firstName":245,"lastName":246,"prefixTitle":7,"suffixTitle":7,"education":2525,"executiveRole":252,"role":2527,"workingSince":261,"inTheCompanySince":262,"techSkills":2528,"skills":2545,"projects":2552,"contactDetails":2558,"_image":338,"image":339,"_id":340,"_type":341,"title":342,"_source":241,"_file":343,"_stem":344,"_extension":341},[243,244],[2526],[249,250,251],[254,255,244,256,257,258,259,260],[2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544],{"name":265,"level":266,"icon":267},{"name":269,"level":266,"icon":270},{"name":272,"level":266},{"name":274,"level":266,"icon":275},{"name":277,"level":266},{"name":279,"level":266,"icon":280},{"name":282,"level":266},{"name":284,"level":266},{"name":286,"level":266},{"name":288,"level":266,"icon":289},{"name":291,"level":292,"icon":293},{"name":295,"level":292,"icon":296},{"name":298,"level":292,"icon":299},{"name":301,"level":292,"icon":302},{"name":304,"level":292,"icon":305},{"name":307,"level":292,"icon":308},[2546,2547,2548,2549,2550,2551],{"name":311,"level":266},{"name":313,"level":266},{"name":220,"level":266},{"name":316,"level":266},{"name":318,"level":266},{"name":320,"level":292},[2553,2554,2555,2556,2557],{"project":323,"position":324},{"project":326,"position":324},{"project":328,"position":324},{"project":330,"position":331},{"project":333,"position":324},{"eMail":335,"phone":336,"visibility":337},[2560,2575],{"_path":2561,"_dir":2562,"_draft":6,"_partial":2563,"_locale":7,"name":2564,"slug":2562,"text":2565,"hoverText":2566,"image":2567,"customer":2564,"tags":2568,"_id":2570,"_type":2571,"title":2572,"_source":205,"_file":2573,"_stem":2574,"_extension":2571},"/en/portfolio/pixelx/_teaser","pixelx",true,"PixelX","IT Security with Precision and Expertise","For PixelX, we conducted a targeted security analysis where, thanks to our deep technical understanding, we were able to identify a critical SQL injection vulnerability. With minimal time investment, we achieved maximum security gain.","/images/portfolio/pixelx/pixelx_secured.png",[2569,19],"security","common:en:portfolio:9010.pixelx:_teaser.yaml","yaml","Teaser","en/portfolio/9010.pixelx/_teaser.yaml","en/portfolio/9010.pixelx/_teaser",{"_path":2576,"_dir":2577,"_draft":6,"_partial":2563,"_locale":7,"name":2578,"slug":2577,"text":2579,"hoverText":2580,"image":2581,"customer":2578,"tags":2582,"_id":2583,"_type":2571,"title":2572,"_source":205,"_file":2584,"_stem":2585,"_extension":2571},"/en/portfolio/slimspots/_teaser","slimspots","SlimSpots","Processing large amounts of data in real-time","For SlimSpots, a global provider of ad marketing solutions, we developed a highly scalable infrastructure that enables the processing of trillions of data records in real-time.","/images/portfolio/slimspots/slim_spots_prtfolio.png",[220,19],"common:en:portfolio:9020.slimspots:_teaser.yaml","en/portfolio/9020.slimspots/_teaser.yaml","en/portfolio/9020.slimspots/_teaser",1782284053137]