Re: 9.3: summary of corruption detection / checksums / CRCs discussion
От | Merlin Moncure |
---|---|
Тема | Re: 9.3: summary of corruption detection / checksums / CRCs discussion |
Дата | |
Msg-id | CAHyXU0xH_u2mV_5xyDereKGYO89tGMA9J9JDCU6SH3rwky1ocA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: 9.3: summary of corruption detection / checksums / CRCs discussion (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: 9.3: summary of corruption detection / checksums / CRCs discussion
|
Список | pgsql-hackers |
On Tue, Apr 24, 2012 at 3:40 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Sat, Apr 21, 2012 at 7:08 PM, Greg Stark <stark@mit.edu> wrote: >> The earlier consensus was to move all the hint bits to a dedicated >> area and exclude them from the checksum. I think double-write buffers >> seem to have become more fashionable but a summary that doesn't >> describe the former is definitely incomplete. > > I don't think we ever had any consensus that moving the hint bits > around was a good idea. For one thing, they are only hints in one > direction. It's OK to clear them by accident, but it's not OK to set > them by accident. For two things, it's not exactly clear how we'd > rearrange the page to make this work at all: where are those hint bits > gonna go, if not in the tuple headers? For three things, index pages > have hint-type changes that are not single-bit changes. > >> That link points to the MVCC-safe truncate patch. I don't follow how >> optimizations in bulk loads are relevant to wal logging hint bit >> updates. > > That patch actually has more than one optimization in it, I think, but > the basic idea is that if we could figure out a way to set > HEAP_XMIN_COMMITTED when loading data into a table created or > truncated within the same transaction, the need to set hint bits on > first scan of the table would be eliminated. Writing the xmin as > FrozenTransactionId would save even more, though it introduces some > additional complexity. This would be great but it's only a corner case. A pretty common application flow is to write a large number of records, scan them, update them, scan them again, delete them, etc. in a table that's already established and possibly pretty large. Unfortunately this type of work doesn't get a lot of coverage with the common benchmarks. Also, wouldn't the extra out of band wal traffic from hint bits exacerbate contention issues on the wal insert lock? merlin
В списке pgsql-hackers по дате отправления: