Merge pull request #412 from emqtt/0.14

0.14 ChangeLog and Bugfix
This commit is contained in:
Feng Lee 2015-12-17 23:55:22 +08:00
commit a870b87080
4 changed files with 45 additions and 22 deletions

View File

@ -2,6 +2,50 @@
emqttd ChangeLog
==================
0.14.0-beta(2015-12-18)
-------------------------
#### Highlights
Scaling to 1.3 Million Concurrent MQTT Connections on a 12 Core, 32G CentOS server.
New PubSub, Router Design (#402). Prepare for scaling to 10 millions on one cluster.
#### Enhancements
Improve the gproc_pool usage with a general emqttd_pool_sup
Improve the design of emqttd_pubsub, add a new emqttd_router module
Improve the design of the whole supervisor tree
Route aging mechanism to remove the topics that have no subscriptions
Improve the dashboard, mysql, pgsql, stomp, sockjs plugins
Add 'topics', 'subscriptions' admin commands
Avoid using mnesia table index and mnesia:index_read API to lower CPU usage
Subscribe timeout exception (#366)
Long Delay on Multiple Topic Subscription (#365)
Subscriptions persistence (#344)
emqttd_ctl: 'subscriptions' command to force clients to subscribe some topics (#361)
#### Bugfix
emqttd_sm: spec of lookup_session/1 is not right BUG (#411)
Observer application should be removed from reltool.config for 'wx' app is not available (#410)
#### Benchmark
1.3 million concurrent MQTT connections on a 12 Core, 32G CentOS Server, consume about 15G Memory and 200% CPU.
0.13.1-beta(2015-11-28)
-------------------------

20
TODO
View File

@ -1,20 +0,0 @@
DONE TODO 1. refactor gproc_pool usage
DONE TODO 2. emqttd_router, emqttd_pubsub to route message
DONE TODO 3. sup, pool_sup, manager......
DONE TODO 4. route ageing...
TODO 5. dashboard
TODO 6. emqttd_ctl
DONE TODO 7. transaction on route, and topic?
TODO 8. topics, subscriptions CLI
DONE TODO 9. LOG.....
DONE TODO 10. emqttd_sm.erl to remove mnesia:index_read...

View File

@ -56,7 +56,6 @@
{app, inets, [{incl_cond, include}]},
{app, compiler, [{incl_cond, include}]},
{app, runtime_tools, [{incl_cond, include}]},
{app, observer, [{incl_cond, include}]},
{app, goldrush, [{incl_cond, include}]},
{app, gen_logger, [{incl_cond, include}]},
{app, lager, [{incl_cond, include}]},

View File

@ -103,7 +103,7 @@ start_session(CleanSess, ClientId) ->
%% @doc Lookup a Session
%% @end
%%------------------------------------------------------------------------------
-spec lookup_session(binary()) -> pid() | undefined.
-spec lookup_session(binary()) -> mqtt_session() | undefined.
lookup_session(ClientId) ->
case mnesia:dirty_read(session, ClientId) of
[Session] -> Session;