`
mryufeng
  • 浏览: 982368 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ETS & SMP

阅读更多
原文地址:http://erlang.org/pipermail/erlang-questions/2008-September/037905.html

还是老大们解释这个比较轻松 源码参见 erl_db.c

2008/9/3 Valentin Micic <>

>  Is ETS utilizing the same locking policy for all table types (namely:
> public, protected or private), and if so, would it be possible to relax
> locking for protected and private access?
>

We currently don't eliminate locking on private tables, mainly to support
ets:info/1,2. We may try to eliminate locks
on private tables in a future release. (But we are not sure it is
worthwhile. Taking a lock that is not already held by another
process is relatively cheap - it becomes expensive when several processes
want to take the same lock.)

However, we take different locks depending on the operation to perform. An
operation that only reads from the table
(such as ets:lookup/2) will take a read lock, while an operation that will
update the table (such as ets:insert/2) takes
a write lock. As long as no process has a write lock, any number of
processes can take read locks. If a process takes
a write lock, it will be exclusive (i.e. no other processes can have either
read or write locks).


> We've noticed that if more than one process requires an access to the same
> ets table (in SMP environment), the system slows down considerably due to
> the locking mechanism. It is quite possible to optimize this by fronting
> such a table with a dedicated process for request serialization -- works
> better as there is always only one proccess requesting a lock. Actually... as much as this works well for one table, not so sure how would
> such an "optimization" work for a large number of tables. By relaxing (or
> not having) a locking policy for (at least) tables with a private access,
> there would be no questions about it.
>

To access an ETS table, there are actually two locks that need to be taken.

1) A lock to access the meta table, to convert the numeric table identifier
to a pointer to the actual table.

2) The lock for the table itself (either a read or write lock, as described
above).


In R12B-4, the locking of the meta table has been optimized. There used to
be only one lock for the meta table,
but there are now different locks for different parts of the table;
therefore reducing the number of lock conflicts
for the meta table.

Therefore, if you have an application that accesses many different ETS
tables, performance should be slightly better
in R12B-4.

If you have an application that accesses a single ETS table (and write to it
frequently), there will still be lock
conflicts on the ETS table itself, so R12B-4 will not make much difference.

/Bjorn
--
Björn Gustavsson, Erlang/OTP, Ericsson AB

分享到:
评论

相关推荐

    ETS5 版本ETS5.7.5(官网下载)

    ETS5,全称为Engineering ToolSoftware 5,是KNX协会官方推出的一款专业级的智能建筑控制系统编程工具。这款软件主要用于设计、配置、调试以及维护基于KNX标准的智能家居和楼宇自动化系统。版本5.7.5是ETS5的一个...

    ETS5 中文免费 试用

    ETS5是来自德国菲尼克斯电气公司的工程软件,主要用于工业自动化领域的编程和配置,特别是针对KNX技术。KNX是一种国际标准,用于智能楼宇和家居自动化。ETS(Electrical Transmission System)5是ETS系列的最新版本...

    ETS300_364手册

    ETS300_364手册是一份详尽的文档集合,主要针对ETS300与ETS364测试机的使用和维护。这个压缩包包含26个PDF文件,涵盖了从硬件配置到软件系统,再到测试程序开发的全方位内容。下面我们将深入探讨这些关键知识点。 1...

    ets5.5.4中文版

    Ets5 V5.5.4简体中文版下载。Ets5 V5.5.4简体中文版下载。Ets5 V5.5.4简体中文版下载。Ets5 V5.5.4简体中文版下载。

    ETS5 最新调试教程视频

    ETS5(Engineering Tool Software Version 5)是KNX协会推出的一款强大的工程工具软件,用于设计、配置、调试和诊断基于KNX技术的智能建筑控制系统。KNX是一种国际标准(ISO/IEC 14543-3)的楼宇自动化通信协议,...

    ETS 5.6.6 和谐版

    ETS 5.6.6 和谐版是一款专用于KNX智能家居和智能楼宇系统的工程配置工具。这个版本主要是为教育和学习目的而设计的,提醒用户在商业环境中应使用官方正版软件,以确保合法性和获得全面的技术支持。 KNX(欧洲安装...

    ETS v5.7.2 中文演示版(支持5个项目的设备)

    ETS,全称是Engineering ToolSoftware,是由KNX协会开发的一款专业工具,用于设计、配置以及调试基于KNX技术的智能建筑控制系统。ETS v5.7.2 是该软件的一个特定版本,它支持最多5个项目的设备配置,适用于中小型的...

    Ets5 v5.5.2.rar

    ETS5(KNX Engineering Tool Software)是KNX协会推出的一款专业的智能家居控制系统编程软件,主要用于设计、配置、调试和诊断基于KNX技术的智能建筑系统。KNX是一种国际标准(ISO/IEC 14543-3),广泛应用于楼宇...

    ETS 5.6.5安装文件包

    ETS(Engineering ToolSet)是KNX协会开发的专业工具,用于设计、配置和调试基于KNX技术的楼宇自动化系统。KNX是一种国际标准(ISO/IEC 14543-3),在智能建筑领域广泛应用,它允许集成照明、温控、遮阳、安全和能源...

    ETS最新版软件仿真软件

    ETS(Engineering ToolSet)是KNX协会官方推出的专业软件,用于设计、配置和调试基于KNX/EIB(欧洲安装总线)智能家居控制系统。这个“ETS最新版软件仿真软件”是针对KNX系统的最新版本,旨在提供高效且精确的工程...

    KNX编程软件 ETS5 Professional 版本 5.6.6(官网下载)

    **ETS5 Professional 5.6.6:KNX编程的核心工具** ETS5(Engineering Tool Software)是KNX协会官方推出的编程软件,专为KNX智能建筑控制系统设计。它提供了全面的功能,让专业工程师能够设计、配置、调试和诊断...

    KNX调试软件ETS3附使用说明书.zip

    ETS3(EIB Tool Software 3)是一款专用于KNX系统的调试软件,由德国KNX协会开发,是KNX技术入门和专业应用的重要工具。KNX(欧洲安装总线)是一种全球公认的智能家居和楼宇自动化标准,它允许各种设备在同一个网络...

    KNX编程软件 ETS5 Professional 版本 5.7.4(官网下载)

    ETS5 Professional是KNX编程软件的一个重要版本,用于设计、配置和调试基于KNX技术的智能家居和楼宇自动化系统。KNX是一种国际标准(ISO/IEC 14543-3),它允许不同厂商的设备在一个网络中互相通信,实现照明、温控...

    KNX编程软件 ETS5 Professional 版本 5.7.6

    ETS5 Professional是KNX协会官方推出的编程软件,用于设计、配置和调试基于KNX技术的智能家居和楼宇自动化系统。版本5.7.6是该软件的一个稳定更新,它提供了丰富的功能和完善的技术支持。 KNX(欧洲建筑总线)是一...

    ETS 操作手册

    ETS,全称可能是“Enterprise Textile System”或特定领域的专有名词,在此上下文中,它似乎是一个专为制衣行业设计的操作系统或软件平台。这个“ETS操作手册”是为那些在服装产业工作的人准备的,旨在帮助他们理解...

    KNX编程软件 ETS5 专业版本 5.7.2

    **ETS5 专业版本 5.7.2:KNX编程软件详解** ETS5(Engineering Tool Software)是KNX协会官方推出的专业编程软件,用于设计、配置和调试基于KNX技术的智能家居系统。这个版本5.7.2是经过精心优化的,特别适合中国...

    ETS3安装使用说明1

    ### ETS3安装使用说明详解 #### 一、软件安装 **1.1 安装启动** - **启动安装:** 打开`Ets30f`文件夹,找到并运行`Ets3ProSetup.exe`来启动安装过程。 **1.2 语言设置** - **语言选择:** 在出现的语言选择...

    KNX编程软件中文版 ETS5 Professional 版本 5.7.6 2021最新版本

    **KNX编程软件ETS5 Professional 5.7.6详解** KNX(欧洲建筑总线)是一种国际标准(ISO/IEC 14543-3)的智能家居和楼宇自动化系统,它允许不同设备之间的通信,实现灯光、温控、窗帘、安全等系统的集成控制。ETS...

    KNX编程软件 ETS6 Professional 版本 6.0.6

    ETS即工程工具软件;作为制造商独立的配置软件工具,适用于在KNX系统内设计和配置智能家居和楼宇控制安装项目. ETS软件仅对使用Windows系统的电脑适用. 仅在插入USB硬件锁时适用. 与Windows 10系统兼容

    ETS破解插件

    EIB系统调试软件ETS的破解小插件,可以免费用ETS了!

Global site tag (gtag.js) - Google Analytics