[Tools-discuss] Re: Agenda Data Loading Slowly

Robert Sparks <rjsparks@nostrum.com> Mon, 13 October 2025 19:32 UTC

Return-Path: <rjsparks@nostrum.com>
X-Original-To: tools-discuss@mail2.ietf.org
Delivered-To: tools-discuss@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id B73FB72AB233 for <tools-discuss@mail2.ietf.org>; Mon, 13 Oct 2025 12:32:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.088
X-Spam-Level:
X-Spam-Status: No, score=-2.088 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=nostrum.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uk4SL_N9xxzi for <tools-discuss@mail2.ietf.org>; Mon, 13 Oct 2025 12:32:53 -0700 (PDT)
Received: from magus.nostrum.com (tunnel3459-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id B49EA72AB228 for <tools-discuss@ietf.org>; Mon, 13 Oct 2025 12:32:52 -0700 (PDT)
Received: by magus.nostrum.com (Postfix) id 6418E745C8E; Mon, 13 Oct 2025 14:32:44 -0500 (CDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com; s=submissiondev2025; t=1760383964; bh=PkJmZC4+esHX85UdcSkLsKPrZHoQnVhdWoMRONNNgu4=; h=Date:Subject:From:To:Cc:References:In-Reply-To; b=MVvtjM7qNOj47AXWD7m4fJy/s3S4gvUkmuGIz+tAnsGI7RAStmlMzM7HHouZxVzEx 6YZQbEyLuZ1FzVdlwfN8TZAU52LS1l/rHCUol6GzD/O5V+jiO9+pL40rdUUGbqXWh8 njtynowWIUUWpUxDhpMAnlZeToRhtdVMZut1v/dIT8ust4G8nbbTvb+OfVx/K4fsZn zY+oE+BRvHm5NVxPtE1TeP08oTshu7Hmh6lPdYOVCkxqqCdUv+lM8w7fpFhKqCDWRU cv4bVPecXxBkhAfabkJAyNg8+IqbLSJP4kTX7ogyBIO5cUVYuBBJugge1pWXPrLsX8 iJNwjJbXWYbEQ==
Content-Type: multipart/alternative; boundary="------------tXmoVkTJF1WCzsXXVRL2cHsy"
Message-ID: <2cacf5ef-3f90-4ccf-a3dd-2819704018ce@nostrum.com>
Date: Mon, 13 Oct 2025 14:32:43 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Robert Sparks <rjsparks@nostrum.com>
To: Eric Rescorla <ekr@rtfm.com>
References: <CABcZeBPhbyjj77XnfkUK5JnYe-hSmmrKi5Hb51qKENMTmrnFJg@mail.gmail.com> <CF629982-B435-4440-8E21-02A1319A7EE9@gmail.com> <CABcZeBO=t3NcEx2oo9Fu3-avo-ag4YmLNHL2NgrHTW4MFcOowA@mail.gmail.com> <b5150421-cbdd-424b-bede-8f39c2c40290@nostrum.com> <CABcZeBM8Zi+QZ43iwV7ShKyko-dBHh20qKNM7BAxvqTMgE_9ww@mail.gmail.com> <a5c2b820-cdf2-4d10-bfc2-35d844a082e8@nostrum.com> <CABcZeBO=LSorKYx1VNuLkcBXt+VOYpho7DXAqDSdzPLGRXP08Q@mail.gmail.com> <71800909-2f06-46f9-bece-a7cb813c6f22@nostrum.com>
Content-Language: en-US
Autocrypt: addr=rjsparks@nostrum.com; keydata= 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 I8lfj4rMCctcE0pudHYWrhznMBoUaEADjiOpdw==
In-Reply-To: <71800909-2f06-46f9-bece-a7cb813c6f22@nostrum.com>
Message-ID-Hash: PR7OMTKJ2TGX7QSMQR52I6TK4WCNLX6T
X-Message-ID-Hash: PR7OMTKJ2TGX7QSMQR52I6TK4WCNLX6T
X-MailFrom: rjsparks@nostrum.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tools-discuss.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: tools-discuss@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Tools-discuss] Re: Agenda Data Loading Slowly
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/p-PG2LfVvvv3bWbHOc5jJgbUiG8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Owner: <mailto:tools-discuss-owner@ietf.org>
List-Post: <mailto:tools-discuss@ietf.org>
List-Subscribe: <mailto:tools-discuss-join@ietf.org>
List-Unsubscribe: <mailto:tools-discuss-leave@ietf.org>

Turns out it's already much closer.

I was distracted by the wrong view. The agenda page uses a different, 
but very similar view, at 
https://github.com/ietf-tools/datatracker/blob/ed6b061cfe4279328dbb7b914f5f7f76644521f9/ietf/meeting/views.py#L1745-L1746, 
which calls 
https://github.com/ietf-tools/datatracker/blob/ed6b061cfe4279328dbb7b914f5f7f76644521f9/ietf/meeting/views.py#L1678-L1742, 
which is also called by a celery task that forces that cache update, but 
only for the "current" meeting, where current is defined here: 
https://github.com/ietf-tools/datatracker/blob/ed6b061cfe4279328dbb7b914f5f7f76644521f9/ietf/meeting/helpers.py#L54-L56.

RJS

On 10/13/25 12:56 PM, Robert Sparks wrote:
>
> Sure, we already have such celery tasks for several of those slow views.
>
> Again, on a quick read, because the local cache for _this_ view is 
> controlled by the decorator I first pointed to, a celery task wouldn't 
> be able to invalidate that cache the way it should do. We'd need to 
> tweak the way the cache is managed to allow that to happen.
>
> The lift to serve from the edge (realized through putting the bits in 
> a bucket) is separable, but still important - most of those slow views 
> return large responses.
>
> RjS
>
> On 10/13/25 12:31 PM, Eric Rescorla wrote:
>>
>>
>> On Mon, Oct 13, 2025 at 10:15 AM Robert Sparks <rjsparks@nostrum.com> 
>> wrote:
>>
>>     First line at
>>     https://github.com/ietf-tools/datatracker/blob/ed6b061cfe4279328dbb7b914f5f7f76644521f9/ietf/meeting/views.py#L2312-L2443.
>>
>>     It's a simple origin-side cache, time is the only invalidator.
>>     More complicated invalidation would bring a new set of slow
>>     calculations.
>>
>>     Again, reworking this to use a celery task to push the result to
>>     a bucket on a similar period +/- so the browser never sees the
>>     time the work takes would be one incremental step we could make.
>>
>> It seems like an even more incremental step would just be to use 
>> celery to re-generate the top X slow view, thus keeping the cache 
>> warm. This would have similar timeliness and performance consequences 
>> properties but with no need to mess around with buckets.
>>
>> -Ekr
>>
>>     There's not a concrete schedule for doing that. It's highly
>>     likely that we can do this between 124 and 125, but there are a
>>     lot of other things in flight.
>>
>>     A larger refactor that would make a lot of the calculation in
>>     that view, such as a data structure that makes finding the
>>     times/rooms of all scheduled sessions on the official agenda in
>>     the set of all sessions scheduled in different time/rooms in
>>     draft agendas or those not scheduled at all,  be more efficient
>>     manner is needed - what's grown incrementally from the original
>>     scheduling management tooling is over-complicated at this point.
>>     _That_ level of refactor is much further out.
>>
>>     In the meantime, if you let me know what you're trying to take
>>     from the page, I might be able to point you to places that aren't
>>     doing a lot of the work that endpoint does that you might not be
>>     using.
>>
>>     RjS
>>
>>     On 10/13/25 11:50 AM, Eric Rescorla wrote:
>>>     On Mon, Oct 13, 2025 at 9:41 AM Robert Sparks
>>>     <rjsparks@nostrum.com> wrote:
>>>
>>>         Yes, the agenda is cached, and when the cache expires it is
>>>         recalculated - that recalculation is very complicated (as it
>>>         returns, for instance, the current versions of each
>>>         (agenda/slides/drafts) for each group).
>>>
>>>     Can you say more about how the caching works here? Is it just a
>>>     simple
>>>     time-based cache or something else?
>>>
>>>         We could (and will) refactor the page to distribute the the
>>>         work that's currently done in that one massive json load. We
>>>         can also move keeping a computed version published so the
>>>         browser never sees the time the computation takes, but
>>>         that's not going to happen before IETF 124.
>>>
>>>     Is there a timeline for this work?
>>>
>>>     -Ekr
>>>
>>>         RjS
>>>
>>>         On 10/13/25 10:59 AM, Eric Rescorla wrote:
>>>>
>>>>
>>>>         On Mon, Oct 13, 2025 at 8:54 AM Bob Hinden
>>>>         <bob.hinden@gmail.com> wrote:
>>>>
>>>>             Ekr,
>>>>
>>>>             For what it’s worth, I just went to both links, only
>>>>             took a few seconds for me.
>>>>
>>>>
>>>>         Yes, presumably it's being cached somewhere. However, it's
>>>>         not at all uncommon
>>>>         for this to be slow, and I've seen the then-current agenda
>>>>         take a long time on
>>>>         a number of occasions, so I do think it's worth addressing.
>>>>
>>>>         -Ekr
>>>>
>>>>
>>>>             Bob
>>>>
>>>>
>>>>>             On Oct 13, 2025, at 8:49 AM, Eric Rescorla
>>>>>             <ekr@rtfm.com> wrote:
>>>>>
>>>>>             Hi folks,
>>>>>
>>>>>             I just went to load the agenda for IETF 123
>>>>>             (https://datatracker.ietf.org/meeting/123/agenda) for
>>>>>             <reasons>.
>>>>>
>>>>>             It took 17s for the datatracker to send me the
>>>>>             underlying JSON file for the agenda
>>>>>             (https://datatracker.ietf.org/api/meeting/123/agenda-data)
>>>>>             It seems like it's faster on repeated load, so
>>>>>             presumably there is some caching going on, but 17s
>>>>>             still seems pretty excessive.
>>>>>
>>>>>             -Ekr
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>             <image.png>
>>>>>
>>>>>             -----------------------------------------------
>>>>>             Tools-discuss mailing list -- tools-discuss@ietf.org
>>>>>             To unsubscribe send an email to
>>>>>             tools-discuss-leave@ietf.org
>>>>>             https://mailarchive.ietf.org/arch/browse/tools-discuss/
>>>>
>>>>
>>>>         -----------------------------------------------
>>>>         Tools-discuss mailing list --tools-discuss@ietf.org
>>>>         To unsubscribe send an email totools-discuss-leave@ietf.org
>>>>         https://mailarchive.ietf.org/arch/browse/tools-discuss/
>>>         -----------------------------------------------
>>>         Tools-discuss mailing list -- tools-discuss@ietf.org
>>>         To unsubscribe send an email to tools-discuss-leave@ietf.org
>>>         https://mailarchive.ietf.org/arch/browse/tools-discuss/
>>>
>>
>> -----------------------------------------------
>> Tools-discuss mailing list --tools-discuss@ietf.org
>> To unsubscribe send an email totools-discuss-leave@ietf.org
>> https://mailarchive.ietf.org/arch/browse/tools-discuss/
>
> -----------------------------------------------
> Tools-discuss mailing list --tools-discuss@ietf.org
> To unsubscribe send an email totools-discuss-leave@ietf.org
> https://mailarchive.ietf.org/arch/browse/tools-discuss/