Juniper has a good description of a Virtual Output Port queued switch. There are also some references here. Wikipedia also has an entry for VoQ switching. Output port buffered switches are rare in new designs. Cisco Cisco Catalyst 6500 and HP 4000Ms have substantial output port buffers.

The main theme for the buffer page is How much buffer is there for a single flow? Packet buffers for a single queue is essentially the same thing. This question is easier in a shared memory architecture. In VoQ, we would need to know the switch policies for dynamic buffer assignment. If the switch has 100 output ports and 8 queues per port, it could be that buffers are permanently allocated to the 100 x 8 = 800 port-queues. If 12 ports are sharing a single input ASIC and its 4 GByte packet buffer and there are 800 port-queues per input port, there is on average about a 0.5 Mbyte per queue. Pretty whimpy.

It would be very unlikely that buffer from one ASIC could be loaned to another ASIC, so sharing on the input side probably can't happen. On the other hand, if an output port is oversubscribed by traffic coming in from more than one input, VoQ memory on the several input ports could contribute to virtual output port buffer capacity.

Whether dynamic or fixed allocations on each input buffer are used will be implementation dependent. Arista seems to favor dynamic allocation with a cap of 50 mS for any one queue. Whether or not that is exactly what Arista has done, at least they have said something. Juniper sets the maximum for the QFX10000 at 100 mS per port. Pretty generous. Sadly, this sort of information rarely populates data sheets.