rabbitmq-server/deps/rabbit/include
Jean-Sébastien Pédron 94b8689284
Reorganize data in the Khepri store
[Why]

The previous layout followed the flat structure we have in Mnesia:
* In Mnesia, we have tables named after each purpose (exchanges, queues,
  runtime parameters and so on).
* In Khepri, we had about the same but the table names were replaced by
  a tree node in the tree. We ended up with one tree node per purpose
  at the root of the tree.

Khepri implements a tree. We could benefit from this and organize data
to reflect their relationship in RabbitMQ.

[How]

Here is the new hierarchy implemented by this commit:

    rabbitmq
    |-- users
    |   `-- $username
    |-- vhosts
    |   `-- $vhost
    |       |-- user_permissions
    |       |   `-- $username
    |       |-- exchanges
    |       |   `-- $exchange
    |       |       |-- bindings
    |       |       |   |-- queue
    |       |       |   |   `-- $queue
    |       |       |   `-- exchange
    |       |       |       `-- $exchange
    |       |       |-- consistent_hash_ring_state
    |       |       |-- jms_topic
    |       |       |-- recent_history
    |       |       |-- serial
    |       |       `-- user_permissions
    |       |           `-- $username
    |       |-- queues
    |       |   `-- $queue
    |       `-- runtime_params
    |           `-- $param_name
    |-- runtime_params
    |   `-- $param_name
    |-- mirrored_supervisors
    |   `-- $group
    |       `-- $id
    `-- node_maintenance
        `-- $node

We first define a root path in `rabbit/include/khepri.hrl` as
`[rabbitmq]`. This could be anything, including an empty path.

All paths are constructed either from this root path definition (users
and vhosts paths do that), or from a parent resource's path (exchanges
and queues paths are based on a vhost path).
2024-09-05 15:31:29 +02:00
..
amqqueue.hrl Closes #11434 2024-06-12 12:37:09 -04:00
amqqueue_v2.hrl
internal_user.hrl Khepri migration: match expected records 2023-10-30 09:09:53 +01:00
khepri.hrl Reorganize data in the Khepri store 2024-09-05 15:31:29 +02:00
mc.hrl Fix dead lettering 2024-05-13 11:00:39 +02:00
rabbit_amqp.hrl Support AMQP tracing 2024-06-05 13:38:15 +02:00
rabbit_global_counters.hrl Support AMQP 1.0 natively 2024-02-28 14:15:20 +01:00
vhost.hrl Remove pre-virtual_host_metadata feature flag compatibility code 2022-08-01 11:56:04 +02:00
vhost_v2.hrl