From: Junio C Hamano <gitster@pobox.com>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: Patrick Steinhardt <ps@pks.im>,
git@vger.kernel.org, shejialuo@gmail.com
Subject: Re: [PATCH v3 4/8] reftable: ensure tables in a stack use sequential update indices
Date: Wed, 24 Sep 2025 11:04:28 -0700 [thread overview]
Message-ID: <xmqqikh7lob7.fsf@gitster.g> (raw)
In-Reply-To: <CAOLa=ZTf7KL23+=Fggfg=4LXt1Dsd6nRCFg3q_Dhuom2Bk+L7A@mail.gmail.com> (Karthik Nayak's message of "Wed, 24 Sep 2025 04:20:07 -0700")
Karthik Nayak <karthik.188@gmail.com> writes:
> Patrick Steinhardt <ps@pks.im> writes:
>
>> On Thu, Sep 18, 2025 at 10:11:45AM +0200, Karthik Nayak wrote:
>>> diff --git a/reftable/stack.c b/reftable/stack.c
>>> index 955be1edb6..a458f5a4c5 100644
>>> --- a/reftable/stack.c
>>> +++ b/reftable/stack.c
>>> @@ -317,6 +318,14 @@ static int reftable_stack_reload_once(struct reftable_stack *st,
>>>
>>> new_tables[new_tables_len] = table;
>>> new_tables_len++;
>>> +
>>> + /* table's update indices must be sequential */
>>
>> Let's make this a full sentence starting with an upper-case letter and a
>> period.
>>
>>> + if (prev_table && (prev_table->max_update_index != table->min_update_index - 1)) {
>>
>> I wonder whether this check is too strict. It _must_ be true that the
>> new table's minimum update index is greater than the previous table's
>> maximum update index. But in theory, there is no reason why there cannot
>> be a gap between those.
>>
>> The reason why this makes me a bit uneasy is stack compaction. Say we
>> have three different tables:
>>
>> - A base table with record r1 with update index 1.
>> - A second table with record r2 with update index 2.
>> - A third table with a deletion record d(r2) and a new record r3 with
>> update index 3.
>>
>> Now if we compact the second and the third table, the compaction will
>> realize that r2 is deleted and thus no longer needs to be part of the
>> compacted table. So the new state is:
>>
>> - A base table with record r1 and update index r1.
>> - The compacted table with record r3 with update index 3.
> ...
> However, I think your point holds. I do think eventually we could
> optimize this to ensure that we do something like you described.
>
> I will make changes accordingly.
If you allow gaps in the indices, it is a bit confusing to call them
"sequential"; "monotonically increasing" is less confusing and it
conveys the author's intention to allow gaps clear (otherwise the
author wouldn't be using such an awkward two-word phrase instead of
"sequencial").
next prev parent reply other threads:[~2025-09-24 18:04 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-19 12:20 [PATCH 0/5] refs/reftable: add fsck checks Karthik Nayak
2025-08-19 12:21 ` [PATCH 1/5] fsck: order 'fsck_msg_type' alphabetically Karthik Nayak
2025-08-19 12:21 ` [PATCH 2/5] refs/reftable: add fsck check for checking the table name Karthik Nayak
2025-08-26 16:21 ` shejialuo
2025-09-01 13:33 ` Karthik Nayak
2025-09-03 13:39 ` shejialuo
2025-08-19 12:21 ` [PATCH 3/5] refs/reftable: add fsck check for number of tables Karthik Nayak
2025-08-26 16:33 ` shejialuo
2025-09-01 13:40 ` Karthik Nayak
2025-08-26 16:44 ` shejialuo
2025-09-01 13:52 ` Karthik Nayak
2025-08-19 12:21 ` [PATCH 4/5] refs/reftable: add fsck check for trailing newline Karthik Nayak
2025-08-19 12:21 ` [PATCH 5/5] refs/reftable: add fsck check for incorrect update index Karthik Nayak
2025-08-26 16:39 ` [PATCH 0/5] refs/reftable: add fsck checks shejialuo
2025-09-01 13:52 ` Karthik Nayak
2025-09-02 7:05 ` [PATCH v2 " Karthik Nayak
2025-09-02 7:05 ` [PATCH v2 1/5] fsck: order 'fsck_msg_type' alphabetically Karthik Nayak
2025-09-02 22:25 ` Junio C Hamano
2025-09-08 13:00 ` Karthik Nayak
2025-09-02 7:05 ` [PATCH v2 2/5] refs/reftable: add fsck check for checking the table name Karthik Nayak
2025-09-03 8:07 ` Patrick Steinhardt
2025-09-03 16:51 ` shejialuo
2025-09-09 13:49 ` Karthik Nayak
2025-09-09 8:42 ` Karthik Nayak
2025-09-02 7:05 ` [PATCH v2 3/5] refs/reftable: add fsck check for number of tables Karthik Nayak
2025-09-03 8:07 ` Patrick Steinhardt
2025-09-15 9:27 ` Karthik Nayak
2025-09-02 7:05 ` [PATCH v2 4/5] refs/reftable: add fsck check for trailing newline Karthik Nayak
2025-09-02 22:38 ` Junio C Hamano
2025-09-03 8:07 ` Patrick Steinhardt
2025-09-02 7:05 ` [PATCH v2 5/5] refs/reftable: add fsck check for incorrect update index Karthik Nayak
2025-09-02 22:42 ` Junio C Hamano
2025-09-18 8:11 ` Karthik Nayak
2025-09-18 8:11 ` [PATCH v3 0/8] refs/reftable: add consistency checks Karthik Nayak
2025-09-18 8:11 ` [PATCH v3 1/8] refs: remove unused headers Karthik Nayak
2025-09-18 8:11 ` [PATCH v3 2/8] refs: move consistency check msg to generic layer Karthik Nayak
2025-09-18 8:11 ` [PATCH v3 3/8] reftable: check for trailing newline in 'tables.list' Karthik Nayak
2025-09-18 15:36 ` Junio C Hamano
2025-09-23 15:42 ` Karthik Nayak
2025-09-24 5:54 ` Patrick Steinhardt
2025-09-24 10:02 ` Karthik Nayak
2025-09-24 7:24 ` Kristoffer Haugsbakk
2025-09-24 11:06 ` Karthik Nayak
2025-09-18 8:11 ` [PATCH v3 4/8] reftable: ensure tables in a stack use sequential update indices Karthik Nayak
2025-09-24 5:54 ` Patrick Steinhardt
2025-09-24 11:20 ` Karthik Nayak
2025-09-24 18:04 ` Junio C Hamano [this message]
2025-09-24 20:13 ` Karthik Nayak
2025-09-25 6:12 ` Patrick Steinhardt
2025-09-25 16:22 ` Junio C Hamano
2025-09-18 8:11 ` [PATCH v3 5/8] Documentation/fsck-msgids: remove duplicate msg id Karthik Nayak
2025-09-18 8:11 ` [PATCH v3 6/8] fsck: order 'fsck_msg_type' alphabetically Karthik Nayak
2025-09-18 8:11 ` [PATCH v3 7/8] reftable: add code to facilitate consistency checks Karthik Nayak
2025-09-24 5:54 ` Patrick Steinhardt
2025-09-24 18:40 ` Karthik Nayak
2025-09-25 6:14 ` Patrick Steinhardt
2025-09-18 8:11 ` [PATCH v3 8/8] refs/reftable: add fsck check for checking the table name Karthik Nayak
2025-09-24 5:54 ` Patrick Steinhardt
2025-09-24 18:44 ` Karthik Nayak
2025-09-26 7:25 ` [PATCH v4 0/7] refs/reftable: add consistency checks Karthik Nayak
2025-09-26 7:25 ` [PATCH v4 1/7] refs: remove unused headers Karthik Nayak
2025-09-26 7:25 ` [PATCH v4 2/7] refs: move consistency check msg to generic layer Karthik Nayak
2025-09-26 7:25 ` [PATCH v4 3/7] reftable: check for trailing newline in 'tables.list' Karthik Nayak
2025-10-02 11:44 ` Patrick Steinhardt
2025-10-06 12:02 ` Karthik Nayak
2025-09-26 7:25 ` [PATCH v4 4/7] Documentation/fsck-msgids: remove duplicate msg id Karthik Nayak
2025-09-26 7:25 ` [PATCH v4 5/7] fsck: order 'fsck_msg_type' alphabetically Karthik Nayak
2025-09-26 7:25 ` [PATCH v4 6/7] reftable: add code to facilitate consistency checks Karthik Nayak
2025-10-02 11:44 ` Patrick Steinhardt
2025-09-26 7:25 ` [PATCH v4 7/7] refs/reftable: add fsck check for checking the table name Karthik Nayak
2025-10-02 11:44 ` Patrick Steinhardt
2025-10-06 12:05 ` Karthik Nayak
2025-09-26 21:08 ` [PATCH v4 0/7] refs/reftable: add consistency checks Junio C Hamano
2025-10-06 14:22 ` [PATCH v5 " Karthik Nayak
2025-10-06 14:22 ` [PATCH v5 1/7] refs: remove unused headers Karthik Nayak
2025-10-06 14:23 ` [PATCH v5 2/7] refs: move consistency check msg to generic layer Karthik Nayak
2025-10-06 14:23 ` [PATCH v5 3/7] reftable: check for trailing newline in 'tables.list' Karthik Nayak
2025-10-06 14:23 ` [PATCH v5 4/7] Documentation/fsck-msgids: remove duplicate msg id Karthik Nayak
2025-10-06 14:23 ` [PATCH v5 5/7] fsck: order 'fsck_msg_type' alphabetically Karthik Nayak
2025-10-06 14:23 ` [PATCH v5 6/7] reftable: add code to facilitate consistency checks Karthik Nayak
2025-10-06 14:23 ` [PATCH v5 7/7] refs/reftable: add fsck check for checking the table name Karthik Nayak
2025-10-07 2:32 ` Jeff King
2025-10-07 8:45 ` Karthik Nayak
2025-10-06 22:08 ` [PATCH v5 0/7] refs/reftable: add consistency checks Junio C Hamano
2025-10-07 8:47 ` Karthik Nayak
2025-10-07 15:11 ` Junio C Hamano
2025-10-07 12:11 ` [PATCH v6 " Karthik Nayak
2025-10-07 12:11 ` [PATCH v6 1/7] refs: remove unused headers Karthik Nayak
2025-10-07 12:11 ` [PATCH v6 2/7] refs: move consistency check msg to generic layer Karthik Nayak
2025-10-07 12:11 ` [PATCH v6 3/7] reftable: check for trailing newline in 'tables.list' Karthik Nayak
2025-10-07 12:11 ` [PATCH v6 4/7] Documentation/fsck-msgids: remove duplicate msg id Karthik Nayak
2025-10-07 12:11 ` [PATCH v6 5/7] fsck: order 'fsck_msg_type' alphabetically Karthik Nayak
2025-10-07 12:11 ` [PATCH v6 6/7] reftable: add code to facilitate consistency checks Karthik Nayak
2025-10-07 12:11 ` [PATCH v6 7/7] refs/reftable: add fsck check for checking the table name Karthik Nayak
2025-10-07 13:26 ` [PATCH v6 0/7] refs/reftable: add consistency checks Patrick Steinhardt
2025-10-07 16:25 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqikh7lob7.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
--cc=shejialuo@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.