mirror of
https://github.com/processone/ejabberd.git
synced 2024-10-01 14:44:07 +02:00
Fix pubsub_state mnesia table definition
Partially bound lookups keys only works efficiently if the table type if ordered_set. If the table is a set, then it is implemented as a hashtable, and if the lookup key isn't fully bound an entire table scan is neccesarly.
This commit is contained in:
parent
362d7f617d
commit
3e6b88cbc3
@ -726,6 +726,7 @@ update_state_database(_Host, _ServerHost) ->
|
|||||||
{atomic, ok} = mnesia:delete_table(pubsub_state),
|
{atomic, ok} = mnesia:delete_table(pubsub_state),
|
||||||
{atomic, ok} = mnesia:create_table(pubsub_state,
|
{atomic, ok} = mnesia:create_table(pubsub_state,
|
||||||
[{disc_copies, [node()]},
|
[{disc_copies, [node()]},
|
||||||
|
{type, ordered_set},
|
||||||
{attributes,
|
{attributes,
|
||||||
record_info(fields,
|
record_info(fields,
|
||||||
pubsub_state)}]),
|
pubsub_state)}]),
|
||||||
@ -756,6 +757,7 @@ update_state_database(_Host, _ServerHost) ->
|
|||||||
{atomic, ok} = mnesia:delete_table(pubsub_state),
|
{atomic, ok} = mnesia:delete_table(pubsub_state),
|
||||||
{atomic, ok} = mnesia:create_table(pubsub_state,
|
{atomic, ok} = mnesia:create_table(pubsub_state,
|
||||||
[{disc_copies, [node()]},
|
[{disc_copies, [node()]},
|
||||||
|
{type, ordered_set},
|
||||||
{attributes,
|
{attributes,
|
||||||
record_info(fields,
|
record_info(fields,
|
||||||
pubsub_state)}]),
|
pubsub_state)}]),
|
||||||
|
@ -70,6 +70,7 @@ init(_Host, _ServerHost, _Options) ->
|
|||||||
pubsub_subscription:init(),
|
pubsub_subscription:init(),
|
||||||
mnesia:create_table(pubsub_state,
|
mnesia:create_table(pubsub_state,
|
||||||
[{disc_copies, [node()]}, {index, [nodeidx]},
|
[{disc_copies, [node()]}, {index, [nodeidx]},
|
||||||
|
{type, ordered_set},
|
||||||
{attributes, record_info(fields, pubsub_state)}]),
|
{attributes, record_info(fields, pubsub_state)}]),
|
||||||
mnesia:create_table(pubsub_item,
|
mnesia:create_table(pubsub_item,
|
||||||
[{disc_only_copies, [node()]}, {index, [nodeidx]},
|
[{disc_only_copies, [node()]}, {index, [nodeidx]},
|
||||||
|
Loading…
Reference in New Issue
Block a user