{"id":7986,"date":"2025-08-22T11:40:59","date_gmt":"2025-08-22T09:40:59","guid":{"rendered":"https:\/\/launix.de\/launix\/?p=7986"},"modified":"2025-08-22T11:41:00","modified_gmt":"2025-08-22T09:41:00","slug":"memcp-changelog-august-22-2025-%f0%9f%9a%80","status":"publish","type":"post","link":"https:\/\/launix.de\/launix\/en\/memcp-changelog-august-22-2025-%f0%9f%9a%80\/","title":{"rendered":"MemCP: Changelog \u2013 August 22, 2025 \ud83d\ude80"},"content":{"rendered":"<p>We\u2019ve been working hard on improving <strong>data consistency, SQL compatibility, and concurrency<\/strong> in memcp. Today\u2019s update brings several improvements under the hood that make your databases faster, safer, and more reliable.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd12 Data Consistency &amp; Sanitization<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automatic type sanitization for integer columns<\/strong><br>When inserting into <code>INT<\/code>, <code>BIGINT<\/code>, <code>SMALLINT<\/code>, and similar columns, string inputs are now automatically converted to integers.<br>\u2192 This ensures data integrity without requiring manual casting.<br>\u2192 Data compression is now much better when receiving SQL queries from prepared statements e.g. from PHP scripts<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u26a1\ufe0f Concurrency &amp; Rebuild Improvements<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Rebuild process is now safer under heavy writes<\/strong>\n<ul class=\"wp-block-list\">\n<li>Mutexes are held until the new shard is fully ready, ensuring inserts\/deletes don\u2019t race ahead of the rebuild.<\/li>\n\n\n\n<li>Logging cleanup is now synchronized with to avoid race conditions.<\/li>\n\n\n\n<li>Rebuild estimation improved by subtracting deletions for more accurate size tracking.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>\u2192 You can now rebuild shards <strong>while inserts are happening<\/strong> without risking corruption.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udee0 SQL Parser &amp; Compatibility<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ALTER TABLE ADD COLUMN<\/strong> now supports full column attributes:\n<ul class=\"wp-block-list\">\n<li><code>PRIMARY KEY<\/code>, <code>UNIQUE<\/code>, <code>AUTO_INCREMENT<\/code>, <code>NOT NULL<\/code>, <code>DEFAULT<\/code>, <code>ON UPDATE<\/code>, <code>COMMENT<\/code>, <code>COLLATE<\/code><\/li>\n\n\n\n<li>Future-proofing: <code>GENERATED ALWAYS AS<\/code> is reserved for later support.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>DELETE now reports the number of affected rows<\/strong> \u2013 making it easier to track what\u2019s actually happening in your queries.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Quality-of-Life Fixes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Improved <strong>update\/delete handling<\/strong> in shards with clearer internal logging.<\/li>\n\n\n\n<li>Cleaner synchronization of logfiles when rebuilding.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why this matters<\/h2>\n\n\n\n<p>These changes mean:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Safer schema evolution with <strong>real attribute support<\/strong>.<\/li>\n\n\n\n<li>More predictable and reliable <strong>concurrent writes<\/strong>.<\/li>\n\n\n\n<li>Better visibility when modifying data.<\/li>\n\n\n\n<li>Reduced need for manual data cleaning thanks to <strong>automatic sanitization<\/strong>.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>We\u2019ve been working hard on improving data consistency, SQL compatibility, and concurrency in memcp. Today\u2019s update brings several improvements under the hood that make your databases faster, safer, and more reliable. \ud83d\udd12 Data Consistency &amp; Sanitization \u26a1\ufe0f Concurrency &amp; Rebuild Improvements \u2192 You can now rebuild shards while inserts are happening without risking corruption. \ud83d\udee0&#8230;<\/p>","protected":false},"author":2,"featured_media":6010,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-7986","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","single-item"],"featured_image_urls_v2":{"full":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"thumbnail":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo-150x150.png",150,150,true],"medium":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"medium_large":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"large":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"1536x1536":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"2048x2048":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"trp-custom-language-flag":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo-14x12.png",14,12,true],"xs-thumb":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo-64x64.png",64,64,true],"appku-shop-single":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false]},"post_excerpt_stackable_v2":"<p>We\u2019ve been working hard on improving data consistency, SQL compatibility, and concurrency in memcp. Today\u2019s update brings several improvements under the hood that make your databases faster, safer, and more reliable. \ud83d\udd12 Data Consistency &amp; Sanitization Automatic type sanitization for integer columnsWhen inserting into INT, BIGINT, SMALLINT, and similar columns, string inputs are now automatically converted to integers.\u2192 This ensures data integrity without requiring manual casting.\u2192 Data compression is now much better when receiving SQL queries from prepared statements e.g. from PHP scripts \u26a1\ufe0f Concurrency &amp; Rebuild Improvements Rebuild process is now safer under heavy writes Mutexes are held until&hellip;<\/p>\n","category_list_v2":"<a href=\"https:\/\/launix.de\/launix\/en\/category\/allgemein\/\" rel=\"category tag\">Allgemein<\/a>","author_info_v2":{"name":"Carl-Philip H\u00e4nsch","url":"https:\/\/launix.de\/launix\/en\/author\/carli\/"},"comments_num_v2":"0 comments","uagb_featured_image_src":{"full":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"thumbnail":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo-150x150.png",150,150,true],"medium":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"medium_large":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"large":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"1536x1536":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"2048x2048":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false],"trp-custom-language-flag":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo-14x12.png",14,12,true],"xs-thumb":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo-64x64.png",64,64,true],"appku-shop-single":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2024\/06\/memcp-logo.png",256,216,false]},"uagb_author_info":{"display_name":"Carl-Philip H\u00e4nsch","author_link":"https:\/\/launix.de\/launix\/en\/author\/carli\/"},"uagb_comment_info":0,"uagb_excerpt":"We\u2019ve been working hard on improving data consistency, SQL compatibility, and concurrency in memcp. Today\u2019s update brings several improvements under the hood that make your databases faster, safer, and more reliable. \ud83d\udd12 Data Consistency &amp; Sanitization \u26a1\ufe0f Concurrency &amp; Rebuild Improvements \u2192 You can now rebuild shards while inserts are happening without risking corruption. \ud83d\udee0...","_links":{"self":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts\/7986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/comments?post=7986"}],"version-history":[{"count":1,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts\/7986\/revisions"}],"predecessor-version":[{"id":7987,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts\/7986\/revisions\/7987"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/media\/6010"}],"wp:attachment":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/media?parent=7986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/categories?post=7986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/tags?post=7986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}