  The growing popularity of shared-memory multiprocessor machines has caused
significant changes in the design of concurrent software. In this approach, the
concurrently running threads communicate and synchronize with each other
through data structures in shared memory. Hence, the efficiency of these
structures is essential for the performance of concurrent applications. The
need to find new concurrent data structures prompted the author some time ago
to propose the cvEB array modeled on the van Emde Boas Tree structure as a
dynamic set alternative. This paper describes an improved version of that
structure - the dcvEB array (Dynamic Concurrent van Emde Boas Array). One of
the improvements involves memory usage optimization. This enhancement required
the design of a tree which grows and shrinks at both: the top (root) and the
bottom (leaves) level. Another enhancement concerns the successor (and
predecessor) search strategy. The tests performed seem to confirm the high
performance of the dcvEB array. They are especially visible when the range of
keys is significantly larger than the number of elements in the collection.
