> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/gridgain/gridgain-8/gridgain8-development/data-structures.md).

# Distributed Data Structures

GridGain provides distributed implementations of common data structures, including atomic types, sequences, latches, locks, semaphores, queues, and sets.

GridGain provides distributed implementations of common data structures that work across all cluster nodes, including atomic types, a distributed ID generator, count-down latches, locks, semaphores, queues, and sets.

{% columns %}
{% column %}
{% content-ref url="/pages/zdAZqZBUT7AaK9fJlSed" %}
[Queue and Set](/docs/gridgain/gridgain-8/gridgain8-development/data-structures/queue-and-set.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
GridGain provides distributed blocking queue and set implementations that can be created in collocated or non-collocated mode.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/aC5BzyuVtfcCdxdNpV6e" %}
[Atomic Types](/docs/gridgain/gridgain-8/gridgain8-development/data-structures/atomic-types.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Use GridGain distributed atomic long and atomic reference to perform cluster-wide atomic operations on a globally visible value.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/WmxGMf5OiNQoEEBFppWd" %}
[CountDownLatch](/docs/gridgain/gridgain-8/gridgain8-development/data-structures/countdownlatch.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
IgniteCountDownLatch provides a distributed count-down latch that synchronizes operations across cluster nodes.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/pOSHcuXMJ5klYvNFz6Gb" %}
[Locks](/docs/gridgain/gridgain-8/gridgain8-development/data-structures/locks.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Use GridGain distributed reentrant locks to lock threads across the cluster, with optional failover safety and fair or non-fair ordering.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/gUgiTyveQFVSgZyRE8Xe" %}
[Semaphore](/docs/gridgain/gridgain-8/gridgain8-development/data-structures/semaphore.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
GridGain's counting distributed semaphore restricts access to a resource or synchronizes execution flow cluster-wide.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/ckwLp2aHxm9DwERwExr0" %}
[ID Generator](/docs/gridgain/gridgain-8/gridgain8-development/data-structures/id-generator.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The distributed atomic sequence provided by IgniteCacheAtomicSequence is an efficient data structure for implementing a cluster-wide ID generator.
{% endcolumn %}
{% endcolumns %}

## See Also

* [Distributed Primitives: The Coordination Problem](/docs/gridgain/gridgain-8/gridgain8-get-started/learning-paths/beyond-key-value/distributed-data-structures.md)
