<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6" -->

---
title: All Your GUCs in a Row: file_extend_method | daily.dev
description: PostgreSQL&#x27;s `file_extend_method` GUC controls how the server extends data files when tables grow, choosing between `posix_fallocate` (the default since...
canonical: https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: All Your GUCs in a Row: file_extend_method | daily.dev
og:description: PostgreSQL&#x27;s `file_extend_method` GUC controls how the server extends data files when tables grow, choosing between `posix_fallocate` (the default since...
og:url: https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6
og:image: https://api.daily.dev/og/posts/2xiGzVfM6.png
og:image:alt: All Your GUCs in a Row: file_extend_method
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# All Your GUCs in a Row: file_extend_method

**[Planet PostgreSQL](https://daily.dev/sources/planet-postgresql)** · 3 min read · 1 upvotes · 1 comments

## Summary

PostgreSQL's `file_extend_method` GUC controls how the server extends data files when tables grow, choosing between `posix_fallocate` (the default since PostgreSQL 16) and `write_zeros`. The `posix_fallocate` method is faster and reduces fragmentation, but causes two known issues: it silently disables compression on Btrfs filesystems, and triggered spurious 'no space left' errors on some XFS kernel versions. The parameter was backpatched to PostgreSQL 16, 17, and 18 as a workaround rather than a new feature. The setting only affects bulk extensions (files growing by more than 8 blocks/64 kB). The recommendation is to leave it at the default unless running on Btrfs with compression or an affected XFS kernel.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://postgr.es/p/9qd>

## Community discussion

Top comments from developers on daily.dev.

**@trevorsuna** · 0 upvotes

> Good reminder that a faster default can still clash with the filesystem underneath it. I’d add Btrfs compression and affected XFS kernels to the database host checklist before changing this setting.

## Similar posts on daily.dev

- [All Your GUCs in a Row: file\_copy\_method](https://daily.dev/posts/all-your-gucs-in-a-row-file-copy-method-plrdeoars) · Planet PostgreSQL · 1 upvotes · 0 comments
- [XFS Lands FALLOC\_FL\_WRITE\_ZEROES For Efficiency Improvement In Linux 7.3](https://daily.dev/posts/xfs-lands-falloc-fl-write-zeroes-for-efficiency-improvement-in-linux-7-3-wf86bmpnz) · Phoronix · 0 upvotes · 0 comments
- [All Your GUCs in a Row: full\_page\_writes](https://daily.dev/posts/all-your-gucs-in-a-row-full-page-writes-iwrk5j2gz) · Planet PostgreSQL · 0 upvotes · 0 comments
- [All Your GUCs in a Row: io\_combine\_limit and io\_max\_combine\_limit](https://daily.dev/posts/all-your-gucs-in-a-row-io-combine-limit-and-io-max-combine-limit-fwywlkxsy) · Planet PostgreSQL · 0 upvotes · 0 comments
- [All Your GUCs in a Row: default\_table\_access\_method](https://daily.dev/posts/all-your-gucs-in-a-row-default-table-access-method-rwwawqrgt) · Planet PostgreSQL · 0 upvotes · 0 comments

---

Tags: [#linux](https://daily.dev/tags/linux), [#postgresql](https://daily.dev/tags/postgresql)

[View this post on daily.dev](https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"All Your GUCs in a Row: file_extend_method","url":"https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6"},"datePublished":"2026-07-22T01:01:25.872Z","dateModified":"2026-07-22T04:21:08.782Z","description":"PostgreSQL's `file_extend_method` GUC controls how the server extends data files when tables grow, choosing between `posix_fallocate` (the default since...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/64410d0376c99272fd92c08d1bcf8023?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/64410d0376c99272fd92c08d1bcf8023?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Planet PostgreSQL","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Planet PostgreSQL","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/planet-postgresql"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"linux,postgresql","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet PostgreSQL","item":"https://daily.dev/sources/planet-postgresql"},{"@type":"ListItem","position":3,"name":"All Your GUCs in a Row: file_extend_method"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/all-your-gucs-in-a-row-file-extend-method-2xigzvfm6","comment":[{"@type":"Comment","text":"Good reminder that a faster default can still clash with the filesystem underneath it. I’d add Btrfs compression and affected XFS kernels to the database host checklist before changing this setting.","datePublished":"2026-07-22T02:40:20.846Z","url":"https://daily.dev/posts/2xiGzVfM6#c-suPzWXwAK","author":{"@type":"Person","name":"Trevor Suna","url":"https://daily.dev/trevorsuna","image":"https://media.daily.dev/image/upload/s--dZ7gXxpp--/f_auto/v1784081551/avatars/avatar_EMoP47rpuw8DNjhp6R1b6?_a=BAMAMicg0"}}]}
```

