On 07/05/11 7:10 AM, Charles Polisher wrote:
In general and with some simplifiying assumptions, a database consists of statically pre-allocated files. The process of extending the files happens at birth. The relative speed over the lifetime of the database is dominated by raw I/O, not by extending the files.
thats not even remotely true of many databases. PostgreSQL, for example, the files are extended as they are updated/inserted, as are the WAL files.
The PostgreSQL wiki seems to say that database tables are allocated in 1GB extents. In workloads with which I am familiar, with an RDBMS the extents don't bounce around all that much, i.e. the vast majority of writes do not result in a change to the underlying database's storage allocation. Once in a while a new extent is allocated. http://www.postgresql.org/docs/current/static/storage-file-layout.html I suppose there could be exceptions, but I haven't run across one personally.
The "WAL" files you refer to are apparently database transaction logs. According to the wiki, these too are allocated in extents (WAL segments) of 16MB each.
I am not persuaded that the point I was making was erroneous.