Hi @Bolin Zhu! if that's the entirety of the asset graph, then yes C will be materialized twice.
In your case, are A and B likely to be materializing at the same time, or are they executing entirely independently? We're considering adding a customization option to allow (e.g.) C to skip when one of its parents is in progress, so if A and B were materializing at the same time, but A finished first, then C would wait for B to complete before firing.