Commit 5ebad9a5 authored by Bruce Momjian's avatar Bruce Momjian

docs: re-add spaces before units removed

This reverts the spaces before k/M/G/TB units removed for consistency in
commit ca0c37b5.

Discussion: 20160802165116.GC32575@momjian.us
parent a629330b
...@@ -177,7 +177,7 @@ CREATE INDEX ...@@ -177,7 +177,7 @@ CREATE INDEX
query. We could reduce that by specifying a larger signature length. query. We could reduce that by specifying a larger signature length.
In this example, creating the index with <literal>length=200</> In this example, creating the index with <literal>length=200</>
reduced the number of false positives to 55; but it doubled the index size reduced the number of false positives to 55; but it doubled the index size
(to 306MB) and ended up being slower for this query (125 ms overall). (to 306 MB) and ended up being slower for this query (125 ms overall).
</para> </para>
<para> <para>
...@@ -202,7 +202,7 @@ CREATE INDEX ...@@ -202,7 +202,7 @@ CREATE INDEX
</programlisting> </programlisting>
Although this query runs much faster than with either of the single Although this query runs much faster than with either of the single
indexes, we pay a large penalty in index size. Each of the single-column indexes, we pay a large penalty in index size. Each of the single-column
btree indexes occupies 214MB, so the total space needed is over 1.2GB, btree indexes occupies 214 MB, so the total space needed is over 1.2GB,
more than 8 times the space used by the bloom index. more than 8 times the space used by the bloom index.
</para> </para>
</sect2> </sect2>
......
...@@ -4021,7 +4021,7 @@ ...@@ -4021,7 +4021,7 @@
segments or <quote>pages</> small enough to be conveniently stored as rows segments or <quote>pages</> small enough to be conveniently stored as rows
in <structname>pg_largeobject</structname>. in <structname>pg_largeobject</structname>.
The amount of data per page is defined to be <symbol>LOBLKSIZE</> (which is currently The amount of data per page is defined to be <symbol>LOBLKSIZE</> (which is currently
<literal>BLCKSZ/4</>, or typically 2kB). <literal>BLCKSZ/4</>, or typically 2 kB).
</para> </para>
<para> <para>
......
...@@ -2702,7 +2702,7 @@ include_dir 'conf.d' ...@@ -2702,7 +2702,7 @@ include_dir 'conf.d'
checkpoints. This is a soft limit; WAL size can exceed checkpoints. This is a soft limit; WAL size can exceed
<varname>max_wal_size</> under special circumstances, like <varname>max_wal_size</> under special circumstances, like
under heavy load, a failing <varname>archive_command</>, or a high under heavy load, a failing <varname>archive_command</>, or a high
<varname>wal_keep_segments</> setting. The default is 1GB. <varname>wal_keep_segments</> setting. The default is 1 GB.
Increasing this parameter can increase the amount of time needed for Increasing this parameter can increase the amount of time needed for
crash recovery. crash recovery.
This parameter can only be set in the <filename>postgresql.conf</> This parameter can only be set in the <filename>postgresql.conf</>
...@@ -2723,7 +2723,7 @@ include_dir 'conf.d' ...@@ -2723,7 +2723,7 @@ include_dir 'conf.d'
always recycled for future use at a checkpoint, rather than removed. always recycled for future use at a checkpoint, rather than removed.
This can be used to ensure that enough WAL space is reserved to This can be used to ensure that enough WAL space is reserved to
handle spikes in WAL usage, for example when running large batch handle spikes in WAL usage, for example when running large batch
jobs. The default is 80MB. jobs. The default is 80 MB.
This parameter can only be set in the <filename>postgresql.conf</> This parameter can only be set in the <filename>postgresql.conf</>
file or on the server command line. file or on the server command line.
</para> </para>
......
...@@ -1120,7 +1120,7 @@ SELECT '52093.89'::money::numeric::float8; ...@@ -1120,7 +1120,7 @@ SELECT '52093.89'::money::numeric::float8;
the physical requirement on disk might be less. Very long values are also the physical requirement on disk might be less. Very long values are also
stored in background tables so that they do not interfere with rapid stored in background tables so that they do not interfere with rapid
access to shorter column values. In any case, the longest access to shorter column values. In any case, the longest
possible character string that can be stored is about 1GB. (The possible character string that can be stored is about 1 GB. (The
maximum value that will be allowed for <replaceable>n</> in the data maximum value that will be allowed for <replaceable>n</> in the data
type declaration is less than that. It wouldn't be useful to type declaration is less than that. It wouldn't be useful to
change this because with multibyte character encodings the number of change this because with multibyte character encodings the number of
......
...@@ -326,12 +326,12 @@ su - postgres ...@@ -326,12 +326,12 @@ su - postgres
<para> <para>
Also check that you have sufficient disk space. You will need about Also check that you have sufficient disk space. You will need about
100MB for the source tree during compilation and about 20MB for 100 MB for the source tree during compilation and about 20 MB for
the installation directory. An empty database cluster takes about the installation directory. An empty database cluster takes about
35MB; databases take about five times the amount of space that a 35 MB; databases take about five times the amount of space that a
flat text file with the same data would take. If you are going to flat text file with the same data would take. If you are going to
run the regression tests you will temporarily need up to an extra run the regression tests you will temporarily need up to an extra
150MB. Use the <command>df</command> command to check free disk 150 MB. Use the <command>df</command> command to check free disk
space. space.
</para> </para>
</sect1> </sect1>
...@@ -2241,7 +2241,7 @@ createlang: language installation failed: ERROR: could not load library "/opt/d ...@@ -2241,7 +2241,7 @@ createlang: language installation failed: ERROR: could not load library "/opt/d
createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": Bad address createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": Bad address
</screen> </screen>
Another example is out of memory errors in the PostgreSQL server Another example is out of memory errors in the PostgreSQL server
logs, with every memory allocation near or greater than 256MB logs, with every memory allocation near or greater than 256 MB
failing. failing.
</para> </para>
...@@ -2250,8 +2250,8 @@ createlang: language installation failed: ERROR: could not load library "/opt/d ...@@ -2250,8 +2250,8 @@ createlang: language installation failed: ERROR: could not load library "/opt/d
and memory model used by the server process. By default, all and memory model used by the server process. By default, all
binaries built on AIX are 32-bit. This does not depend upon binaries built on AIX are 32-bit. This does not depend upon
hardware type or kernel in use. These 32-bit processes are hardware type or kernel in use. These 32-bit processes are
limited to 4GB of memory laid out in 256MB segments using one limited to 4 GB of memory laid out in 256 MB segments using one
of a few models. The default allows for less than 256MB in the of a few models. The default allows for less than 256 MB in the
heap as it shares a single segment with the stack. heap as it shares a single segment with the stack.
</para> </para>
...@@ -2282,7 +2282,7 @@ createlang: language installation failed: ERROR: could not load library "/opt/d ...@@ -2282,7 +2282,7 @@ createlang: language installation failed: ERROR: could not load library "/opt/d
settings to find a configuration that works satisfactorily. This settings to find a configuration that works satisfactorily. This
use of <symbol>LDR_CNTRL</symbol> tells AIX that you want the use of <symbol>LDR_CNTRL</symbol> tells AIX that you want the
server to have <symbol>MAXDATA</symbol> bytes set aside for the server to have <symbol>MAXDATA</symbol> bytes set aside for the
heap, allocated in 256MB segments. When you find a workable heap, allocated in 256 MB segments. When you find a workable
configuration, configuration,
<command>ldedit</command> can be used to modify the binaries so <command>ldedit</command> can be used to modify the binaries so
that they default to using the desired heap size. PostgreSQL can that they default to using the desired heap size. PostgreSQL can
......
...@@ -50,8 +50,8 @@ ...@@ -50,8 +50,8 @@
larger than a single database page into a secondary storage area per table. larger than a single database page into a secondary storage area per table.
This makes the large object facility partially obsolete. One This makes the large object facility partially obsolete. One
remaining advantage of the large object facility is that it allows values remaining advantage of the large object facility is that it allows values
up to 4TB in size, whereas <acronym>TOAST</acronym>ed fields can be at up to 4 TB in size, whereas <acronym>TOAST</acronym>ed fields can be at
most 1GB. Also, reading and updating portions of a large object can be most 1 GB. Also, reading and updating portions of a large object can be
done efficiently, while most operations on a <acronym>TOAST</acronym>ed done efficiently, while most operations on a <acronym>TOAST</acronym>ed
field will read or write the whole value as a unit. field will read or write the whole value as a unit.
</para> </para>
......
...@@ -1973,7 +1973,7 @@ The commands accepted in walsender mode are: ...@@ -1973,7 +1973,7 @@ The commands accepted in walsender mode are:
Limit (throttle) the maximum amount of data transferred from server Limit (throttle) the maximum amount of data transferred from server
to client per unit of time. The expected unit is kilobytes per second. to client per unit of time. The expected unit is kilobytes per second.
If this option is specified, the value must either be equal to zero If this option is specified, the value must either be equal to zero
or it must fall within the range from 32kB through 1GB (inclusive). or it must fall within the range from 32 kB through 1 GB (inclusive).
If zero is passed or the option is not specified, no restriction is If zero is passed or the option is not specified, no restriction is
imposed on the transfer. imposed on the transfer.
</para> </para>
......
...@@ -968,7 +968,7 @@ option SEMMAP=256 ...@@ -968,7 +968,7 @@ option SEMMAP=256
</term> </term>
<listitem> <listitem>
<para> <para>
The default maximum segment size is 32MB, and the The default maximum segment size is 32 MB, and the
default maximum total size is 2097152 default maximum total size is 2097152
pages. A page is almost always 4096 bytes except in unusual pages. A page is almost always 4096 bytes except in unusual
kernel configurations with <quote>huge pages</quote> kernel configurations with <quote>huge pages</quote>
...@@ -977,7 +977,7 @@ option SEMMAP=256 ...@@ -977,7 +977,7 @@ option SEMMAP=256
<para> <para>
The shared memory size settings can be changed via the The shared memory size settings can be changed via the
<command>sysctl</command> interface. For example, to allow 16GB: <command>sysctl</command> interface. For example, to allow 16 GB:
<screen> <screen>
<prompt>$</prompt> <userinput>sysctl -w kernel.shmmax=17179869184</userinput> <prompt>$</prompt> <userinput>sysctl -w kernel.shmmax=17179869184</userinput>
<prompt>$</prompt> <userinput>sysctl -w kernel.shmall=4194304</userinput> <prompt>$</prompt> <userinput>sysctl -w kernel.shmall=4194304</userinput>
...@@ -1032,7 +1032,7 @@ kern.sysv.shmall=1024 ...@@ -1032,7 +1032,7 @@ kern.sysv.shmall=1024
</para> </para>
<para> <para>
<varname>SHMALL</> is measured in 4kB pages on this platform. <varname>SHMALL</> is measured in 4 kB pages on this platform.
</para> </para>
<para> <para>
...@@ -1075,7 +1075,7 @@ sysctl -w kern.sysv.shmall ...@@ -1075,7 +1075,7 @@ sysctl -w kern.sysv.shmall
</term> </term>
<listitem> <listitem>
<para> <para>
In the default configuration, only 512kB of shared memory per In the default configuration, only 512 kB of shared memory per
segment is allowed. To increase the setting, first change to the segment is allowed. To increase the setting, first change to the
directory <filename>/etc/conf/cf.d</>. To display the current value of directory <filename>/etc/conf/cf.d</>. To display the current value of
<varname>SHMMAX</>, run: <varname>SHMMAX</>, run:
...@@ -1180,7 +1180,7 @@ project.max-msg-ids=(priv,4096,deny) ...@@ -1180,7 +1180,7 @@ project.max-msg-ids=(priv,4096,deny)
<listitem> <listitem>
<para> <para>
On <productname>UnixWare</> 7, the maximum size for shared On <productname>UnixWare</> 7, the maximum size for shared
memory segments is 512kB in the default configuration. memory segments is 512 kB in the default configuration.
To display the current value of <varname>SHMMAX</>, run: To display the current value of <varname>SHMMAX</>, run:
<programlisting> <programlisting>
/etc/conf/bin/idtune -g SHMMAX /etc/conf/bin/idtune -g SHMMAX
......
...@@ -217,11 +217,11 @@ function. ...@@ -217,11 +217,11 @@ function.
</caution> </caution>
<para> <para>
When a table or index exceeds 1GB, it is divided into gigabyte-sized When a table or index exceeds 1 GB, it is divided into gigabyte-sized
<firstterm>segments</>. The first segment's file name is the same as the <firstterm>segments</>. The first segment's file name is the same as the
filenode; subsequent segments are named filenode.1, filenode.2, etc. filenode; subsequent segments are named filenode.1, filenode.2, etc.
This arrangement avoids problems on platforms that have file size limitations. This arrangement avoids problems on platforms that have file size limitations.
(Actually, 1GB is just the default segment size. The segment size can be (Actually, 1 GB is just the default segment size. The segment size can be
adjusted using the configuration option <option>--with-segsize</option> adjusted using the configuration option <option>--with-segsize</option>
when building <productname>PostgreSQL</>.) when building <productname>PostgreSQL</>.)
In principle, free space map and visibility map forks could require multiple In principle, free space map and visibility map forks could require multiple
...@@ -303,7 +303,7 @@ Oversized-Attribute Storage Technique). ...@@ -303,7 +303,7 @@ Oversized-Attribute Storage Technique).
<para> <para>
<productname>PostgreSQL</productname> uses a fixed page size (commonly <productname>PostgreSQL</productname> uses a fixed page size (commonly
8kB), and does not allow tuples to span multiple pages. Therefore, it is 8 kB), and does not allow tuples to span multiple pages. Therefore, it is
not possible to store very large field values directly. To overcome not possible to store very large field values directly. To overcome
this limitation, large field values are compressed and/or broken up into this limitation, large field values are compressed and/or broken up into
multiple physical rows. This happens transparently to the user, with only multiple physical rows. This happens transparently to the user, with only
...@@ -336,7 +336,7 @@ See <xref linkend="xtypes-toast"> for more detail.) ...@@ -336,7 +336,7 @@ See <xref linkend="xtypes-toast"> for more detail.)
<acronym>TOAST</> usurps two bits of the varlena length word (the high-order <acronym>TOAST</> usurps two bits of the varlena length word (the high-order
bits on big-endian machines, the low-order bits on little-endian machines), bits on big-endian machines, the low-order bits on little-endian machines),
thereby limiting the logical size of any value of a <acronym>TOAST</>-able thereby limiting the logical size of any value of a <acronym>TOAST</>-able
data type to 1GB (2<superscript>30</> - 1 bytes). When both bits are zero, data type to 1 GB (2<superscript>30</> - 1 bytes). When both bits are zero,
the value is an ordinary un-<acronym>TOAST</>ed value of the data type, and the value is an ordinary un-<acronym>TOAST</>ed value of the data type, and
the remaining bits of the length word give the total datum size (including the remaining bits of the length word give the total datum size (including
length word) in bytes. When the highest-order or lowest-order bit is set, length word) in bytes. When the highest-order or lowest-order bit is set,
...@@ -344,7 +344,7 @@ the value has only a single-byte header instead of the normal four-byte ...@@ -344,7 +344,7 @@ the value has only a single-byte header instead of the normal four-byte
header, and the remaining bits of that byte give the total datum size header, and the remaining bits of that byte give the total datum size
(including length byte) in bytes. This alternative supports space-efficient (including length byte) in bytes. This alternative supports space-efficient
storage of values shorter than 127 bytes, while still allowing the data type storage of values shorter than 127 bytes, while still allowing the data type
to grow to 1GB at need. Values with single-byte headers aren't aligned on to grow to 1 GB at need. Values with single-byte headers aren't aligned on
any particular boundary, whereas values with four-byte headers are aligned on any particular boundary, whereas values with four-byte headers are aligned on
at least a four-byte boundary; this omission of alignment padding provides at least a four-byte boundary; this omission of alignment padding provides
additional space savings that is significant compared to short values. additional space savings that is significant compared to short values.
...@@ -420,10 +420,10 @@ bytes regardless of the actual size of the represented value. ...@@ -420,10 +420,10 @@ bytes regardless of the actual size of the represented value.
<para> <para>
The <acronym>TOAST</> management code is triggered only The <acronym>TOAST</> management code is triggered only
when a row value to be stored in a table is wider than when a row value to be stored in a table is wider than
<symbol>TOAST_TUPLE_THRESHOLD</> bytes (normally 2kB). <symbol>TOAST_TUPLE_THRESHOLD</> bytes (normally 2 kB).
The <acronym>TOAST</> code will compress and/or move The <acronym>TOAST</> code will compress and/or move
field values out-of-line until the row value is shorter than field values out-of-line until the row value is shorter than
<symbol>TOAST_TUPLE_TARGET</> bytes (also normally 2kB) <symbol>TOAST_TUPLE_TARGET</> bytes (also normally 2 kB)
or no more gains can be had. During an UPDATE or no more gains can be had. During an UPDATE
operation, values of unchanged fields are normally preserved as-is; so an operation, values of unchanged fields are normally preserved as-is; so an
UPDATE of a row with out-of-line values incurs no <acronym>TOAST</> costs if UPDATE of a row with out-of-line values incurs no <acronym>TOAST</> costs if
...@@ -491,7 +491,7 @@ containing typical HTML pages and their URLs was stored in about half of the ...@@ -491,7 +491,7 @@ containing typical HTML pages and their URLs was stored in about half of the
raw data size including the <acronym>TOAST</> table, and that the main table raw data size including the <acronym>TOAST</> table, and that the main table
contained only about 10% of the entire data (the URLs and some small HTML contained only about 10% of the entire data (the URLs and some small HTML
pages). There was no run time difference compared to an un-<acronym>TOAST</>ed pages). There was no run time difference compared to an un-<acronym>TOAST</>ed
comparison table, in which all the HTML pages were cut down to 7kB to fit. comparison table, in which all the HTML pages were cut down to 7 kB to fit.
</para> </para>
</sect2> </sect2>
...@@ -512,7 +512,7 @@ pointers to <firstterm>expanded</> data. ...@@ -512,7 +512,7 @@ pointers to <firstterm>expanded</> data.
Indirect <acronym>TOAST</> pointers simply point at a non-indirect varlena Indirect <acronym>TOAST</> pointers simply point at a non-indirect varlena
value stored somewhere in memory. This case was originally created merely value stored somewhere in memory. This case was originally created merely
as a proof of concept, but it is currently used during logical decoding to as a proof of concept, but it is currently used during logical decoding to
avoid possibly having to create physical tuples exceeding 1GB (as pulling avoid possibly having to create physical tuples exceeding 1 GB (as pulling
all out-of-line field values into the tuple might do). The case is of all out-of-line field values into the tuple might do). The case is of
limited use since the creator of the pointer datum is entirely responsible limited use since the creator of the pointer datum is entirely responsible
that the referenced data survives for as long as the pointer could exist, that the referenced data survives for as long as the pointer could exist,
...@@ -703,7 +703,7 @@ an item is a row; in an index, an item is an index entry. ...@@ -703,7 +703,7 @@ an item is a row; in an index, an item is an index entry.
<para> <para>
Every table and index is stored as an array of <firstterm>pages</> of a Every table and index is stored as an array of <firstterm>pages</> of a
fixed size (usually 8kB, although a different page size can be selected fixed size (usually 8 kB, although a different page size can be selected
when compiling the server). In a table, all the pages are logically when compiling the server). In a table, all the pages are logically
equivalent, so a particular item (row) can be stored in any page. In equivalent, so a particular item (row) can be stored in any page. In
indexes, the first page is generally reserved as a <firstterm>metapage</> indexes, the first page is generally reserved as a <firstterm>metapage</>
......
...@@ -475,7 +475,7 @@ ...@@ -475,7 +475,7 @@
linkend="guc-checkpoint-timeout"> seconds, or if linkend="guc-checkpoint-timeout"> seconds, or if
<xref linkend="guc-max-wal-size"> is about to be exceeded, <xref linkend="guc-max-wal-size"> is about to be exceeded,
whichever comes first. whichever comes first.
The default settings are 5 minutes and 1GB, respectively. The default settings are 5 minutes and 1 GB, respectively.
If no WAL has been written since the previous checkpoint, new checkpoints If no WAL has been written since the previous checkpoint, new checkpoints
will be skipped even if <varname>checkpoint_timeout</> has passed. will be skipped even if <varname>checkpoint_timeout</> has passed.
(If WAL archiving is being used and you want to put a lower limit on how (If WAL archiving is being used and you want to put a lower limit on how
...@@ -735,10 +735,10 @@ ...@@ -735,10 +735,10 @@
<para> <para>
<acronym>WAL</acronym> logs are stored in the directory <acronym>WAL</acronym> logs are stored in the directory
<filename>pg_xlog</filename> under the data directory, as a set of <filename>pg_xlog</filename> under the data directory, as a set of
segment files, normally each 16MB in size (but the size can be changed segment files, normally each 16 MB in size (but the size can be changed
by altering the <option>--with-wal-segsize</> configure option when by altering the <option>--with-wal-segsize</> configure option when
building the server). Each segment is divided into pages, normally building the server). Each segment is divided into pages, normally
8kB each (this size can be changed via the <option>--with-wal-blocksize</> 8 kB each (this size can be changed via the <option>--with-wal-blocksize</>
configure option). The log record headers are described in configure option). The log record headers are described in
<filename>access/xlogrecord.h</filename>; the record content is dependent <filename>access/xlogrecord.h</filename>; the record content is dependent
on the type of event that is being logged. Segment files are given on the type of event that is being logged. Segment files are given
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment