<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[收藏夹+记事本]]></title><description><![CDATA[仅作个人记录]]></description><link>https://blog.youkuaiyun.com/swedenfeng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; swedenfeng]]></copyright><item><title><![CDATA[Leveldb 实现原理(转)]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54836208</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54836208</guid><author>swedenfeng</author><pubDate>Thu, 02 Feb 2017 16:01:12 +0800</pubDate><description><![CDATA[LevelDb日知录之一：LevelDb 101


　　说起LevelDb也许您不清楚，但是如果作为IT工程师，不知道下面两位大神级别的工程师，那您的领导估计会Hold不住了：Jeff
 Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师，为数甚少的Google
 Fellow之二。

　　Jeff Dean其人：http://research.goo]]></description><category></category></item><item><title><![CDATA[Good answer to "Riak secondary indices" performance impact]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54812373</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54812373</guid><author>swedenfeng</author><pubDate>Wed, 01 Feb 2017 22:00:32 +0800</pubDate><description><![CDATA[##A very good answer to help understand levelDB and secondary indices. Copied from stackoverflow.


#Question







1down
 votefavorite







What is the performance impact of in]]></description><category></category></item><item><title><![CDATA[Why Erlang suggest avoiding defensive programming( Joe Armstrong )]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54578281</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54578281</guid><author>swedenfeng</author><pubDate>Wed, 18 Jan 2017 01:36:39 +0800</pubDate><description><![CDATA["defensive programming" (Was: Re: How nice should I be on exit?)


Joe Armstrong 
Wed Mar 5 12:25:08 CET 2003
Previous message: "defensive programming" (Was: Re: How nice should I be on exit?)
N]]></description><category></category></item><item><title><![CDATA[Erlong匿名函数写递归的两种方式.]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54588538</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54588538</guid><author>swedenfeng</author><pubDate>Wed, 18 Jan 2017 01:24:25 +0800</pubDate><description><![CDATA[##计算N的阶层


Erlang 17及之后的版本


Fun = fun Fun(0) -> 1; 
           Fun(N) -> N * Fun(N - 1) 
       end.


1> Fun(10).
3628800


在 Erlang 17之前的版本, 我们必须把函数名作为参数带到匿名函数里面
  
Fun = fun(Fun, ]]></description><category></category></item><item><title><![CDATA[在Docker中运行Riak KV Cluster]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54565670</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54565670</guid><author>swedenfeng</author><pubDate>Mon, 16 Jan 2017 00:44:14 +0800</pubDate><description><![CDATA[以下操作基本上是follow Baho的官方指南.
http://basho.com/posts/technical/riak-quick-start-with-docker/



Step 1)设置DOCKER HOST环境变量
$ export DOCKER_HOST="tcp://127.0.0.1:4243"


Step 2) Build Riak镜像

2.1)]]></description><category></category></item><item><title><![CDATA[如何在Node-RED中使用Riak KV]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54424705</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54424705</guid><author>swedenfeng</author><pubDate>Sat, 14 Jan 2017 07:23:37 +0800</pubDate><description><![CDATA[下面的步骤记录了从scratch直到可以在Node RED流程中CRUD  Riak KV中的数据.





Step 1) 安装Riak KV, 并且可以运行.

1.1) 下载及安装请见下面的link

http://docs.basho.com/riak/kv/2.2.0/downloads/





1.2)启动riak KV

$sudo riak]]></description><category></category></item><item><title><![CDATA[如何在Node-RED中使用Elasticsearch]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54416828</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54416828</guid><author>swedenfeng</author><pubDate>Sat, 14 Jan 2017 03:52:59 +0800</pubDate><description><![CDATA[下面的步骤记录了从scratch直到可以在Node RED流程中CRUD  Elasticsearch中的数据.



Step 1) 安装Elasticsearch, 并且可以运行.
1.1) 安装oracle java8, 最新版本的Elasticsearch需要java version8. 查看java版本和路径确实都是指向 version8
$sudo apt-get inst]]></description><category></category></item><item><title><![CDATA[如何在Node-RED中使用MQTT node]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54411846</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54411846</guid><author>swedenfeng</author><pubDate>Sat, 14 Jan 2017 01:54:55 +0800</pubDate><description><![CDATA[在我使用的这个Node RED版本中(V.0.16.0), 并不包括MQTT node, 在最新的版本中是否已经包括并不清楚. 
下面的步骤记录了从scratch直到可以在Node RED流程中触发MQTT消息的subscribe, publish.


Step 1)   安装Node RED, 并且能够运行
1.1) 安装node.js, Node RED是基于node.js开发的I]]></description><category></category></item><item><title><![CDATA[Why Threads and Basic Thread Management]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54347730</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54347730</guid><author>swedenfeng</author><pubDate>Wed, 11 Jan 2017 20:26:30 +0800</pubDate><description><![CDATA[Why Threads?


Some years ago I saw a letter-to-the-editor in response to the need of a multitasking system, the writer said ``I don't care about multitasking because I can only do one thing at
 a]]></description><category></category></item><item><title><![CDATA[连接多个shell到同一个Erlang VM]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54345618</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54345618</guid><author>swedenfeng</author><pubDate>Wed, 11 Jan 2017 17:43:53 +0800</pubDate><description><![CDATA[Erlang shell可以连接多个shell到同一个VM,  可以是多个shell和VM在同一个node上, 也可以是shell和VM在不同的node上, 连接方式是一样的.


Step 1) 启动第一个Erlang shell, VM也随着一起启动, 设置node名称是mynode1, cookie为mypwd
kilxxen2768: ~  > erl -sname mynode1]]></description><category></category></item><item><title><![CDATA[为什么会出现long_schedule 问题.]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54342011</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54342011</guid><author>swedenfeng</author><pubDate>Wed, 11 Jan 2017 12:06:43 +0800</pubDate><description><![CDATA[在下面这个例子里, 首先在Erlang Shell里面启动monitor, 监视long_schedule事件. 然后启动一个新进程，进行一些耗时的操作, 可以观察到shell持续不断收到
long_schedule事件,时长从几十毫秒到几百毫秒不等. 如果把lists:seq换成BIF函数,效果也是类似,可是既然BIF函数都有trap机制, 在运行了一部分（几十个 ？）
reduction后]]></description><category></category></item><item><title><![CDATA[Rebar3 Raw Dependency问题及修复.]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54340014</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54340014</guid><author>swedenfeng</author><pubDate>Wed, 11 Jan 2017 07:14:32 +0800</pubDate><description><![CDATA[在一个Erlang应用里,  有可能会有对其他应用的依赖, 我们可以把这个依赖定义在rebar.config 文件中. 但是如果依赖的应用不符合rebar app的要求的结构, 编译的时候就会报这个错误("Dependency failure : Application jsonx not found at the top level of directory ...").


导致错误的原]]></description><category></category></item><item><title><![CDATA[How to run program or process on specific CPU cores on Linux(转)]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54177524</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54177524</guid><author>swedenfeng</author><pubDate>Sat, 07 Jan 2017 19:51:33 +0800</pubDate><description><![CDATA[How
 to run program or process on specific CPU cores on Linux

Last updated on October
 29, 2013 Authored by Dan
 Nanni 
14
 Comments


As multi-core CPUs become increasingly popular on serv]]></description><category></category></item><item><title><![CDATA[Data Modeling in Riak(转)]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54169037</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54169037</guid><author>swedenfeng</author><pubDate>Sat, 07 Jan 2017 05:40:00 +0800</pubDate><description><![CDATA[Data modeling
It can be hard to think outside the table, but once you do, you may find interesting patterns to use in any database, even a relational one.sql-databases
sql-databases. Feel free to us]]></description><category></category></item><item><title><![CDATA[A Peek Inside the Erlang Compiler(转)]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54166898</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54166898</guid><author>swedenfeng</author><pubDate>Sat, 07 Jan 2017 04:36:29 +0800</pubDate><description><![CDATA[A Peek Inside the Erlang Compiler

Erlang is a complex system, and I can't do its inner workings justice in a short article, but I wanted to give some insight into what goes on when a module is comp]]></description><category></category></item><item><title><![CDATA[Erlang 实现互斥量]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54087311</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54087311</guid><author>swedenfeng</author><pubDate>Thu, 05 Jan 2017 07:15:29 +0800</pubDate><description><![CDATA[以下代码片段来自"Erlang编程指南",  值得注意一点的是stop/0函数发送停止消息以后, mutex进程仅在free状态下处理, 也就是说如果目前mutex没有人使用,直接结束mutex,如果正在使用,并且有等待在此信号量上的其他进程，那么这些正在使用的进程和正在queue的进程依然可以获取到mutex执行完他们的任务,  但是所有在stop信号之后的wait调用就不会被处理了, 比较符合]]></description><category></category></item><item><title><![CDATA[A good statement about CAP theory.]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/54083307</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/54083307</guid><author>swedenfeng</author><pubDate>Thu, 05 Jan 2017 03:31:50 +0800</pubDate><description><![CDATA[#The statement below is from stackoverflow

Consistency means that data is the same across the cluster, so you can read or write to/from any node and get the same data.

Availability means the abi]]></description><category></category></item><item><title><![CDATA[Erlang进程创建时间统计及SMP现象.]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/53989537</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/53989537</guid><author>swedenfeng</author><pubDate>Tue, 03 Jan 2017 05:13:11 +0800</pubDate><description><![CDATA[看到Erlang编程指南里面的一个"进程创建"的性能基准测试，想放到我的环境里面用来对比一下打开SMP和关闭SMP的情况下的性能差异，结果和我未测试前想象的有点不一样.


#用例 1, 创建的进程之间有单向的消息发送.     SMP  4:4
7> timer:tc(create_process, start, [100000]).]]></description><category></category></item><item><title><![CDATA[多核处理器&类UNIX系统 -> 之多进程和多线程性能比较]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/53981006</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/53981006</guid><author>swedenfeng</author><pubDate>Mon, 02 Jan 2017 18:18:56 +0800</pubDate><description><![CDATA[网络上有很多讨论关于在*NIX系统在SMP环境下到底是应该用多线程还是多进程, 到底哪一个有更好的性能,  比如有很多人认为考虑到linux使用1-1线程模型（对内核来说, 线程就是一个进程）并且系统已经为进程处理做了很多优化,效率提升, 所以在liunx SMP环境下, 多进程和多线程几乎有做一些的性能, 加上多线程得考虑locking,更加容易导致问题. 有人认为无论是创建还是切换, 线程肯定]]></description><category></category></item><item><title><![CDATA[Erlang服务器内存耗尽调查(转)]]></title><link>https://blog.youkuaiyun.com/swedenfeng/article/details/53903662</link><guid>https://blog.youkuaiyun.com/swedenfeng/article/details/53903662</guid><author>swedenfeng</author><pubDate>Wed, 28 Dec 2016 01:59:57 +0800</pubDate><description><![CDATA[本文描述Erlang服务器内存耗尽bug的解决过程。
首先说明一下问题，服务器1千多人在线,16G内存快被吃光。玩家进程占用内存偏高：


接下来是解决过程。

第一步:
查看进程数目是否正常? erlang:system_info(process_count). 进程数目合理

第二步:
查看节点的内存消耗在什么地方?
> erlang:memory().

[{tot]]></description><category></category></item></channel></rss>