summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2008-07-25 09:12:44 +0000
committerChristophe Romain <christophe.romain@process-one.net>2008-07-25 09:12:44 +0000
commitc68baa953e2c0c0419b9eebddb8f385a02d00874 (patch)
tree9811ff793d91ac7fb9612f487a1c7fad9bbfbc03 /src
parent* doc/guide.tex: Include example PAM configuration file (diff)
Speedup startup with many pubsub nodes (EJAB-669)
SVN Revision: 1491
Diffstat (limited to 'src')
-rw-r--r--src/mod_pubsub/mod_pubsub.erl3
-rw-r--r--src/mod_pubsub/nodetree_default.erl5
2 files changed, 3 insertions, 5 deletions
diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl
index 5df46172..7cdb9cd0 100644
--- a/src/mod_pubsub/mod_pubsub.erl
+++ b/src/mod_pubsub/mod_pubsub.erl
@@ -283,8 +283,7 @@ update_database(Host) ->
mnesia:delete_table(pubsub_node),
mnesia:create_table(pubsub_node,
[{disc_copies, [node()]},
- {attributes, record_info(fields, pubsub_node)},
- {index, [type, parentid]}]),
+ {attributes, record_info(fields, pubsub_node)}]),
lists:foreach(fun(Record) ->
mnesia:write(Record)
end, NewRecords)
diff --git a/src/mod_pubsub/nodetree_default.erl b/src/mod_pubsub/nodetree_default.erl
index 6dec6c5e..36b763df 100644
--- a/src/mod_pubsub/nodetree_default.erl
+++ b/src/mod_pubsub/nodetree_default.erl
@@ -70,8 +70,7 @@
init(_Host, _ServerHost, _Opts) ->
mnesia:create_table(pubsub_node,
[{disc_copies, [node()]},
- {attributes, record_info(fields, pubsub_node)},
- {index, [type,parentid]}]),
+ {attributes, record_info(fields, pubsub_node)}]),
NodesFields = record_info(fields, pubsub_node),
case mnesia:table_info(pubsub_node, attributes) of
[host_node, host_parent, info] -> ok; % old schema, updated later by pubsub
@@ -115,7 +114,7 @@ get_nodes(Key) ->
%% Node = mod_pubsub:pubsubNode()
%% From = mod_pubsub:jid()
get_subnodes(Host, Node, _From) ->
- mnesia:index_read(pubsub_node, {Host, Node}, #pubsub_node.parentid).
+ mnesia:match_object(#pubsub_node{parentid = {Host, Node}, _ = '_'}).
%% @spec (Host, Index) -> [pubsubNode()] | {error, Reason}
%% Host = mod_pubsub:host()