2018-03-22

新奇的编程方式,改变你对编码的认知默认

并发

示例语言:ANI, Plaid
有些编程语言是默认情况下并发的,也就是说,每行代码都是并行执行的。
例如,假设你写了三行代码,A,B和C:

A;
B;
C;

在大多数编程语言中,A先执行,然后执行B,最后执行C。在像ANI这样的语言中,A,B和C都将同时执行。

ANI中代码行之间的控制流或排序,仅仅是代码行之间显式依赖关系的副作用。例如,如果B引用了A中定义的变量,则A和C将同时执行,而B只会在A完成后执行。

以下是ANI中的“Hello World”示例:
"Hello, World!" ->std.out
"Goodbye, World!" ->std.out
这两行代码并行执行,因此它们可以在控制台中以任何顺序结束。

现实中发生是有顺序的,如何控制? 通过加锁控制

如:

s = [string\];
"Hello, World!" ->s;
\s ->std.out;

第一行声明一个“锁存(latch)”(锁存器有点像变量),调用 s它包含一个字符串; 第二行将文本赋值 "Hello, World!"给s; 第三行“解锁” s并将内容发送给std.out。在这里,您可以看到ANI的隐式程序排序:由于每行都依赖于前一行,因此此代码将按写入的顺序执行。

Apache Ignite 2.4.0 发布,内存数据组织平台

https://ignite.apache.org/download.cgi
memory-centric distributed database, caching, and processing platform
for transactional, analytical, and streaming workloads,
delivering in-memory speeds at petabyte scale

牛逼的不行了,无所不能

Is Ignite an in-memory database?
Yes
Is Ignite an in-memory data grid?
Yes
Is Ignite a distributed cache?
Yes
Is Ignite a distributed database?
Yes
Is Ignite an SQL database?
Not full
Is Ignite a disk or memory-only storage?
Both
Is Ignite a NoSQL database?
Not exactly
Is Ignite a transactional database?
Not fully
Is Ignite a multi-model database?
Yes
Is Ignite a key-value store?
Yes

功能多,nosql总线,内存计算是个框什么都可以往里装。hadoop,spark解决了大数据存储问题,但没解决大数据计算痛点,多功能分布式内存计算是趋势。从官网的下图可以看出ignite有数据网格,计算网格,服务网格,sql网格,数据结构,流计算,文件系统,高级集群等模块,都是放在内存操作,我想主要追求的是能快速分析处理数据,实时内存应用,不像hadoop基于硬盘文件,发个命令下去,等喝完茶才有结果。


对于结构化数据处理,MB级用excel,pandas,sqlite,access,GB级用mysql,oracle,sql server,postgresql,TB级用mongodb,greenplum,PB级用hadoop,spark,EB级自己想办法。数据量越大操作起来越费劲越费时,只适合事后慢慢分析,从spark开始内存计算就是为了解决太费时问题,Apache Beam也延续了这种趋势,ignite主要内存功能强大,更方便适用,用内存来聚合数据源,处理数据。随着时间的推移,移动互联网物联网的使用,数据会成指数增长,不上大内存根本跑不快,服务器内存价格只会越来越便宜,内存计算只会越来越流行。

特性介绍

https://www.zybuluo.com/liyuj/note/293596

超高性能键值存储数据库 Anna

Anna 是伯克利 RISE 实验室推出的键值存储数据库,也是一个具备惊人的存取速度、超强的伸缩性和优秀的一致性的 KVS。

Anna 的性能和伸缩性主要归功于它的完全无协调机制,节点工作进程有 90% 的工作负载是在处理请求,而其他大部分系统(如 Masstree 和英特尔的 TBB)只有不到 10% 的时间在处理请求,它们其余的 90% 时间花在了等待协调上。不仅如此,其他系统因为使用了共享内存,还会出现处理器缓存击穿问题。

Anna 不仅速度快,在一致性方面也达到了很高的水准。多年前,他们发布的事务协议 HATs 就已表明,无协调的分布式一致性和事务隔离性存在很大的提升空间,包括级联一致性和读提交事务级别。Anna 将 Bloom 的单格子组合设计模式移植到了 C++ 中,是第一个实现了上述所有级别一致性的系统。当然,也是因为设计上的简洁,才能达到如此快的速度。

Bedrock

基于 Anna 开发一个新的扩展系统,叫作 Bedrock。Bedrock 运行在云端,提供了无需人工干预、低成本的键值存储方案,而且是开源的。

无协调 actor 模型的伸缩性

在无协调 actor 模型中,每个 actor 对应一个线程,对任何一个共享状态都有自己的一份私有拷贝,并通过异步广播将更新通知给其他 actor。在多核服务器上,这种模型比传统的共享内存模型的性能要高出一个数量级。

一个对比实验,将 Anna 与其他基于共享内存的 TBB、Masstree 和自己实现的一个键值存储系统(姑且把它叫作“Ideal”)进行了对比。他们在 AWS 的 m4.16xlarge 实例上运行实验,每个实例配备了 32 核的 CPU。实验中使用了 1 百万个键值对,键的大小为 8 字节,值的大小为 1KB。在实验过程中,他们基于 zipfian 分布和各种系数生成不同的压力负载,模拟不同层次的冲突。
在第一次实验中,他们对比了 Anna 与 TBB、Masstree 和 Ideal 在单台服务器上的吞吐量。他们逐渐增加线程数量,直到达到服务器 CPU 核数的上限,并观察它们的吞吐量。



在高并发情况下,线程数与吞吐量的变化关系,其中 zipf 系数为 4


在高并发情况下,CPU 时间的使用情况。CPU 时间被分为 5 类:处理请求(RH)、原子指令(AI)、合并格子(LM)、广播(M)和其他。最右边一栏是 L1 缓存击穿数量(CM)。

从图中可以看出,在这样的负载压力下,TBB 和 Masstree 几乎失去了并行能力。因为大部分是更新操作,针对同一个键值的并行更新操作会被串行化,它们需要同步机制来防止多个线程同时更新同一个键值。因此,随着线程数量的增加,它们性能也只能趋于平缓。Ideal 虽然比 TBB 和 Masstree 的性能高出 6 倍,但相比 Anna,还是差了很多。尽管它没有使用同步机制,但在多个线程修改共享内存地址时,仍然存在缓存一致性方面的开销。

相反,在 Anna 中,更新操作是针对本地状态进行的,不需要进行同步,并定时通过广播进行变更交换。在高并发情况下,尽管它的性能仍然受限于其复制系数,但比基于共享内存的系统要好很多。Anna 有 90% 的 CPU 时间用于处理请求,花在其他方面的时间则很少。可见,Anna 的无协调 actor 模型解决了键值存储系统在多核环境里的伸缩性难题。

Ref:
https://www.oschina.net/news/94083/six-programming-paradigms-that-will-change-how?from=20180318
https://www.zhihu.com/question/33982387/answer/152497769
https://mp.weixin.qq.com/s/3WmGpZkEuSz-ox_2CPCsqg

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容