`
javatoyou
  • 浏览: 1083154 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Erlang: Scalaris 以及内建的 json parser 支持

阅读更多

出处: http://erlang-china.org/misc/scalaris_and_build-in-json.html


最近比较活跃的 Erlang 社区事件是 Scalaris 的代码公布以及 火热的 json BIF 讨论。

Scalaris 就是我们在上一篇中提到的 Alexander Reinefeld 在 Erlang eXchange 2008 上展示的神秘的 Yet An Other Key-Value DB 项目。目前它的源码已经“全文公开”的 host 在 google code 上了,在 [这里] 还有一份 pdf 的 Slide 可以看,比起其他的两个项目,其特色是:

    All In Memory 数据存储在 gbtree 中 —— 目前还没有提供存储到磁盘的特性。
    实现了N多传说中的算法。比如,用来在 P2P 的 DHT 网络中寻址的 Chord 算法 和用来进行数据备份的 Paxos 算法

据说代码写得相当清晰,极具学习价值。(默念10遍: OpenSource 就是好,就是好,就是好来,就是好)。

另外一件事就是 Joe 老爷爷最近提出了一个 EEP (Erlang Enhancement Process —— Erlang 的特性增强过程,类似于 Java 的 JCP) 要增加一个 Json <--> Term 的 BIF (内建函数)。确实也该如此,现如今 Json 大有称霸江湖的意思,Erlang 的世界里也已经有了 N 多个版本的 Json <--> Term 库,我至少已经领教过 4 个不同的版本了,每个库的 spec 都“略有不同”,颇有些“各自为战,谁都不爽”的意思。推出一个受到广泛认可的 BIF 无疑能够让这个世界立马变得清静许多。

说实话 Json <--> Term 乃至在语法之中直接加入 Json 的支持都算不上是什么难事,但相比由 OTP Team 在下一个版本的 Erlang 中静悄悄的加入某个 BIF 的“独裁”方式, EEP 无疑会是一个更社区化的过程。也就是说,它必然会经历 “提案,方案,辩论,投票” (或类似)的民主化过程,很多时候,这会很“乱糟糟”和“低效”。不过,这些代价绝对能值回票价 —— 最终我们会得到一个无论是在效率还是 API 上都更优秀的 Json <--> Term BIF 。除此之外,对于广大的使用者而言,这个[ “辩论”和“争吵”]的过程,也富有营养 —— 我们不仅(将会)知道最终的方案是什么,还能知道这个方案是怎么来的(比如说,它 PK 掉了哪些其他方案,它们存在着什么样的问题),这一切就发生在眼前。

分享到:
评论

相关推荐

    Erlang:并行计算和云计算

    他的作品《孟岩谈Erlang:并行计算和云计算》详细解读了Erlang在这些领域的应用,涵盖了语言基础、并发模型、分布式系统设计以及实际案例分析,是学习Erlang和理解其在现代计算领域应用的重要参考资料。 综上所述,...

    erlang-23.2.1-1.el7.x86-64.rpm

    Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...

    erlang使用post方式发送json数据

    学习erlang的时候尝试编写的小例子,使用post方式发送json数据来进行http请求,希望能帮到大家~

    Introducing Erlang: Getting Started in Functional Programming

    Introducing Erlang: Getting Started in Functional Programming by Simon St. Laurent English | 6 Mar. 2017 | ASIN: B06XHSP5SH | 212 Pages | AZW3 | 1.85 MB If you’re new to Erlang, its functional style...

    分布式应用Erlang:Erlang_OTP_19_win64

    安装后,开发者可以获得完整的Erlang编程环境,包括编译器、运行时系统以及OTP库,从而开始构建分布式应用。 总的来说,Erlang OTP 19_win64是开发高效、稳定和可扩展的分布式应用程序的理想选择,尤其适用于电信、...

    并行编程语言Erlang:Erlang OTP框架及其应用开发指南

    首先,文档简述了Erlang语言的特点,包括轻量级进程、模式匹配和热代码升级等特性,以及它在构建高可用、高并发系统中的优势。接着,文档深入讲解了Erlang OTP框架的核心概念,包括监督树、进程模型、行为模式和热...

    erlang programming

    6. **热升级与无中断服务**:Erlang支持代码热升级,即在不中断运行的情况下更新应用程序代码,这对于保持高可用性和服务连续性至关重要。 7. **并发性能优化**:Erlang的并发性能优化涉及进程数量的控制、消息队列...

    programming_erlang:章节练习和笔记

    编程 Erlang:并发世界的软件(练习) 这是我完成的练习集。 我所做的每一章都在一个单独的目录中,例如chapter_1等。我还计划将我在每章中沿途捡起的markdown格式的笔记放在一起。 最终将在本自述文件中找到更重要...

    Erlang入门:构建application练习4(进程link的作用)

    在Erlang编程语言中,进程是其核心特性之一,它们是并发执行的实体,类似于其他语言中的线程。在Erlang中,进程间通信(IPC)是通过消息传递来实现的,而`link`机制是这个通信模型中非常重要的一部分。本教程将通过...

    RabbitMQ3.9.13和ErLang24.2版本

    RabbitMQ 3.9.13是该软件的一个稳定版本,提供了多项改进和修复,确保了高可用性、性能优化以及对各种客户端库的支持。 1. **高可用性**:RabbitMQ 3.9.13在集群模式下提供高可用性,通过镜像队列和网络分区处理...

    ERLANG SCALARIS结构详解

    SCALARIS是一个用ERLANG开发的KEY/VALUE分布式数据库系统。德国人开发的。

    scalaris:Scalaris,一个分布式的交易键值存储

    Scalaris是可扩展的,可交易的,分布式的和容错的键值存储,对于在线数据库和Web 2.0服务具有很强的数据一致性。 可以在《找到说明 可以在项目主页上找到其他信息,包括rpm软件包的下载链接: :

    Centos7安装RabbitMQ的文档和安装包(包含erlang安装包).rar

    RabbitMQ基于Erlang编程语言,因此在安装RabbitMQ之前,我们需要先安装Erlang环境。本文将涵盖以下几个关键知识点: 1. **Erlang安装**: Erlang是RabbitMQ的基础,因为RabbitMQ是用Erlang编写的。首先,我们需要...

    erlang json rfc4627

    在Erlang中处理JSON数据通常需要使用第三方库,因为Erlang的标准库并没有内置的JSON支持。"erlang-rfc4627-master.zip" 提供的可能就是一个Erlang实现的JSON库,该库可能包含了对JSON的解析和序列化功能,帮助开发者...

    erlang资源

    这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入理解和学习Erlang语言的关键资料。 《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发...

    win64_erlang24.2.2

    win64位系统 。 erlang24.2.2。

    某流水过千W的erlang游戏后端

    某流水过千W的erlang游戏后端项目,揭示了Erlang在处理大规模并发、实时性以及稳定性方面的强大能力。 1. **并发处理**:Erlang的轻量级进程(Lightweight Processes)机制使得它能够轻松处理大量并发连接,每个...

    erlang19安装包

    Erlang/OTP 19.1 is a service release containing mostly bug fixes, as well as a number of new features and characteristics improvements. Some highlights of the release are: erts: Improved dirty ...

    jiffy:适用于Erlang的JSON NIF

    Jiffy-Erlang的JSON NIF JSON解析器作为NIF。 这是对我在Yapl的EEP0018中所做的工作的完整重写。 这个新版本是一个手工制作的状态机,它在不对解析的JSON施加任何约束的情况下,尽其最大的努力是使其尽可能快和高效...

    meta-erlang:支持Erlang和Elixir

    OpenEmbedded / Yocto Project层,用于Erlang和Elixir支持 此层提供对与和/或构建系统一起使用的和支持: 文献资料 请参阅。 依存关系 该层取决于: URI:git://git.openembedded.org/bitbake分支:主 URI:git:...

Global site tag (gtag.js) - Google Analytics