[{"data":1,"prerenderedAt":2579},["ShallowReactive",2],{"blog-current-raid5-vs-raid10-leistungsbenchmark-mdadm-de":3,"blog-previous-raid5-vs-raid10-leistungsbenchmark-mdadm-de":204,"blog-next-raid5-vs-raid10-leistungsbenchmark-mdadm-de":219,"blog-alt-de-raid5-vs-raid10-leistungsbenchmark-mdadm-de":231,"blog-alt-en-raid5-vs-raid10-leistungsbenchmark-mdadm-de":232,"employee-bernd-helm":234,"content-query-Iuoicz9R1n":340,"content-query-IyVdAveXkZ":1962,"content-query-EC7xcJJMAZ":2479,"content-query-1PFeYVQSzn":2516,"related-refs-devops--de":2552},{"_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":198,"_id":199,"_source":200,"_file":201,"_stem":202,"_extension":203},"/blog/raid5-vs-raid10-leistungsbenchmark-mdadm","blog",false,"","RAID5 vs. Raid10 Leistungsbenchmark MDADM","Kommentar und Untersuchung zur RAID-Performance RAID 5 vs. RAID10 wird schon seit Ewigkeiten diskutiert; es ist allgemein bekannt, dass RAID10 eine bessere Leistung bietet - aber wie viel, hängt von der tatsächlichen Implementierung, Hardware und dem Anwendungsfall ab. Ich habe gerade einen Server mit 4 x 16TB ...","bernd-helm","/blog/thumbnails/RAID_white.png","2019-11-06",[14,15],"Das bewegt uns","Infrastruktur",[17],"SSD",[19],"devops",{"type":21,"children":22,"toc":190},"root",[23,32,38,43,49,69,75,80,89,94,99,104,109,115,120,125,130,135,140,145,150,155,164,169,175,180,185],{"type":24,"tag":25,"props":26,"children":28},"element","h2",{"id":27},"kommentar-und-untersuchung-der-raid-leistung",[29],{"type":30,"value":31},"text","Kommentar und Untersuchung der RAID-Leistung",{"type":24,"tag":33,"props":34,"children":35},"p",{},[36],{"type":30,"value":37},"RAID 5 vs. RAID10 wird seit Ewigkeiten diskutiert; es ist allgemein bekannt, dass RAID10 eine bessere Leistung bietet -\naber wie viel, hängt von der tatsächlichen Implementierung, der Hardware und dem Anwendungsfall ab.",{"type":24,"tag":33,"props":39,"children":40},{},[41],{"type":30,"value":42},"Ich habe gerade einen Server mit 4 x 16 TB Festplatten bekommen, alle nagelneu, und beschloss, ihn zu testen, um\nherauszufinden, ob der Leistungsgewinn von Raid 10 den geringeren nutzbaren Speicherplatz rechtfertigt. Wir planen, ihn\nals Backup-Server zu verwenden, so dass unsere Arbeitslast hauptsächlich aus sequentiellen Schreibvorgängen besteht.",{"type":24,"tag":25,"props":44,"children":46},{"id":45},"testmethodik",[47],{"type":30,"value":48},"Testmethodik",{"type":24,"tag":33,"props":50,"children":51},{},[52,54,60,62,67],{"type":30,"value":53},"Alle Tests werden mit ",{"type":24,"tag":55,"props":56,"children":57},"em",{},[58],{"type":30,"value":59},"fio",{"type":30,"value":61}," mit ",{"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}," und einem Zeitlimit von 60 Sekunden\nausgeführt. die sequentiellen Lese- und Schreibtests werden mit 1024k Blockgröße und 1 Prozess durchgeführt. Die\nzufälligen Lese-/Schreibtests mit 4k Blockgröße und 4 Prozessen. Für die Tests wird eine 30 GB große Partition am Anfang\njeder Festplatte verwendet. Die Linux-Kernel-Version ist 5.10.",{"type":24,"tag":25,"props":70,"children":72},{"id":71},"einfache-festplattenleistung",[73],{"type":30,"value":74},"Einfache Festplattenleistung",{"type":24,"tag":33,"props":76,"children":77},{},[78],{"type":30,"value":79},"Bevor ich mit den eigentlichen Tests beginne, möchte ich die Grundlinie der Leistung einer einzelnen Festplatte\nermitteln und auch sicherstellen, dass alle Festplatten ähnlich arbeiten.",{"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},"Hier sieht alles schön flach aus, so wie es sein sollte. Wir haben etwa 268 MB/s beim sequentiellen Lesen und Schreiben\nund eine zufällige IOPS-Leistung von 550 beim Lesen und 480 beim Schreiben.",{"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":81,"props":121,"children":124},{"alt":122,"aspect-ratio":84,"height":85,"object-fit":86,"src":123},"raid_6","/blog/raid_6.png",[],{"type":24,"tag":33,"props":126,"children":127},{},[128],{"type":30,"value":129},"Die sequentille Leseleistung zwischen RAID5 und RAID10 ist geringer als ich vermutet hätte. Das far2 Layout macht hier\nwirklich einen Unterschied.",{"type":24,"tag":81,"props":131,"children":134},{"alt":132,"aspect-ratio":84,"height":85,"object-fit":86,"src":133},"raid_7","/blog/raid_7.png",[],{"type":24,"tag":33,"props":136,"children":137},{},[138],{"type":30,"value":139},"Interessanterweise gibt es keinen großen Unterschied beim Zufallslesetest, was ich nicht erwartet hätte.",{"type":24,"tag":81,"props":141,"children":144},{"alt":142,"aspect-ratio":84,"height":85,"object-fit":86,"src":143},"raid_8","/blog/raid_8.png",[],{"type":24,"tag":33,"props":146,"children":147},{},[148],{"type":30,"value":149},"Das Rand Write Diagramm sieht dem Seq Write Diagramm sehr ähnlich. Der einzige Unterschied ist, dass das klassische\nraid10 besser mit zufälligen als mit sequentiellen Schreibvorgängen umgehen kann.",{"type":24,"tag":33,"props":151,"children":152},{},[153],{"type":30,"value":154},"MDADM hat mehrere Implementierungen, wie das Raid intern arbeitet. Für raid10 habe ich die Layouts \"near 2\" und \"far 2\"\ngetestet, wobei \"near 2\" der Standard ist. Aus der Doku:",{"type":24,"tag":156,"props":157,"children":158},"blockquote",{},[159],{"type":24,"tag":33,"props":160,"children":161},{},[162],{"type":30,"value":163},"Der Vorteil dieser (... Far 2) Anordnung besteht darin, dass MD sequentielle Lesevorgänge leicht auf die Geräte\nverteilen kann, was sie in Bezug auf die Geschwindigkeit mit RAID0 vergleichbar macht. Der Preis dafür ist, dass bei\nSchreibvorgängen mehr gesucht wird, was sie wesentlich langsamer macht.",{"type":24,"tag":33,"props":165,"children":166},{},[167],{"type":30,"value":168},"Ja, dies ist in den Benchmark-Diagrammen zu sehen",{"type":24,"tag":25,"props":170,"children":172},{"id":171},"schlussfolgerungen",[173],{"type":30,"value":174},"Schlussfolgerungen",{"type":24,"tag":33,"props":176,"children":177},{},[178],{"type":30,"value":179},"Aus meinen Tests geht hervor, dass der Unterschied in der Leseleistung vernachlässigbar ist. Beim Schreiben hat Raid10\neinen großen Vorteil.",{"type":24,"tag":33,"props":181,"children":182},{},[183],{"type":30,"value":184},"Für unseren Backup-Server verwenden wir Raid 5, da es 3x schneller ist als die 1GBit Netzwerkkarte des Servers und\nunsere Backup- oder Restore-Prozesse nicht ausbremst.",{"type":24,"tag":33,"props":186,"children":187},{},[188],{"type":30,"value":189},"Wenn Sie einen kritischeren Anwendungsfall haben, rate ich Ihnen, Ihre eigenen Benchmarks durchzuführen, die Ihre\nArbeitslast besser widerspiegeln. Besonders wenn Sie SSDs verwenden, können die Ergebnisse drastisch anders ausfallen.",{"title":7,"searchDepth":191,"depth":191,"links":192},2,[193,194,195,196,197],{"id":27,"depth":191,"text":31},{"id":45,"depth":191,"text":48},{"id":71,"depth":191,"text":74},{"id":111,"depth":191,"text":114},{"id":171,"depth":191,"text":174},"markdown","common:blog:5.raid5-vs-raid10-leistungsbenchmark-mdadm.md","common","blog/5.raid5-vs-raid10-leistungsbenchmark-mdadm.md","blog/5.raid5-vs-raid10-leistungsbenchmark-mdadm","md",{"_path":205,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":206,"description":207,"author":208,"image":209,"releaseDate":210,"blogCategories":211,"articleTags":213,"tags":214,"_type":198,"_id":216,"_source":200,"_file":217,"_stem":218,"_extension":203},"/blog/riak-kompaktiert-eleveldb-tombstones-und-gewinnt-plattenplatz-zurueck","RIAK kompaktiert e/leveldb Tombstones und gewinnt Plattenplatz zurück","Wenn man versucht, Speicherplatz zurückzugewinnen, scheint das Löschen von Daten der naheliegende erste Schritt zu sein. In Riak ist dies jedoch nicht unbedingt die beste Lösung, wenn die Festplatte fast voll ist...","daniel-walter","/blog/thumbnails/RIAK_white.png","2017-09-26",[14,212],"Datenbanken",[17],[215,19],"databases","common:blog:4.riak-kompaktiert-eleveldb-tombstones-und-gewinnt-plattenplatz-zurueck.md","blog/4.riak-kompaktiert-eleveldb-tombstones-und-gewinnt-plattenplatz-zurueck.md","blog/4.riak-kompaktiert-eleveldb-tombstones-und-gewinnt-plattenplatz-zurueck",{"_path":220,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":221,"description":222,"author":10,"image":223,"releaseDate":224,"blogCategories":225,"articleTags":226,"tags":227,"_type":198,"_id":228,"_source":200,"_file":229,"_stem":230,"_extension":203},"/blog/warum-wir-keine-samsung-nvme-pro-ssds-mehr-verwenden","Warum wir keine Samsung NVME Pro SSDs mehr verwenden","Wenn es darum geht, eine NVME-SSD für eine Softwareentwickler-Workstation zu kaufen, steht man vor der Wahl: eine billige oder eine teure zu kaufen. Bisher habe ich mich für die teureren entschieden, weil sie eine bessere Leistung und längere Lebensdauer versprachen - jetzt sehe ich, wie falsch ich lag...","/blog/thumbnails/SSD_white.png","2020-04-16",[14,15],[17],[19],"common:blog:6.warum-wir-keine-samsung-nvme-pro-ssds-mehr-verwenden.md","blog/6.warum-wir-keine-samsung-nvme-pro-ssds-mehr-verwenden.md","blog/6.warum-wir-keine-samsung-nvme-pro-ssds-mehr-verwenden",{"_path":4},{"_path":233},"/en/blog/raid5-vs-raid10-performance-benchmark-mdadm",{"_path":235,"_dir":236,"_draft":6,"_partial":6,"_locale":7,"slug":10,"teams":237,"primaryTeam":239,"firstName":240,"lastName":241,"prefixTitle":7,"suffixTitle":7,"education":242,"executiveRole":247,"role":248,"workingSince":256,"inTheCompanySince":257,"techSkills":258,"skills":304,"projects":316,"contactDetails":329,"_image":333,"image":334,"_id":335,"_type":336,"title":337,"_source":236,"_file":338,"_stem":339,"_extension":336},"/employees/bernd-helm","employees",[238,239],"ai","devOps","Bernd","Helm",[243],[244,245,246],"B. Sc. Angewandte Informatik","FHDW Dresden","2010","CTO",[249,250,239,251,252,253,254,255],"founder","chiefTechnologyOfficer","databaseSpecialist","admin","softwareDeveloper","backendDeveloper","consultant","2005","2008",[259,263,266,268,271,273,276,278,280,282,285,289,292,295,298,301],{"name":260,"level":261,"icon":262},"Docker","expert","/images/Docker.svg",{"name":264,"level":261,"icon":265},"Linux","/images/linux_os-mono.svg",{"name":267,"level":261},"Zabbix",{"name":269,"level":261,"icon":270},"MariaDB ColumnStore","/images/maria-db-logo.svg",{"name":272,"level":261},"OpenAI",{"name":274,"level":261,"icon":275},"Pytorch","/images/PyTorch.svg",{"name":277,"level":261},"PHP",{"name":279,"level":261},"Java",{"name":281,"level":261},"Python",{"name":283,"level":261,"icon":284},"SQL","/images/SQL.svg",{"name":286,"level":287,"icon":288},"C++","advanced","/images/cpp-logo.svg",{"name":290,"level":287,"icon":291},"C#","/images/csharp.svg",{"name":293,"level":287,"icon":294},"CSS","/images/css.svg",{"name":296,"level":287,"icon":297},"HTML","/images/html.svg",{"name":299,"level":287,"icon":300},"OpenCV","/images/OpenCV.svg",{"name":302,"level":287,"icon":303},"Vue.js","/images/vuejs.svg",[305,307,309,310,312,314],{"name":306,"level":261},"artificialIntelligence",{"name":308,"level":261},"codingGuidelines",{"name":215,"level":261},{"name":311,"level":261},"linuxServerAdministration",{"name":313,"level":261},"softwareArchitect",{"name":315,"level":287},"qualityAssurance",[317,320,322,324,327],{"project":318,"position":319},"Gridside","Technical Consultant",{"project":321,"position":319},"Herole",{"project":323,"position":319},"Montagespezis",{"project":325,"position":326},"Orsee","Technical Manager",{"project":328,"position":319},"Vipr",{"eMail":330,"phone":331,"visibility":332},"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":205,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":206,"description":207,"author":208,"image":209,"releaseDate":210,"blogCategories":341,"articleTags":342,"tags":343,"body":344,"_type":198,"_id":216,"_source":200,"_file":217,"_stem":218,"_extension":203},[14,212],[17],[215,19],{"type":21,"children":345,"toc":1955},[346,352,357,362,368,420,425,431,444,449,454,460,478,483,1843,1848,1927,1933,1942,1949],{"type":24,"tag":25,"props":347,"children":349},{"id":348},"das-problem",[350],{"type":30,"value":351},"Das Problem",{"type":24,"tag":33,"props":353,"children":354},{},[355],{"type":30,"value":356},"Wenn man versucht, Speicherplatz zurückzugewinnen, scheint das Löschen von Daten der naheliegende erste Schritt zu sein. In Riak ist dies jedoch nicht unbedingt die beste Lösung, wenn die Festplatte fast voll ist.\nDer Grund dafür ist, dass das Löschen von Objekten in Riak kompliziert ist. Wie im Abschnitt zum Löschen von Objekten in der aktuellen Riak-Dokumentation beschrieben:",{"type":24,"tag":33,"props":358,"children":359},{},[360],{"type":30,"value":361},"*In Single-Server, nicht geclusterten Datenspeichersystemen ist das Löschen von Objekten ein trivialer Prozess. In einem konsistenten, geclusterten System wie Riak ist das Löschen von Objekten jedoch weit weniger trivial, da sich die Objekte auf mehreren Knoten befinden, was bedeutet, dass ein Löschprozess gewählt werden muss, um zu bestimmen, wann ein Objekt aus dem Speicher-Backend entfernt werden kann.",{"type":24,"tag":25,"props":363,"children":365},{"id":364},"wie-die-löschung-funktioniert",[366],{"type":30,"value":367},"Wie die Löschung funktioniert",{"type":24,"tag":369,"props":370,"children":371},"ol",{},[372,387,400,405,410,415],{"type":24,"tag":373,"props":374,"children":375},"li",{},[376,378,385],{"type":30,"value":377},"Riak schreibt einen ",{"type":24,"tag":379,"props":380,"children":382},"a",{"href":381},"https://riak.docs.hw.ag/riak/kv/latest/using/reference/object-deletion/#tombstones",[383],{"type":30,"value":384},"\"tombstone\"",{"type":30,"value":386}," Wert für den Schlüssel zu den N vnodes, die ihn enthalten\n(dies ist ein neuer Datensatz)",{"type":24,"tag":373,"props":388,"children":389},{},[390,392,398],{"type":30,"value":391},"Riak wartet ",{"type":24,"tag":379,"props":393,"children":395},{"href":394},"https://riak.docs.hw.ag/riak/kv/latest/configuring/reference/#other-settings",[396],{"type":30,"value":397},"standardmäßig 3 Sekunden",{"type":30,"value":399},", um zu überprüfen, ob alle vnodes mit dem\nTombstone/Löschen",{"type":24,"tag":373,"props":401,"children":402},{},[403],{"type":30,"value":404},"Riak gibt eine tatsächliche Löschoperation gegen den Schlüssel an leveldb aus",{"type":24,"tag":373,"props":406,"children":407},{},[408],{"type":30,"value":409},"leveldb erstellt seinen eigenen Tombstone",{"type":24,"tag":373,"props":411,"children":412},{},[413],{"type":30,"value":414},"Der Tombstone von Leveldb \"schwebt\" durch Level-0 und Level-1 als Teil der normalen\nKomprimierungen",{"type":24,"tag":373,"props":416,"children":417},{},[418],{"type":30,"value":419},"Beim Erreichen von Level-2 wird Leveldb sofort die Komprimierung und Verbreitung\nder Tombstones in .sst-Tabellendateien mit 1000 oder mehr Tombstones eingeleitet.",{"type":24,"tag":33,"props":421,"children":422},{},[423],{"type":30,"value":424},"Dies hat zur Folge, dass die Freigabe von Plattenplatz, wenn überhaupt, nur sehr langsam erfolgt.",{"type":24,"tag":25,"props":426,"children":428},{"id":427},"lösung-für-eleveldb",[429],{"type":30,"value":430},"Lösung für e/leveldb",{"type":24,"tag":33,"props":432,"children":433},{},[434,436,442],{"type":30,"value":435},"Kurz gesagt, es gibt eine C++-Funktion in Leveldb, die zur Komprimierung des zugrunde liegenden Speichers verwendet wird. Die Funktion heißt ",{"type":24,"tag":379,"props":437,"children":439},{"href":438},"https://github.com/hw-dwalter/leveldb/blob/5db913fdc28801714d587c44524d90b48e51210e/include/leveldb/db.h#L157",[440],{"type":30,"value":441},"\"CompactRange\"",{"type":30,"value":443},".",{"type":24,"tag":33,"props":445,"children":446},{},[447],{"type":30,"value":448},"Insbesondere werden gelöschte und überschriebene Versionen verworfen, und die Daten werden neu angeordnet, um die Kosten der für den Zugriff auf die Daten erforderlichen Operationen zu verringern.",{"type":24,"tag":33,"props":450,"children":451},{},[452],{"type":30,"value":453},"Diese Funktion ist im Erlang-Code, der diese C++-Bibliothek verwendet, nicht vorhanden. Das bedeutet, dass wir ein eigenständiges Tool entwickeln mussten, das diese Bibliotheksfunktion für alle Leveldb-Dateien in Riak aufruft. Der Nachteil dabei ist, dass der Riak Server offline sein muss, während ein solches 3rd Party Tool läuft.",{"type":24,"tag":25,"props":455,"children":457},{"id":456},"anwendungsfall",[458],{"type":30,"value":459},"Anwendungsfall",{"type":24,"tag":33,"props":461,"children":462},{},[463,465,470,472,476],{"type":30,"value":464},"Wir haben ein solches Tool gebaut, Sie können es von github RiakToolsCxx.git auschecken und mit ",{"type":24,"tag":55,"props":466,"children":467},{},[468],{"type":30,"value":469},"cmake",{"type":30,"value":471}," bauen. Die externe Abhängigkeit leveldb-basho wird automatisch von ",{"type":24,"tag":55,"props":473,"children":474},{},[475],{"type":30,"value":469},{"type":30,"value":477}," gezogen.",{"type":24,"tag":33,"props":479,"children":480},{},[481],{"type":30,"value":482},"Der Checkout- und Build-Prozess könnte wie folgt aussehen:",{"type":24,"tag":484,"props":485,"children":489},"pre",{"className":486,"code":487,"language":488,"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",[490],{"type":24,"tag":491,"props":492,"children":493},"code",{"__ignoreMap":7},[494,527,545,574,624,647,665,684,701,720,764,801,844,875,914,940,973,996,1026,1047,1076,1113,1146,1187,1215,1251,1275,1307,1330,1362,1375,1388,1405,1422,1465,1478,1507,1527,1558,1575,1594,1627,1644,1661,1678,1695,1714,1731,1745,1754,1779,1788,1797,1806,1824],{"type":24,"tag":495,"props":496,"children":499},"span",{"class":497,"line":498},"line",1,[500,506,512,517,522],{"type":24,"tag":495,"props":501,"children":503},{"style":502},"--shiki-default:#B392F0;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E",[504],{"type":30,"value":505},"dwalter@knxwork:~/Projects$",{"type":24,"tag":495,"props":507,"children":509},{"style":508},"--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74",[510],{"type":30,"value":511}," git",{"type":24,"tag":495,"props":513,"children":514},{"style":508},[515],{"type":30,"value":516}," clone",{"type":24,"tag":495,"props":518,"children":519},{"style":508},[520],{"type":30,"value":521}," https://github.com/hw-dwalter/RiakToolsCxx.git",{"type":24,"tag":495,"props":523,"children":524},{"style":508},[525],{"type":30,"value":526}," RiakToolsCxx\n",{"type":24,"tag":495,"props":528,"children":529},{"class":497,"line":191},[530,535,540],{"type":24,"tag":495,"props":531,"children":532},{"style":502},[533],{"type":30,"value":534},"Cloning",{"type":24,"tag":495,"props":536,"children":537},{"style":508},[538],{"type":30,"value":539}," into",{"type":24,"tag":495,"props":541,"children":542},{"style":508},[543],{"type":30,"value":544}," 'RiakToolsCxx'...\n",{"type":24,"tag":495,"props":546,"children":548},{"class":497,"line":547},3,[549,554,559,564,569],{"type":24,"tag":495,"props":550,"children":551},{"style":502},[552],{"type":30,"value":553},"remote:",{"type":24,"tag":495,"props":555,"children":556},{"style":508},[557],{"type":30,"value":558}," Counting",{"type":24,"tag":495,"props":560,"children":561},{"style":508},[562],{"type":30,"value":563}," objects:",{"type":24,"tag":495,"props":565,"children":566},{"style":508},[567],{"type":30,"value":568}," 11,",{"type":24,"tag":495,"props":570,"children":571},{"style":508},[572],{"type":30,"value":573}," done.\n",{"type":24,"tag":495,"props":575,"children":577},{"class":497,"line":576},4,[578,582,587,593,599,604,609,614,619],{"type":24,"tag":495,"props":579,"children":580},{"style":502},[581],{"type":30,"value":553},{"type":24,"tag":495,"props":583,"children":584},{"style":508},[585],{"type":30,"value":586}," Total",{"type":24,"tag":495,"props":588,"children":590},{"style":589},"--shiki-default:#79B8FF;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF",[591],{"type":30,"value":592}," 11",{"type":24,"tag":495,"props":594,"children":596},{"style":595},"--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2",[597],{"type":30,"value":598}," (delta ",{"type":24,"tag":495,"props":600,"children":601},{"style":589},[602],{"type":30,"value":603},"0",{"type":24,"tag":495,"props":605,"children":606},{"style":595},[607],{"type":30,"value":608},"), reused 0 (",{"type":24,"tag":495,"props":610,"children":611},{"style":502},[612],{"type":30,"value":613},"delta",{"type":24,"tag":495,"props":615,"children":616},{"style":589},[617],{"type":30,"value":618}," 0",{"type":24,"tag":495,"props":620,"children":621},{"style":595},[622],{"type":30,"value":623},"), pack-reused 11\n",{"type":24,"tag":495,"props":625,"children":627},{"class":497,"line":626},5,[628,633,637,642],{"type":24,"tag":495,"props":629,"children":630},{"style":502},[631],{"type":30,"value":632},"Unpacking",{"type":24,"tag":495,"props":634,"children":635},{"style":508},[636],{"type":30,"value":563},{"type":24,"tag":495,"props":638,"children":639},{"style":508},[640],{"type":30,"value":641}," 100%",{"type":24,"tag":495,"props":643,"children":644},{"style":595},[645],{"type":30,"value":646}," (11/11), done.\n",{"type":24,"tag":495,"props":648,"children":650},{"class":497,"line":649},6,[651,655,660],{"type":24,"tag":495,"props":652,"children":653},{"style":502},[654],{"type":30,"value":505},{"type":24,"tag":495,"props":656,"children":657},{"style":508},[658],{"type":30,"value":659}," cd",{"type":24,"tag":495,"props":661,"children":662},{"style":508},[663],{"type":30,"value":664}," RiakToolsCxx/\n",{"type":24,"tag":495,"props":666,"children":668},{"class":497,"line":667},7,[669,674,679],{"type":24,"tag":495,"props":670,"children":671},{"style":502},[672],{"type":30,"value":673},"dwalter@knxwork:~/Projects/RiakToolsCxx$",{"type":24,"tag":495,"props":675,"children":676},{"style":508},[677],{"type":30,"value":678}," mkdir",{"type":24,"tag":495,"props":680,"children":681},{"style":508},[682],{"type":30,"value":683}," build\n",{"type":24,"tag":495,"props":685,"children":687},{"class":497,"line":686},8,[688,692,696],{"type":24,"tag":495,"props":689,"children":690},{"style":502},[691],{"type":30,"value":673},{"type":24,"tag":495,"props":693,"children":694},{"style":508},[695],{"type":30,"value":659},{"type":24,"tag":495,"props":697,"children":698},{"style":508},[699],{"type":30,"value":700}," build/\n",{"type":24,"tag":495,"props":702,"children":704},{"class":497,"line":703},9,[705,710,715],{"type":24,"tag":495,"props":706,"children":707},{"style":502},[708],{"type":30,"value":709},"dwalter@knxwork:~/Projects/RiakToolsCxx/build$",{"type":24,"tag":495,"props":711,"children":712},{"style":508},[713],{"type":30,"value":714}," cmake",{"type":24,"tag":495,"props":716,"children":717},{"style":508},[718],{"type":30,"value":719}," ..\n",{"type":24,"tag":495,"props":721,"children":723},{"class":497,"line":722},10,[724,729,734,739,744,749,754,759],{"type":24,"tag":495,"props":725,"children":726},{"style":502},[727],{"type":30,"value":728},"--",{"type":24,"tag":495,"props":730,"children":731},{"style":508},[732],{"type":30,"value":733}," The",{"type":24,"tag":495,"props":735,"children":736},{"style":508},[737],{"type":30,"value":738}," CXX",{"type":24,"tag":495,"props":740,"children":741},{"style":508},[742],{"type":30,"value":743}," compiler",{"type":24,"tag":495,"props":745,"children":746},{"style":508},[747],{"type":30,"value":748}," identification",{"type":24,"tag":495,"props":750,"children":751},{"style":508},[752],{"type":30,"value":753}," is",{"type":24,"tag":495,"props":755,"children":756},{"style":508},[757],{"type":30,"value":758}," GNU",{"type":24,"tag":495,"props":760,"children":761},{"style":589},[762],{"type":30,"value":763}," 6.3.0\n",{"type":24,"tag":495,"props":765,"children":767},{"class":497,"line":766},11,[768,772,777,782,787,791,796],{"type":24,"tag":495,"props":769,"children":770},{"style":502},[771],{"type":30,"value":728},{"type":24,"tag":495,"props":773,"children":774},{"style":508},[775],{"type":30,"value":776}," Check",{"type":24,"tag":495,"props":778,"children":779},{"style":508},[780],{"type":30,"value":781}," for",{"type":24,"tag":495,"props":783,"children":784},{"style":508},[785],{"type":30,"value":786}," working",{"type":24,"tag":495,"props":788,"children":789},{"style":508},[790],{"type":30,"value":738},{"type":24,"tag":495,"props":792,"children":793},{"style":508},[794],{"type":30,"value":795}," compiler:",{"type":24,"tag":495,"props":797,"children":798},{"style":508},[799],{"type":30,"value":800}," /usr/bin/c++\n",{"type":24,"tag":495,"props":802,"children":804},{"class":497,"line":803},12,[805,809,813,817,821,825,829,834,839],{"type":24,"tag":495,"props":806,"children":807},{"style":502},[808],{"type":30,"value":728},{"type":24,"tag":495,"props":810,"children":811},{"style":508},[812],{"type":30,"value":776},{"type":24,"tag":495,"props":814,"children":815},{"style":508},[816],{"type":30,"value":781},{"type":24,"tag":495,"props":818,"children":819},{"style":508},[820],{"type":30,"value":786},{"type":24,"tag":495,"props":822,"children":823},{"style":508},[824],{"type":30,"value":738},{"type":24,"tag":495,"props":826,"children":827},{"style":508},[828],{"type":30,"value":795},{"type":24,"tag":495,"props":830,"children":831},{"style":508},[832],{"type":30,"value":833}," /usr/bin/c++",{"type":24,"tag":495,"props":835,"children":836},{"style":589},[837],{"type":30,"value":838}," --",{"type":24,"tag":495,"props":840,"children":841},{"style":508},[842],{"type":30,"value":843}," works\n",{"type":24,"tag":495,"props":845,"children":847},{"class":497,"line":846},13,[848,852,857,861,865,870],{"type":24,"tag":495,"props":849,"children":850},{"style":502},[851],{"type":30,"value":728},{"type":24,"tag":495,"props":853,"children":854},{"style":508},[855],{"type":30,"value":856}," Detecting",{"type":24,"tag":495,"props":858,"children":859},{"style":508},[860],{"type":30,"value":738},{"type":24,"tag":495,"props":862,"children":863},{"style":508},[864],{"type":30,"value":743},{"type":24,"tag":495,"props":866,"children":867},{"style":508},[868],{"type":30,"value":869}," ABI",{"type":24,"tag":495,"props":871,"children":872},{"style":508},[873],{"type":30,"value":874}," info\n",{"type":24,"tag":495,"props":876,"children":878},{"class":497,"line":877},14,[879,883,887,891,895,899,904,909],{"type":24,"tag":495,"props":880,"children":881},{"style":502},[882],{"type":30,"value":728},{"type":24,"tag":495,"props":884,"children":885},{"style":508},[886],{"type":30,"value":856},{"type":24,"tag":495,"props":888,"children":889},{"style":508},[890],{"type":30,"value":738},{"type":24,"tag":495,"props":892,"children":893},{"style":508},[894],{"type":30,"value":743},{"type":24,"tag":495,"props":896,"children":897},{"style":508},[898],{"type":30,"value":869},{"type":24,"tag":495,"props":900,"children":901},{"style":508},[902],{"type":30,"value":903}," info",{"type":24,"tag":495,"props":905,"children":906},{"style":508},[907],{"type":30,"value":908}," -",{"type":24,"tag":495,"props":910,"children":911},{"style":508},[912],{"type":30,"value":913}," done\n",{"type":24,"tag":495,"props":915,"children":917},{"class":497,"line":916},15,[918,922,926,930,935],{"type":24,"tag":495,"props":919,"children":920},{"style":502},[921],{"type":30,"value":728},{"type":24,"tag":495,"props":923,"children":924},{"style":508},[925],{"type":30,"value":856},{"type":24,"tag":495,"props":927,"children":928},{"style":508},[929],{"type":30,"value":738},{"type":24,"tag":495,"props":931,"children":932},{"style":508},[933],{"type":30,"value":934}," compile",{"type":24,"tag":495,"props":936,"children":937},{"style":508},[938],{"type":30,"value":939}," features\n",{"type":24,"tag":495,"props":941,"children":943},{"class":497,"line":942},16,[944,948,952,956,960,965,969],{"type":24,"tag":495,"props":945,"children":946},{"style":502},[947],{"type":30,"value":728},{"type":24,"tag":495,"props":949,"children":950},{"style":508},[951],{"type":30,"value":856},{"type":24,"tag":495,"props":953,"children":954},{"style":508},[955],{"type":30,"value":738},{"type":24,"tag":495,"props":957,"children":958},{"style":508},[959],{"type":30,"value":934},{"type":24,"tag":495,"props":961,"children":962},{"style":508},[963],{"type":30,"value":964}," features",{"type":24,"tag":495,"props":966,"children":967},{"style":508},[968],{"type":30,"value":908},{"type":24,"tag":495,"props":970,"children":971},{"style":508},[972],{"type":30,"value":913},{"type":24,"tag":495,"props":974,"children":976},{"class":497,"line":975},17,[977,981,986,991],{"type":24,"tag":495,"props":978,"children":979},{"style":502},[980],{"type":30,"value":728},{"type":24,"tag":495,"props":982,"children":983},{"style":508},[984],{"type":30,"value":985}," Performing",{"type":24,"tag":495,"props":987,"children":988},{"style":508},[989],{"type":30,"value":990}," Test",{"type":24,"tag":495,"props":992,"children":993},{"style":508},[994],{"type":30,"value":995}," COMPILER_SUPPORTS_CXX11\n",{"type":24,"tag":495,"props":997,"children":999},{"class":497,"line":998},18,[1000,1004,1008,1012,1017,1021],{"type":24,"tag":495,"props":1001,"children":1002},{"style":502},[1003],{"type":30,"value":728},{"type":24,"tag":495,"props":1005,"children":1006},{"style":508},[1007],{"type":30,"value":985},{"type":24,"tag":495,"props":1009,"children":1010},{"style":508},[1011],{"type":30,"value":990},{"type":24,"tag":495,"props":1013,"children":1014},{"style":508},[1015],{"type":30,"value":1016}," COMPILER_SUPPORTS_CXX11",{"type":24,"tag":495,"props":1018,"children":1019},{"style":508},[1020],{"type":30,"value":908},{"type":24,"tag":495,"props":1022,"children":1023},{"style":508},[1024],{"type":30,"value":1025}," Success\n",{"type":24,"tag":495,"props":1027,"children":1029},{"class":497,"line":1028},19,[1030,1034,1038,1042],{"type":24,"tag":495,"props":1031,"children":1032},{"style":502},[1033],{"type":30,"value":728},{"type":24,"tag":495,"props":1035,"children":1036},{"style":508},[1037],{"type":30,"value":985},{"type":24,"tag":495,"props":1039,"children":1040},{"style":508},[1041],{"type":30,"value":990},{"type":24,"tag":495,"props":1043,"children":1044},{"style":508},[1045],{"type":30,"value":1046}," COMPILER_SUPPORTS_CXX0X\n",{"type":24,"tag":495,"props":1048,"children":1050},{"class":497,"line":1049},20,[1051,1055,1059,1063,1068,1072],{"type":24,"tag":495,"props":1052,"children":1053},{"style":502},[1054],{"type":30,"value":728},{"type":24,"tag":495,"props":1056,"children":1057},{"style":508},[1058],{"type":30,"value":985},{"type":24,"tag":495,"props":1060,"children":1061},{"style":508},[1062],{"type":30,"value":990},{"type":24,"tag":495,"props":1064,"children":1065},{"style":508},[1066],{"type":30,"value":1067}," COMPILER_SUPPORTS_CXX0X",{"type":24,"tag":495,"props":1069,"children":1070},{"style":508},[1071],{"type":30,"value":908},{"type":24,"tag":495,"props":1073,"children":1074},{"style":508},[1075],{"type":30,"value":1025},{"type":24,"tag":495,"props":1077,"children":1079},{"class":497,"line":1078},21,[1080,1084,1088,1093,1097,1101,1105,1109],{"type":24,"tag":495,"props":1081,"children":1082},{"style":502},[1083],{"type":30,"value":728},{"type":24,"tag":495,"props":1085,"children":1086},{"style":508},[1087],{"type":30,"value":733},{"type":24,"tag":495,"props":1089,"children":1090},{"style":508},[1091],{"type":30,"value":1092}," C",{"type":24,"tag":495,"props":1094,"children":1095},{"style":508},[1096],{"type":30,"value":743},{"type":24,"tag":495,"props":1098,"children":1099},{"style":508},[1100],{"type":30,"value":748},{"type":24,"tag":495,"props":1102,"children":1103},{"style":508},[1104],{"type":30,"value":753},{"type":24,"tag":495,"props":1106,"children":1107},{"style":508},[1108],{"type":30,"value":758},{"type":24,"tag":495,"props":1110,"children":1111},{"style":589},[1112],{"type":30,"value":763},{"type":24,"tag":495,"props":1114,"children":1116},{"class":497,"line":1115},22,[1117,1121,1125,1129,1133,1137,1141],{"type":24,"tag":495,"props":1118,"children":1119},{"style":502},[1120],{"type":30,"value":728},{"type":24,"tag":495,"props":1122,"children":1123},{"style":508},[1124],{"type":30,"value":776},{"type":24,"tag":495,"props":1126,"children":1127},{"style":508},[1128],{"type":30,"value":781},{"type":24,"tag":495,"props":1130,"children":1131},{"style":508},[1132],{"type":30,"value":786},{"type":24,"tag":495,"props":1134,"children":1135},{"style":508},[1136],{"type":30,"value":1092},{"type":24,"tag":495,"props":1138,"children":1139},{"style":508},[1140],{"type":30,"value":795},{"type":24,"tag":495,"props":1142,"children":1143},{"style":508},[1144],{"type":30,"value":1145}," /usr/bin/cc\n",{"type":24,"tag":495,"props":1147,"children":1149},{"class":497,"line":1148},23,[1150,1154,1158,1162,1166,1170,1174,1179,1183],{"type":24,"tag":495,"props":1151,"children":1152},{"style":502},[1153],{"type":30,"value":728},{"type":24,"tag":495,"props":1155,"children":1156},{"style":508},[1157],{"type":30,"value":776},{"type":24,"tag":495,"props":1159,"children":1160},{"style":508},[1161],{"type":30,"value":781},{"type":24,"tag":495,"props":1163,"children":1164},{"style":508},[1165],{"type":30,"value":786},{"type":24,"tag":495,"props":1167,"children":1168},{"style":508},[1169],{"type":30,"value":1092},{"type":24,"tag":495,"props":1171,"children":1172},{"style":508},[1173],{"type":30,"value":795},{"type":24,"tag":495,"props":1175,"children":1176},{"style":508},[1177],{"type":30,"value":1178}," /usr/bin/cc",{"type":24,"tag":495,"props":1180,"children":1181},{"style":589},[1182],{"type":30,"value":838},{"type":24,"tag":495,"props":1184,"children":1185},{"style":508},[1186],{"type":30,"value":843},{"type":24,"tag":495,"props":1188,"children":1190},{"class":497,"line":1189},24,[1191,1195,1199,1203,1207,1211],{"type":24,"tag":495,"props":1192,"children":1193},{"style":502},[1194],{"type":30,"value":728},{"type":24,"tag":495,"props":1196,"children":1197},{"style":508},[1198],{"type":30,"value":856},{"type":24,"tag":495,"props":1200,"children":1201},{"style":508},[1202],{"type":30,"value":1092},{"type":24,"tag":495,"props":1204,"children":1205},{"style":508},[1206],{"type":30,"value":743},{"type":24,"tag":495,"props":1208,"children":1209},{"style":508},[1210],{"type":30,"value":869},{"type":24,"tag":495,"props":1212,"children":1213},{"style":508},[1214],{"type":30,"value":874},{"type":24,"tag":495,"props":1216,"children":1218},{"class":497,"line":1217},25,[1219,1223,1227,1231,1235,1239,1243,1247],{"type":24,"tag":495,"props":1220,"children":1221},{"style":502},[1222],{"type":30,"value":728},{"type":24,"tag":495,"props":1224,"children":1225},{"style":508},[1226],{"type":30,"value":856},{"type":24,"tag":495,"props":1228,"children":1229},{"style":508},[1230],{"type":30,"value":1092},{"type":24,"tag":495,"props":1232,"children":1233},{"style":508},[1234],{"type":30,"value":743},{"type":24,"tag":495,"props":1236,"children":1237},{"style":508},[1238],{"type":30,"value":869},{"type":24,"tag":495,"props":1240,"children":1241},{"style":508},[1242],{"type":30,"value":903},{"type":24,"tag":495,"props":1244,"children":1245},{"style":508},[1246],{"type":30,"value":908},{"type":24,"tag":495,"props":1248,"children":1249},{"style":508},[1250],{"type":30,"value":913},{"type":24,"tag":495,"props":1252,"children":1254},{"class":497,"line":1253},26,[1255,1259,1263,1267,1271],{"type":24,"tag":495,"props":1256,"children":1257},{"style":502},[1258],{"type":30,"value":728},{"type":24,"tag":495,"props":1260,"children":1261},{"style":508},[1262],{"type":30,"value":856},{"type":24,"tag":495,"props":1264,"children":1265},{"style":508},[1266],{"type":30,"value":1092},{"type":24,"tag":495,"props":1268,"children":1269},{"style":508},[1270],{"type":30,"value":934},{"type":24,"tag":495,"props":1272,"children":1273},{"style":508},[1274],{"type":30,"value":939},{"type":24,"tag":495,"props":1276,"children":1278},{"class":497,"line":1277},27,[1279,1283,1287,1291,1295,1299,1303],{"type":24,"tag":495,"props":1280,"children":1281},{"style":502},[1282],{"type":30,"value":728},{"type":24,"tag":495,"props":1284,"children":1285},{"style":508},[1286],{"type":30,"value":856},{"type":24,"tag":495,"props":1288,"children":1289},{"style":508},[1290],{"type":30,"value":1092},{"type":24,"tag":495,"props":1292,"children":1293},{"style":508},[1294],{"type":30,"value":934},{"type":24,"tag":495,"props":1296,"children":1297},{"style":508},[1298],{"type":30,"value":964},{"type":24,"tag":495,"props":1300,"children":1301},{"style":508},[1302],{"type":30,"value":908},{"type":24,"tag":495,"props":1304,"children":1305},{"style":508},[1306],{"type":30,"value":913},{"type":24,"tag":495,"props":1308,"children":1310},{"class":497,"line":1309},28,[1311,1315,1320,1325],{"type":24,"tag":495,"props":1312,"children":1313},{"style":502},[1314],{"type":30,"value":728},{"type":24,"tag":495,"props":1316,"children":1317},{"style":508},[1318],{"type":30,"value":1319}," Boost",{"type":24,"tag":495,"props":1321,"children":1322},{"style":508},[1323],{"type":30,"value":1324}," version:",{"type":24,"tag":495,"props":1326,"children":1327},{"style":589},[1328],{"type":30,"value":1329}," 1.62.0\n",{"type":24,"tag":495,"props":1331,"children":1333},{"class":497,"line":1332},29,[1334,1338,1343,1348,1353,1357],{"type":24,"tag":495,"props":1335,"children":1336},{"style":502},[1337],{"type":30,"value":728},{"type":24,"tag":495,"props":1339,"children":1340},{"style":508},[1341],{"type":30,"value":1342}," Found",{"type":24,"tag":495,"props":1344,"children":1345},{"style":508},[1346],{"type":30,"value":1347}," the",{"type":24,"tag":495,"props":1349,"children":1350},{"style":508},[1351],{"type":30,"value":1352}," following",{"type":24,"tag":495,"props":1354,"children":1355},{"style":508},[1356],{"type":30,"value":1319},{"type":24,"tag":495,"props":1358,"children":1359},{"style":508},[1360],{"type":30,"value":1361}," libraries:\n",{"type":24,"tag":495,"props":1363,"children":1365},{"class":497,"line":1364},30,[1366,1370],{"type":24,"tag":495,"props":1367,"children":1368},{"style":502},[1369],{"type":30,"value":728},{"type":24,"tag":495,"props":1371,"children":1372},{"style":508},[1373],{"type":30,"value":1374},"   filesystem\n",{"type":24,"tag":495,"props":1376,"children":1378},{"class":497,"line":1377},31,[1379,1383],{"type":24,"tag":495,"props":1380,"children":1381},{"style":502},[1382],{"type":30,"value":728},{"type":24,"tag":495,"props":1384,"children":1385},{"style":508},[1386],{"type":30,"value":1387},"   system\n",{"type":24,"tag":495,"props":1389,"children":1391},{"class":497,"line":1390},32,[1392,1396,1401],{"type":24,"tag":495,"props":1393,"children":1394},{"style":502},[1395],{"type":30,"value":728},{"type":24,"tag":495,"props":1397,"children":1398},{"style":508},[1399],{"type":30,"value":1400}," Configuring",{"type":24,"tag":495,"props":1402,"children":1403},{"style":508},[1404],{"type":30,"value":913},{"type":24,"tag":495,"props":1406,"children":1408},{"class":497,"line":1407},33,[1409,1413,1418],{"type":24,"tag":495,"props":1410,"children":1411},{"style":502},[1412],{"type":30,"value":728},{"type":24,"tag":495,"props":1414,"children":1415},{"style":508},[1416],{"type":30,"value":1417}," Generating",{"type":24,"tag":495,"props":1419,"children":1420},{"style":508},[1421],{"type":30,"value":913},{"type":24,"tag":495,"props":1423,"children":1425},{"class":497,"line":1424},34,[1426,1430,1435,1440,1445,1450,1455,1460],{"type":24,"tag":495,"props":1427,"children":1428},{"style":502},[1429],{"type":30,"value":728},{"type":24,"tag":495,"props":1431,"children":1432},{"style":508},[1433],{"type":30,"value":1434}," Build",{"type":24,"tag":495,"props":1436,"children":1437},{"style":508},[1438],{"type":30,"value":1439}," files",{"type":24,"tag":495,"props":1441,"children":1442},{"style":508},[1443],{"type":30,"value":1444}," have",{"type":24,"tag":495,"props":1446,"children":1447},{"style":508},[1448],{"type":30,"value":1449}," been",{"type":24,"tag":495,"props":1451,"children":1452},{"style":508},[1453],{"type":30,"value":1454}," written",{"type":24,"tag":495,"props":1456,"children":1457},{"style":508},[1458],{"type":30,"value":1459}," to:",{"type":24,"tag":495,"props":1461,"children":1462},{"style":508},[1463],{"type":30,"value":1464}," /home/dwalter/Projects/RiakToolsCxx/build\n",{"type":24,"tag":495,"props":1466,"children":1468},{"class":497,"line":1467},35,[1469,1473],{"type":24,"tag":495,"props":1470,"children":1471},{"style":502},[1472],{"type":30,"value":709},{"type":24,"tag":495,"props":1474,"children":1475},{"style":508},[1476],{"type":30,"value":1477}," make\n",{"type":24,"tag":495,"props":1479,"children":1481},{"class":497,"line":1480},36,[1482,1487,1492,1497,1502],{"type":24,"tag":495,"props":1483,"children":1484},{"style":502},[1485],{"type":30,"value":1486},"Scanning",{"type":24,"tag":495,"props":1488,"children":1489},{"style":508},[1490],{"type":30,"value":1491}," dependencies",{"type":24,"tag":495,"props":1493,"children":1494},{"style":508},[1495],{"type":30,"value":1496}," of",{"type":24,"tag":495,"props":1498,"children":1499},{"style":508},[1500],{"type":30,"value":1501}," target",{"type":24,"tag":495,"props":1503,"children":1504},{"style":508},[1505],{"type":30,"value":1506}," leveldb-basho\n",{"type":24,"tag":495,"props":1508,"children":1510},{"class":497,"line":1509},37,[1511,1516,1522],{"type":24,"tag":495,"props":1512,"children":1513},{"style":595},[1514],{"type":30,"value":1515},"[ 10%] Creating directories ",{"type":24,"tag":495,"props":1517,"children":1519},{"style":1518},"--shiki-default:#F97583;--shiki-dark:#F97583;--shiki-sepia:#F92672",[1520],{"type":30,"value":1521},"for",{"type":24,"tag":495,"props":1523,"children":1524},{"style":508},[1525],{"type":30,"value":1526}," 'leveldb-basho'\n",{"type":24,"tag":495,"props":1528,"children":1530},{"class":497,"line":1529},38,[1531,1536,1541,1545,1550,1554],{"type":24,"tag":495,"props":1532,"children":1533},{"style":595},[1534],{"type":30,"value":1535},"[ 20%] Performing download step (",{"type":24,"tag":495,"props":1537,"children":1538},{"style":502},[1539],{"type":30,"value":1540},"git",{"type":24,"tag":495,"props":1542,"children":1543},{"style":508},[1544],{"type":30,"value":516},{"type":24,"tag":495,"props":1546,"children":1547},{"style":595},[1548],{"type":30,"value":1549},") ",{"type":24,"tag":495,"props":1551,"children":1552},{"style":1518},[1553],{"type":30,"value":1521},{"type":24,"tag":495,"props":1555,"children":1556},{"style":508},[1557],{"type":30,"value":1526},{"type":24,"tag":495,"props":1559,"children":1561},{"class":497,"line":1560},39,[1562,1566,1570],{"type":24,"tag":495,"props":1563,"children":1564},{"style":502},[1565],{"type":30,"value":534},{"type":24,"tag":495,"props":1567,"children":1568},{"style":508},[1569],{"type":30,"value":539},{"type":24,"tag":495,"props":1571,"children":1572},{"style":508},[1573],{"type":30,"value":1574}," 'leveldb-basho'...\n",{"type":24,"tag":495,"props":1576,"children":1578},{"class":497,"line":1577},40,[1579,1584,1589],{"type":24,"tag":495,"props":1580,"children":1581},{"style":502},[1582],{"type":30,"value":1583},"Already",{"type":24,"tag":495,"props":1585,"children":1586},{"style":508},[1587],{"type":30,"value":1588}," on",{"type":24,"tag":495,"props":1590,"children":1591},{"style":508},[1592],{"type":30,"value":1593}," 'develop'\n",{"type":24,"tag":495,"props":1595,"children":1597},{"class":497,"line":1596},41,[1598,1603,1608,1612,1617,1622],{"type":24,"tag":495,"props":1599,"children":1600},{"style":502},[1601],{"type":30,"value":1602},"Your",{"type":24,"tag":495,"props":1604,"children":1605},{"style":508},[1606],{"type":30,"value":1607}," branch",{"type":24,"tag":495,"props":1609,"children":1610},{"style":508},[1611],{"type":30,"value":753},{"type":24,"tag":495,"props":1613,"children":1614},{"style":508},[1615],{"type":30,"value":1616}," up-to-date",{"type":24,"tag":495,"props":1618,"children":1619},{"style":508},[1620],{"type":30,"value":1621}," with",{"type":24,"tag":495,"props":1623,"children":1624},{"style":508},[1625],{"type":30,"value":1626}," 'origin/develop'.\n",{"type":24,"tag":495,"props":1628,"children":1630},{"class":497,"line":1629},42,[1631,1636,1640],{"type":24,"tag":495,"props":1632,"children":1633},{"style":595},[1634],{"type":30,"value":1635},"[ 30%] No patch step ",{"type":24,"tag":495,"props":1637,"children":1638},{"style":1518},[1639],{"type":30,"value":1521},{"type":24,"tag":495,"props":1641,"children":1642},{"style":508},[1643],{"type":30,"value":1526},{"type":24,"tag":495,"props":1645,"children":1647},{"class":497,"line":1646},43,[1648,1653,1657],{"type":24,"tag":495,"props":1649,"children":1650},{"style":595},[1651],{"type":30,"value":1652},"[ 40%] No update step ",{"type":24,"tag":495,"props":1654,"children":1655},{"style":1518},[1656],{"type":30,"value":1521},{"type":24,"tag":495,"props":1658,"children":1659},{"style":508},[1660],{"type":30,"value":1526},{"type":24,"tag":495,"props":1662,"children":1664},{"class":497,"line":1663},44,[1665,1670,1674],{"type":24,"tag":495,"props":1666,"children":1667},{"style":595},[1668],{"type":30,"value":1669},"[ 50%] No configure step ",{"type":24,"tag":495,"props":1671,"children":1672},{"style":1518},[1673],{"type":30,"value":1521},{"type":24,"tag":495,"props":1675,"children":1676},{"style":508},[1677],{"type":30,"value":1526},{"type":24,"tag":495,"props":1679,"children":1681},{"class":497,"line":1680},45,[1682,1687,1691],{"type":24,"tag":495,"props":1683,"children":1684},{"style":595},[1685],{"type":30,"value":1686},"[ 60%] Performing build step ",{"type":24,"tag":495,"props":1688,"children":1689},{"style":1518},[1690],{"type":30,"value":1521},{"type":24,"tag":495,"props":1692,"children":1693},{"style":508},[1694],{"type":30,"value":1526},{"type":24,"tag":495,"props":1696,"children":1698},{"class":497,"line":1697},46,[1699,1704,1709],{"type":24,"tag":495,"props":1700,"children":1701},{"style":502},[1702],{"type":30,"value":1703},"ar:",{"type":24,"tag":495,"props":1705,"children":1706},{"style":508},[1707],{"type":30,"value":1708}," creating",{"type":24,"tag":495,"props":1710,"children":1711},{"style":508},[1712],{"type":30,"value":1713}," libleveldb.a\n",{"type":24,"tag":495,"props":1715,"children":1717},{"class":497,"line":1716},47,[1718,1723,1727],{"type":24,"tag":495,"props":1719,"children":1720},{"style":595},[1721],{"type":30,"value":1722},"[ 70%] No install step ",{"type":24,"tag":495,"props":1724,"children":1725},{"style":1518},[1726],{"type":30,"value":1521},{"type":24,"tag":495,"props":1728,"children":1729},{"style":508},[1730],{"type":30,"value":1526},{"type":24,"tag":495,"props":1732,"children":1734},{"class":497,"line":1733},48,[1735,1740],{"type":24,"tag":495,"props":1736,"children":1737},{"style":595},[1738],{"type":30,"value":1739},"[ 80%] Completed ",{"type":24,"tag":495,"props":1741,"children":1742},{"style":508},[1743],{"type":30,"value":1744},"'leveldb-basho'\n",{"type":24,"tag":495,"props":1746,"children":1748},{"class":497,"line":1747},49,[1749],{"type":24,"tag":495,"props":1750,"children":1751},{"style":595},[1752],{"type":30,"value":1753},"[ 80%] Built target leveldb-basho\n",{"type":24,"tag":495,"props":1755,"children":1757},{"class":497,"line":1756},50,[1758,1762,1766,1770,1774],{"type":24,"tag":495,"props":1759,"children":1760},{"style":502},[1761],{"type":30,"value":1486},{"type":24,"tag":495,"props":1763,"children":1764},{"style":508},[1765],{"type":30,"value":1491},{"type":24,"tag":495,"props":1767,"children":1768},{"style":508},[1769],{"type":30,"value":1496},{"type":24,"tag":495,"props":1771,"children":1772},{"style":508},[1773],{"type":30,"value":1501},{"type":24,"tag":495,"props":1775,"children":1776},{"style":508},[1777],{"type":30,"value":1778}," riakcompact\n",{"type":24,"tag":495,"props":1780,"children":1782},{"class":497,"line":1781},51,[1783],{"type":24,"tag":495,"props":1784,"children":1785},{"style":595},[1786],{"type":30,"value":1787},"[ 90%] Building CXX object src/CMakeFiles/riakcompact.dir/main.cpp.o\n",{"type":24,"tag":495,"props":1789,"children":1791},{"class":497,"line":1790},52,[1792],{"type":24,"tag":495,"props":1793,"children":1794},{"style":595},[1795],{"type":30,"value":1796},"[100%] Linking CXX executable riakcompact\n",{"type":24,"tag":495,"props":1798,"children":1800},{"class":497,"line":1799},53,[1801],{"type":24,"tag":495,"props":1802,"children":1803},{"style":595},[1804],{"type":30,"value":1805},"[100%] Built target riakcompact\n",{"type":24,"tag":495,"props":1807,"children":1809},{"class":497,"line":1808},54,[1810,1814,1819],{"type":24,"tag":495,"props":1811,"children":1812},{"style":502},[1813],{"type":30,"value":709},{"type":24,"tag":495,"props":1815,"children":1816},{"style":508},[1817],{"type":30,"value":1818}," ./src/riakcompact",{"type":24,"tag":495,"props":1820,"children":1821},{"style":595},[1822],{"type":30,"value":1823}," \n",{"type":24,"tag":495,"props":1825,"children":1827},{"class":497,"line":1826},55,[1828,1833,1838],{"type":24,"tag":495,"props":1829,"children":1830},{"style":502},[1831],{"type":30,"value":1832},"usage:",{"type":24,"tag":495,"props":1834,"children":1835},{"style":508},[1836],{"type":30,"value":1837},"   ./src/riakcompact",{"type":24,"tag":495,"props":1839,"children":1840},{"style":595},[1841],{"type":30,"value":1842}," [path]\n",{"type":24,"tag":33,"props":1844,"children":1845},{},[1846],{"type":30,"value":1847},"Nachdem dieses Tool erstellt wurde, können Sie es wie folgt verwenden. Beachten Sie, dass Ihr Riak-Knoten ausgeschaltet sein muss!",{"type":24,"tag":484,"props":1849,"children":1851},{"className":486,"code":1850,"language":488,"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",[1852],{"type":24,"tag":491,"props":1853,"children":1854},{"__ignoreMap":7},[1855,1872,1885,1893,1901,1913,1920],{"type":24,"tag":495,"props":1856,"children":1857},{"class":497,"line":498},[1858,1863,1867],{"type":24,"tag":495,"props":1859,"children":1860},{"style":502},[1861],{"type":30,"value":1862},"root@knxwork:/home/dwalter/Projects/RiakToolsCxx/build#",{"type":24,"tag":495,"props":1864,"children":1865},{"style":508},[1866],{"type":30,"value":1818},{"type":24,"tag":495,"props":1868,"children":1869},{"style":508},[1870],{"type":30,"value":1871}," /var/lib/riak/leveldb/\n",{"type":24,"tag":495,"props":1873,"children":1874},{"class":497,"line":191},[1875,1880],{"type":24,"tag":495,"props":1876,"children":1877},{"style":502},[1878],{"type":30,"value":1879},"\"/var/lib/riak/leveldb/91343852333181432387730302044767688728495783936\"",{"type":24,"tag":495,"props":1881,"children":1882},{"style":595},[1883],{"type":30,"value":1884}," [directory]\n",{"type":24,"tag":495,"props":1886,"children":1887},{"class":497,"line":547},[1888],{"type":24,"tag":495,"props":1889,"children":1890},{"style":502},[1891],{"type":30,"value":1892},"compacting...\n",{"type":24,"tag":495,"props":1894,"children":1895},{"class":497,"line":576},[1896],{"type":24,"tag":495,"props":1897,"children":1898},{"style":1518},[1899],{"type":30,"value":1900},"done\n",{"type":24,"tag":495,"props":1902,"children":1903},{"class":497,"line":626},[1904,1909],{"type":24,"tag":495,"props":1905,"children":1906},{"style":502},[1907],{"type":30,"value":1908},"\"/var/lib/riak/leveldb/685078892498860742907977265335757665463718379520\"",{"type":24,"tag":495,"props":1910,"children":1911},{"style":595},[1912],{"type":30,"value":1884},{"type":24,"tag":495,"props":1914,"children":1915},{"class":497,"line":649},[1916],{"type":24,"tag":495,"props":1917,"children":1918},{"style":502},[1919],{"type":30,"value":1892},{"type":24,"tag":495,"props":1921,"children":1922},{"class":497,"line":667},[1923],{"type":24,"tag":495,"props":1924,"children":1925},{"style":1518},[1926],{"type":30,"value":1900},{"type":24,"tag":25,"props":1928,"children":1930},{"id":1929},"fazit",[1931],{"type":30,"value":1932},"Fazit",{"type":24,"tag":33,"props":1934,"children":1935},{},[1936],{"type":24,"tag":1937,"props":1938,"children":1939},"strong",{},[1940],{"type":30,"value":1941},"Nach dem Löschen eines kompletten Buckets in unserem riak (Schlüssel für Schlüssel), sind wir in der Lage, den verbrauchten Speicherplatz von 75 GB auf 25 GB mit diesem Tool zu reduzieren!",{"type":24,"tag":1943,"props":1944,"children":1946},"h1",{"id":1945},"durch-die-komprimierung-wurden-mehr-als-66-der-daten-freigegeben",[1947],{"type":30,"value":1948},"Durch die Komprimierung wurden mehr als 66% der Daten freigegeben!",{"type":24,"tag":1950,"props":1951,"children":1952},"style",{},[1953],{"type":30,"value":1954},"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":191,"depth":191,"links":1956},[1957,1958,1959,1960,1961],{"id":348,"depth":191,"text":351},{"id":364,"depth":191,"text":367},{"id":427,"depth":191,"text":430},{"id":456,"depth":191,"text":459},{"id":1929,"depth":191,"text":1932},{"_path":220,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":221,"description":222,"author":10,"image":223,"releaseDate":224,"blogCategories":1963,"articleTags":1964,"tags":1965,"body":1966,"_type":198,"_id":228,"_source":200,"_file":229,"_stem":230,"_extension":203},[14,15],[17],[19],{"type":21,"children":1967,"toc":2476},[1968,1974,1979,1984,2367,2372,2377,2385,2390,2472],{"type":24,"tag":25,"props":1969,"children":1971},{"id":1970},"untersuchung-der-leistung",[1972],{"type":30,"value":1973},"Untersuchung der Leistung",{"type":24,"tag":33,"props":1975,"children":1976},{},[1977],{"type":30,"value":1978},"Wenn es darum geht, eine NVME-SSD für eine Softwareentwickler-Workstation zu kaufen, steht man vor der Wahl: eine billige oder eine teure zu kaufen. Bisher habe ich mich für die teureren entschieden, weil sie eine bessere Leistung und längere Lebensdauer versprachen - jetzt sehe ich, wie falsch ich lag.",{"type":24,"tag":33,"props":1980,"children":1981},{},[1982],{"type":30,"value":1983},"Alles begann damit, dass ein Mitarbeiter sagte, seine NVME-SSD sei langsamer als seine Sata-SSD. Das kann nicht wahr sein, denn die Sata-SSD ist auf 600 MB/s begrenzt und 3 Jahre alt, während seine neue NVME-SSD angeblich 3000 MB/s lesen und schreiben kann. Und doch ist es wahr. Ich habe einige schmutzige Benchmarks durchgeführt und die Ergebnisse sind beeindruckend. Ich nenne die Benchmarks \"schmutzig\", weil eindeutig unterschiedliche PCs verwendet werden; unterschiedliche CPUs, offensichtlich unterschiedliche Betriebssystemversionen, unterschiedliche MySQL-Versionen und Konfigurationen. Aber die Unterschiede in den Ergebnissen lassen sich meiner Meinung nach so nicht erklären. Irgendetwas stimmt nicht mit den Samsung NVME SSDs.",{"type":24,"tag":1985,"props":1986,"children":1987},"table",{},[1988,2026],{"type":24,"tag":1989,"props":1990,"children":1991},"thead",{},[1992],{"type":24,"tag":1993,"props":1994,"children":1995},"tr",{},[1996,2002,2006,2011,2016,2021],{"type":24,"tag":1997,"props":1998,"children":1999},"th",{},[2000],{"type":30,"value":2001},"User",{"type":24,"tag":1997,"props":2003,"children":2004},{},[2005],{"type":30,"value":17},{"type":24,"tag":1997,"props":2007,"children":2008},{},[2009],{"type":30,"value":2010},"Note",{"type":24,"tag":1997,"props":2012,"children":2013},{},[2014],{"type":30,"value":2015},"Allocation",{"type":24,"tag":1997,"props":2017,"children":2018},{},[2019],{"type":30,"value":2020},"TPS",{"type":24,"tag":1997,"props":2022,"children":2023},{},[2024],{"type":30,"value":2025},"QPS",{"type":24,"tag":2027,"props":2028,"children":2029},"tbody",{},[2030,2062,2092,2123,2152,2183,2215,2246,2278,2308,2338],{"type":24,"tag":1993,"props":2031,"children":2032},{},[2033,2039,2044,2047,2052,2057],{"type":24,"tag":2034,"props":2035,"children":2036},"td",{},[2037],{"type":30,"value":2038},"Markus",{"type":24,"tag":2034,"props":2040,"children":2041},{},[2042],{"type":30,"value":2043},"Curical CT1000P1SSD8",{"type":24,"tag":2034,"props":2045,"children":2046},{},[],{"type":24,"tag":2034,"props":2048,"children":2049},{},[2050],{"type":30,"value":2051},"1,00 %",{"type":24,"tag":2034,"props":2053,"children":2054},{},[2055],{"type":30,"value":2056},"304",{"type":24,"tag":2034,"props":2058,"children":2059},{},[2060],{"type":30,"value":2061},"6091",{"type":24,"tag":1993,"props":2063,"children":2064},{},[2065,2070,2074,2077,2082,2087],{"type":24,"tag":2034,"props":2066,"children":2067},{},[2068],{"type":30,"value":2069},"Robert",{"type":24,"tag":2034,"props":2071,"children":2072},{},[2073],{"type":30,"value":2043},{"type":24,"tag":2034,"props":2075,"children":2076},{},[],{"type":24,"tag":2034,"props":2078,"children":2079},{},[2080],{"type":30,"value":2081},"4,00 %",{"type":24,"tag":2034,"props":2083,"children":2084},{},[2085],{"type":30,"value":2086},"412",{"type":24,"tag":2034,"props":2088,"children":2089},{},[2090],{"type":30,"value":2091},"8241",{"type":24,"tag":1993,"props":2093,"children":2094},{},[2095,2100,2105,2108,2113,2118],{"type":24,"tag":2034,"props":2096,"children":2097},{},[2098],{"type":30,"value":2099},"Reiner",{"type":24,"tag":2034,"props":2101,"children":2102},{},[2103],{"type":30,"value":2104},"Samsung SSD 970 PRO 512GB",{"type":24,"tag":2034,"props":2106,"children":2107},{},[],{"type":24,"tag":2034,"props":2109,"children":2110},{},[2111],{"type":30,"value":2112},"66,00 %",{"type":24,"tag":2034,"props":2114,"children":2115},{},[2116],{"type":30,"value":2117},"160",{"type":24,"tag":2034,"props":2119,"children":2120},{},[2121],{"type":30,"value":2122},"3214",{"type":24,"tag":1993,"props":2124,"children":2125},{},[2126,2130,2134,2137,2142,2147],{"type":24,"tag":2034,"props":2127,"children":2128},{},[2129],{"type":30,"value":2038},{"type":24,"tag":2034,"props":2131,"children":2132},{},[2133],{"type":30,"value":2104},{"type":24,"tag":2034,"props":2135,"children":2136},{},[],{"type":24,"tag":2034,"props":2138,"children":2139},{},[2140],{"type":30,"value":2141},"14,00 %",{"type":24,"tag":2034,"props":2143,"children":2144},{},[2145],{"type":30,"value":2146},"120",{"type":24,"tag":2034,"props":2148,"children":2149},{},[2150],{"type":30,"value":2151},"2414",{"type":24,"tag":1993,"props":2153,"children":2154},{},[2155,2159,2163,2168,2173,2178],{"type":24,"tag":2034,"props":2156,"children":2157},{},[2158],{"type":30,"value":240},{"type":24,"tag":2034,"props":2160,"children":2161},{},[2162],{"type":30,"value":2104},{"type":24,"tag":2034,"props":2164,"children":2165},{},[2166],{"type":30,"value":2167},"crypt",{"type":24,"tag":2034,"props":2169,"children":2170},{},[2171],{"type":30,"value":2172},"80,00 %",{"type":24,"tag":2034,"props":2174,"children":2175},{},[2176],{"type":30,"value":2177},"148",{"type":24,"tag":2034,"props":2179,"children":2180},{},[2181],{"type":30,"value":2182},"2976",{"type":24,"tag":1993,"props":2184,"children":2185},{},[2186,2191,2196,2200,2205,2210],{"type":24,"tag":2034,"props":2187,"children":2188},{},[2189],{"type":30,"value":2190},"Daniel",{"type":24,"tag":2034,"props":2192,"children":2193},{},[2194],{"type":30,"value":2195},"Samsung SSD 960 PRO 512GB",{"type":24,"tag":2034,"props":2197,"children":2198},{},[2199],{"type":30,"value":2167},{"type":24,"tag":2034,"props":2201,"children":2202},{},[2203],{"type":30,"value":2204},"46,00 %",{"type":24,"tag":2034,"props":2206,"children":2207},{},[2208],{"type":30,"value":2209},"30",{"type":24,"tag":2034,"props":2211,"children":2212},{},[2213],{"type":30,"value":2214},"614",{"type":24,"tag":1993,"props":2216,"children":2217},{},[2218,2222,2227,2232,2237,2241],{"type":24,"tag":2034,"props":2219,"children":2220},{},[2221],{"type":30,"value":2099},{"type":24,"tag":2034,"props":2223,"children":2224},{},[2225],{"type":30,"value":2226},"Samsung SSD 850 PRO 128GB",{"type":24,"tag":2034,"props":2228,"children":2229},{},[2230],{"type":30,"value":2231},"sata",{"type":24,"tag":2034,"props":2233,"children":2234},{},[2235],{"type":30,"value":2236},"37,00 %",{"type":24,"tag":2034,"props":2238,"children":2239},{},[2240],{"type":30,"value":2146},{"type":24,"tag":2034,"props":2242,"children":2243},{},[2244],{"type":30,"value":2245},"2437",{"type":24,"tag":1993,"props":2247,"children":2248},{},[2249,2253,2258,2263,2268,2273],{"type":24,"tag":2034,"props":2250,"children":2251},{},[2252],{"type":30,"value":2190},{"type":24,"tag":2034,"props":2254,"children":2255},{},[2256],{"type":30,"value":2257},"Samsung SSD 860 PRO 512GB",{"type":24,"tag":2034,"props":2259,"children":2260},{},[2261],{"type":30,"value":2262},"SATA",{"type":24,"tag":2034,"props":2264,"children":2265},{},[2266],{"type":30,"value":2267},"87,00 %",{"type":24,"tag":2034,"props":2269,"children":2270},{},[2271],{"type":30,"value":2272},"185",{"type":24,"tag":2034,"props":2274,"children":2275},{},[2276],{"type":30,"value":2277},"3700",{"type":24,"tag":1993,"props":2279,"children":2280},{},[2281,2286,2291,2294,2298,2303],{"type":24,"tag":2034,"props":2282,"children":2283},{},[2284],{"type":30,"value":2285},"Daneil",{"type":24,"tag":2034,"props":2287,"children":2288},{},[2289],{"type":30,"value":2290},"Samsung SSD 970 EVO Plus 1TB",{"type":24,"tag":2034,"props":2292,"children":2293},{},[],{"type":24,"tag":2034,"props":2295,"children":2296},{},[2297],{"type":30,"value":2051},{"type":24,"tag":2034,"props":2299,"children":2300},{},[2301],{"type":30,"value":2302},"480",{"type":24,"tag":2034,"props":2304,"children":2305},{},[2306],{"type":30,"value":2307},"9614",{"type":24,"tag":1993,"props":2309,"children":2310},{},[2311,2315,2320,2323,2328,2333],{"type":24,"tag":2034,"props":2312,"children":2313},{},[2314],{"type":30,"value":240},{"type":24,"tag":2034,"props":2316,"children":2317},{},[2318],{"type":30,"value":2319},"Sabrent Rocket Q 2TB",{"type":24,"tag":2034,"props":2321,"children":2322},{},[],{"type":24,"tag":2034,"props":2324,"children":2325},{},[2326],{"type":30,"value":2327},"26,00 %",{"type":24,"tag":2034,"props":2329,"children":2330},{},[2331],{"type":30,"value":2332},"237",{"type":24,"tag":2034,"props":2334,"children":2335},{},[2336],{"type":30,"value":2337},"4749",{"type":24,"tag":1993,"props":2339,"children":2340},{},[2341,2346,2351,2354,2358,2362],{"type":24,"tag":2034,"props":2342,"children":2343},{},[2344],{"type":30,"value":2345},"Marcel",{"type":24,"tag":2034,"props":2347,"children":2348},{},[2349],{"type":30,"value":2350},"Patriot Scorch M2 256GB",{"type":24,"tag":2034,"props":2352,"children":2353},{},[],{"type":24,"tag":2034,"props":2355,"children":2356},{},[2357],{"type":30,"value":2051},{"type":24,"tag":2034,"props":2359,"children":2360},{},[2361],{"type":30,"value":2146},{"type":24,"tag":2034,"props":2363,"children":2364},{},[2365],{"type":30,"value":2366},"2440",{"type":24,"tag":33,"props":2368,"children":2369},{},[2370],{"type":30,"value":2371},"Wie Sie sehen können, ist die Curical P1 SSD 2x, teilweise 3x schneller als die Samsung Pro SSDs - obwohl die Curical nur ein Drittel kostet. Man kann auch sehen, dass die 860 Pro Sata SSD von Daniel schneller ist als alle Samsung NVME Pro SSDs. Wenn Sie bei Google nach dem Phänomen suchen, werden Sie andere Personen finden, die das gleiche Problem beobachtet haben. Die Samsung PRO NVME SSDs scheinen ein Problem mit häufigen fsync-Aufrufen zu haben. Ich habe sysbench 1.0.18 mit dem oltp_read_write Benchmark auf allen Maschinen verwendet. Sie verwenden alle BTRFS als Dateisystem und das MySQL-Dateisystem wurde mit nodatacow gemountet, was die Leistung verbessert. In der Tabelle steht TPS für Transaktionen pro Sekunde und QPS für Abfragen pro Sekunde - beide Werte wurden aus den Sysbench-Statistiken ausgelesen.",{"type":24,"tag":33,"props":2373,"children":2374},{},[2375],{"type":30,"value":2376},"Da die Leistung unserer Datenbank für unsere Softwareentwickler sehr wichtig ist, werde ich in Zukunft die Samsung pro NVME SSDs meiden und anderen Herstellern eine Chance geben. Die SSD ist immer noch gut für Spiele, Filmbearbeitung und so weiter, nur nicht für notwendige fsyncs.",{"type":24,"tag":33,"props":2378,"children":2379},{},[2380],{"type":24,"tag":1937,"props":2381,"children":2382},{},[2383],{"type":30,"value":2384},"Edit: Es sieht so aus, als ob die 970 EVO Plus SSD nicht von diesem Problem betroffen ist.",{"type":24,"tag":33,"props":2386,"children":2387},{},[2388],{"type":30,"value":2389},"Verwendete Sysbench-Befehle:",{"type":24,"tag":484,"props":2391,"children":2393},{"className":486,"code":2392,"language":488,"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",[2394],{"type":24,"tag":491,"props":2395,"children":2396},{"__ignoreMap":7},[2397,2435],{"type":24,"tag":495,"props":2398,"children":2399},{"class":497,"line":498},[2400,2405,2410,2415,2420,2425,2430],{"type":24,"tag":495,"props":2401,"children":2402},{"style":502},[2403],{"type":30,"value":2404},"sysbench",{"type":24,"tag":495,"props":2406,"children":2407},{"style":508},[2408],{"type":30,"value":2409}," oltp_read_write",{"type":24,"tag":495,"props":2411,"children":2412},{"style":589},[2413],{"type":30,"value":2414}," --table-size=2500000",{"type":24,"tag":495,"props":2416,"children":2417},{"style":589},[2418],{"type":30,"value":2419}," --mysql-user=root",{"type":24,"tag":495,"props":2421,"children":2422},{"style":589},[2423],{"type":30,"value":2424}," --db-driver=mysql",{"type":24,"tag":495,"props":2426,"children":2427},{"style":589},[2428],{"type":30,"value":2429}," --mysql-password=",{"type":24,"tag":495,"props":2431,"children":2432},{"style":508},[2433],{"type":30,"value":2434},"  prepare\n",{"type":24,"tag":495,"props":2436,"children":2437},{"class":497,"line":191},[2438,2442,2446,2450,2454,2458,2462,2467],{"type":24,"tag":495,"props":2439,"children":2440},{"style":502},[2441],{"type":30,"value":2404},{"type":24,"tag":495,"props":2443,"children":2444},{"style":508},[2445],{"type":30,"value":2409},{"type":24,"tag":495,"props":2447,"children":2448},{"style":589},[2449],{"type":30,"value":2414},{"type":24,"tag":495,"props":2451,"children":2452},{"style":589},[2453],{"type":30,"value":2419},{"type":24,"tag":495,"props":2455,"children":2456},{"style":589},[2457],{"type":30,"value":2424},{"type":24,"tag":495,"props":2459,"children":2460},{"style":589},[2461],{"type":30,"value":2429},{"type":24,"tag":495,"props":2463,"children":2464},{"style":589},[2465],{"type":30,"value":2466},"  --time=120",{"type":24,"tag":495,"props":2468,"children":2469},{"style":508},[2470],{"type":30,"value":2471}," run\n",{"type":24,"tag":1950,"props":2473,"children":2474},{},[2475],{"type":30,"value":1954},{"title":7,"searchDepth":191,"depth":191,"links":2477},[2478],{"id":1970,"depth":191,"text":1973},{"_path":2480,"_dir":236,"_draft":6,"_partial":6,"_locale":7,"slug":208,"teams":2481,"primaryTeam":2482,"firstName":2190,"lastName":2483,"prefixTitle":7,"suffixTitle":7,"education":2484,"executiveRole":2487,"role":2488,"workingSince":257,"inTheCompanySince":257,"techSkills":2492,"skills":2499,"projects":2506,"contactDetails":2507,"_image":2510,"image":2511,"_id":2512,"_type":336,"title":2513,"_source":236,"_file":2514,"_stem":2515,"_extension":336},"/employees/daniel-walter",[2482,239],"shopware","Walter",[2485],[244,2486,246],"FHDW","CEO",[249,2489,2490,253,2491,252,255],"chiefExecutiveOfficer","projectManager","fullstackDeveloper",[2493,2494,2495,2496],{"name":286,"level":261,"icon":288},{"name":290,"level":261,"icon":291},{"name":283,"level":261,"icon":284},{"name":2497,"level":287,"icon":2498},"Flutter","/images/Flutter.svg",[2500,2501,2502,2504,2505],{"name":215,"level":261},{"name":311,"level":261},{"name":2503,"level":261},"projectManagement",{"name":2482,"level":261},{"name":313,"level":287},[],{"eMail":2508,"phone":2509,"visibility":332},"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":235,"_dir":236,"_draft":6,"_partial":6,"_locale":7,"slug":10,"teams":2517,"primaryTeam":239,"firstName":240,"lastName":241,"prefixTitle":7,"suffixTitle":7,"education":2518,"executiveRole":247,"role":2520,"workingSince":256,"inTheCompanySince":257,"techSkills":2521,"skills":2538,"projects":2545,"contactDetails":2551,"_image":333,"image":334,"_id":335,"_type":336,"title":337,"_source":236,"_file":338,"_stem":339,"_extension":336},[238,239],[2519],[244,245,246],[249,250,239,251,252,253,254,255],[2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537],{"name":260,"level":261,"icon":262},{"name":264,"level":261,"icon":265},{"name":267,"level":261},{"name":269,"level":261,"icon":270},{"name":272,"level":261},{"name":274,"level":261,"icon":275},{"name":277,"level":261},{"name":279,"level":261},{"name":281,"level":261},{"name":283,"level":261,"icon":284},{"name":286,"level":287,"icon":288},{"name":290,"level":287,"icon":291},{"name":293,"level":287,"icon":294},{"name":296,"level":287,"icon":297},{"name":299,"level":287,"icon":300},{"name":302,"level":287,"icon":303},[2539,2540,2541,2542,2543,2544],{"name":306,"level":261},{"name":308,"level":261},{"name":215,"level":261},{"name":311,"level":261},{"name":313,"level":261},{"name":315,"level":287},[2546,2547,2548,2549,2550],{"project":318,"position":319},{"project":321,"position":319},{"project":323,"position":319},{"project":325,"position":326},{"project":328,"position":319},{"eMail":330,"phone":331,"visibility":332},[2553,2568],{"_path":2554,"_dir":2555,"_draft":6,"_partial":2556,"_locale":7,"name":2557,"slug":2555,"text":2558,"hoverText":2559,"image":2560,"customer":2557,"tags":2561,"_id":2563,"_type":2564,"title":2565,"_source":200,"_file":2566,"_stem":2567,"_extension":2564},"/portfolio/pixelx/_teaser","pixelx",true,"PixelX","IT-Sicherheit mit Augenmaß und Sachverstand","Für PixelX haben wir eine gezielte Sicherheitsanalyse durchgeführt, bei der wir dank unseres tiefen technischen Verständnisses eine kritische Schwachstelle identifizieren konnten. Mit minimalem Zeitaufwand erzielten wir maximalen Sicherheitsgewinn.","/images/portfolio/pixelx/pixelx_secured.png",[2562,19],"security","common:portfolio:9010.pixelx:_teaser.yaml","yaml","Teaser","portfolio/9010.pixelx/_teaser.yaml","portfolio/9010.pixelx/_teaser",{"_path":2569,"_dir":2570,"_draft":6,"_partial":2556,"_locale":7,"name":2571,"slug":2570,"text":2572,"hoverText":2573,"image":2574,"customer":2571,"tags":2575,"_id":2576,"_type":2564,"title":2565,"_source":200,"_file":2577,"_stem":2578,"_extension":2564},"/portfolio/slimspots/_teaser","slimspots","SlimSpots","Große Datenmengen in Echtzeit verarbeiten","Für SlimSpots, einen weltweit agierenden Anbieter von Ad-Marketing-Lösungen, haben wir eine hochskalierbare Infrastruktur entwickelt, die die Verarbeitung von Billionen Datensätzen in Echtzeit ermöglicht.","/images/portfolio/slimspots/slim_spots_prtfolio.png",[215,19],"common:portfolio:9020.slimspots:_teaser.yaml","portfolio/9020.slimspots/_teaser.yaml","portfolio/9020.slimspots/_teaser",1782284040389]