>> If the memory returned by these new functions are not in the Txn arena, 
>> where are they stored?

In a swoc::MemArena which will replace the Arena in the HTTP state machine.

>> I guess my comments for the TxnAuxDataMgr class template are too sparse:
>> https://github.com/apache/trafficserver/blob/d13e3a7c3c799c9493670fd791edf53963e00bd8/include/tscpp/api/Cleanup.h#L127

>> It only involves creating a single TSCont instance per plugin at startup (in 
>> the plugin init function).  Is a single TSCont per plugin too much?

Arena based memory is also much faster to allocate and de-allocate.  This is 
particularly true for strings, contrasting arena memory vs.
Std::string. I also consider this effectively zero over head because the HttpSM 
needs an arena for its own purposes. With the better API provided
by swoc::MemArena it becomes useful to also expose it to plugins. Also, in 
addition to the TSCont, that consumes a more precious resource,
a user transaction argument.

This work is intended for data that does not require cleanup, strings and PODs. 
It might be reasonable to unify these be replacing / implementing
Finalizers using the aux data manager. From my point of view, finalizers are 
exceptional and rarely used. I would expect most plugins to not use them.
What could be done is rather than having a class for such management, provide a 
utility function that allocates and constructs a type T and also
arranges (using this mechanism) to do the cleanup on TXN_CLOSE.

-----Original Message-----
From: Walt Karas <wka...@yahooinc.com.INVALID> 
Sent: Thursday, December 7, 2023 9:27 AM
To: dev@trafficserver.apache.org
Subject: Re: [E] [TSAPI] TSTxnAlloc


Reply via email to