An OTP question...

In boss_controller.erl which is a gen_server instance, let's say multiple 
processes send "reload" atom to the gen_server

https://github.com/ChicagoBoss/ChicagoBoss/blob/master/src/boss/boss_router_controller.erl#L52

which does a sequence of steps:

ets:delete_all_objects(State#state.routes_table_id),
ets:delete_all_objects(State#state.reverse_routes_table_id),
ets:delete_all_objects(State#state.handlers_table_id),
load(State),


do the "reload" messages just que up and handle_call acts like a mutex 
around these sequential steps?

I was thinking on how to speed up routing in boss_controller, does it need 
to be a gen_server with all the contention around 1 process because all the 
routing data is stored in ETS, but then I notice that the 
boss_router_controller gen_server acts as a mutex to provide atomic 
manipulation of the routing tables in ETS.

Is boss_router_controller the best way to store and access routing info?

Cheers,

-rambocoder

-- 
You received this message because you are subscribed to the Google Groups 
"ChicagoBoss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at http://groups.google.com/group/chicagoboss.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/chicagoboss/99d3f555-d07f-4ae2-9582-da818856216e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to