OTP&ETS】的更多相关文章

最近觉得实在是该梳理梳理erlang的框架内容了,所以整理了下. OTP(开放电信平台):并发系统平台, 特点:容错(erlang:get_stacktrace(),try-catch,trap_exit进程退出时候发送信息{'Exit',Pid,Reason},不会所有进程都崩溃而且可以由supervisor重启)--链路来容错. 监督(supervisor,重启机制). 可升级(code_change(gen_server)). 并发(spawn,消息(而非java|c的锁))--进程&消息…
转自:http://www.itkee.com/developer/detail-318.html 今天在家里闲来无事,实践了一下Erlang的Socket的功能.记录一下在过程中遇到的一些问题,以及编码的步骤. 1. 对于测试用例的介绍:Erlang编写TCP服务器.只做一次Accept,接收到Socket 之后开始收数据.用python编写Client,连接到服务器上:发送LEN(int)+CMD(short)+BODY(binary)格式的数据 包.用于熟悉Erlang如何做拆解包,数据读…
之前,在 [Erlang 0126] 我们读过的Erlang论文 提到过下面这篇论文: On Preserving Term Sharing in the Erlang Virtual Machine 地址: http://user.it.uu.se/~kostis/Papers/erlang12_sharing.pdf  摘要:In this paper we describe our experiences and argue through examples why flattening t…
  上周Erlang讨论群里面提到lists的++实现,争论大多基于猜测,其实打开代码看一下就都明了.贴出代码截图后有同学问这代码是哪里找的?   "代码去哪里找?",关于Erlang源码阅读的路线图江湖上只有一份残卷了.我觉得"代码在哪儿?"这类问题是信息不对称造成的,本身难度不大,就像<贫民窟的百万富翁>里面的情节:贾马尔知道市井生活中的零零碎碎却说不出国徽上的文字,我们就从电影中的这一幕开始本文的探索吧     内景,演播室—夜晚 普瑞姆:这个问题…
上一次说到了实现一个简单cache 的基本思路和想法, http://www.cnblogs.com/--00/p/erlang_ets_something_about_cache.html 在文末, 说到了判断single record 内存占用量. 这次继续说说Erlang 数据项内存的相关问题. 在Erlang efficiency_guide 文档中, 较为清楚的表述了Erlang 系统中不同数据类型的内存消耗, 在这简单贴一两个: Small integer 1 wordOn 32-b…
http://erldoc.com/ Open Telecom Platform application array asn1rt base64 binary calendar code dbg dict erlang ets file filelib gb_trees gen_tcp inet io lists make maps math mnesia net_adm os proplists random re rpc string sys unicode Erlang并发编程 Erlan…
概要: 内置的存储 描述: 这个模块是Erlang内置存储BIFs的接口.这些提供了在Erlang运行时系统中存储大量数据的能力,并且能够对数据进行持续的访问时间.(在ordered_set的情况下,参见下面,访问时间与存储的对象数量的对数成正比.) 数据被组织成一组动态表,可以存储元组.每个表都是由一个进程创建的.当进程终止时,表将被自动销毁.每个表在创建时都具有访问权限. 表分为四种不同的类型:set.ordered_set.bag和duplicate_bag.set或ordered_set…
名词解释和基本介绍 OTP 是 One-Time Password的简写,表示一次性密码. HOTP 是HMAC-based One-Time Password的简写,表示基于HMAC算法加密的一次性密码. 是事件同步,通过某一特定的事件次序及相同的种子值作为输入,通过HASH算法运算出一致的密码. TOTP 是Time-based One-Time Password的简写,表示基于时间戳算法的一次性密码. 是时间同步,基于客户端的动态口令和动态口令验证服务器的时间比对,一般每60秒产生一个新口…
最近在做一些和 NIF 有关的事情,看到 OTP 团队发布的 17 rc1 引入了一个新的特性“脏调度器”,为的是解决 NIF 运行时间过长耗死调度器的问题.本文首先简单介绍脏调度器机制的用法,然后简要分析虚拟机中的实现原理,最后讨论了一下脏调度器的局限性. 脏调度器机制的用法 了解 NIF 的同学都知道,在 Erlang 虚拟机的层面,NIF 调用是不会被抢占的,在执行 NIF 的时候调度器线程的控制权完全被 NIF 调用接管,因此除非 NIF 调用的代码主动交出控制权,否则调度器线程会一直执…
两次验证是广泛应用于各大站点的验证机制,我们今天利用Google Authentication来实现Odoo的两次验证,防止撞库或密码泄露等引起的安全问题. 1. 二次验证的原理 参见 http://www.zhihu.com/question/20462696 2. 服务器后端实现 主要利用python的otp库,不算复杂. 下载地址 https://pypi.python.org/pypi/pyotp 3.下载Google Authentication客户端 参见各大安卓市场 和 苹果App…