ETS是Erlang内置的内存数据库,可用于多进程共享数据,具有并发读写的性能,文章就这点展开探讨,重点说说ets并发读写两个参数的优缺点及适用场合。
比如新建一个person的ets表:
ets:new(person, [set, public, named_table, {write_concurrency, true}, {read_concurrency, true} ]).
说说ets并发读写的两个参数:write_concurrency / read_concurrency
write_concurrency(并发写)
可以提高多进程并发写ets的效率。通常来说,ets写数据时整张表是锁定的,其他进程不能进行读写直到前面的操作完成。并发写可以改变这个情况,同一个表