Hi Juergen,
I haven't looked at the code in details yet. But I have a few questions
regarding the commit message/
On 30/05/2023 10:13, Juergen Gross wrote:
Today all Xenstore nodes are stored in a TDB data base. This data base
has several disadvantages:
- it is using a fixed sized hash table, resulting in high memory
overhead for small installations with only very few VMs, and a rather
large performance hit for systems with lots of VMs due to many
collisions
Can you provide some concrete numbers and a setup in mind? This would
help if someone in the future says that they see the inverse and we need
to rework the logic.
- Xenstore is only single-threaded, while TDB is designed to be fit
for multi-threaded use cases, resulting in much higher code
complexity than needed
- special use cases of Xenstore are not possible to implement with TD
By special use cases, are you referring to only the transaction below?
If not can you outline it?
in an effective way, while an implementation of a data base tailored
for Xenstore could simplify some handling (e.g. transactions) a lot
Do you have follow-up patches that would help to figuring out whether
your new interface makes sense?
So drop using TDB and store the nodes directly in memory making them
easily accessible. Use a hash-based lookup mechanism for fast lookup
of nodes by their full path.
For now only replace TDB keeping the current access functions.
Do you plan to have the rest of the work upstreamed for 4.18? Also, if
for some reasons, only this work will be merged. Will this have an
impact on Xenstored memory usage/performance?
Cheers,
--
Julien Grall