Skip to content

Instantly share code, notes, and snippets.

View umegaya's full-sized avatar

iyatomi takehiro umegaya

View GitHub Profile
function _M.encode_binary_length(len)
return (math.ceil(tonumber(len) / 7) * 8) + 1
end
local encode_masks = {
{0x01, 0xfc},
{0x03, 0xf8},
{0x07, 0xf0},
{0x0f, 0xe0},
{0x1f, 0xc0},
{0x3f, 0x80},
@umegaya
umegaya / gist:c00e016d1c2b8fbedbcd
Created February 3, 2015 01:48
cockroach's distribute strategy
cockroach's stragegy:
rangeはsplitでしか増えない
splitの時、新しくできたrangeのreplicaは同じ(raftで元々のrangeのレプリカ全部に対してsplitが実行されるので、自然な挙動)
splitされたrangeはrebalanceされる
それ以外に、zone config(複数データセンターに配置する設定)に違反しているrangeがrebalanceされる
rebalanceの結果は全ノードにpropagateしないとリクエストをどこにroutingしていいかわからないのできついが、cockroachはどうするつもりか
=>
key - rangeの対応関係を保存するためのrangeが2段階あり、それは通常のrangeのように幾つかのレプリカに保存されている。
@umegaya
umegaya / file0.txt
Last active August 29, 2015 14:13
dockerでLD_PRELOADでライブラリを複数設定する ref: http://qiita.com/umegaya/items/b4e94209921b97ceb1ee
LD_PRELOAD="foo.so bar.so" baz
@umegaya
umegaya / gist:5d4e8ea04849ac58b570
Created January 19, 2015 05:39
cockroach style range management
-- contains all meta1 range data
root range
[
meta1_0000 : {meta1_0000..meta1_1000, 1.1.1.1, 1.1.1.2, 1.1.1.3}
meta1_1001 : {meta1_1001..meta1_2000, 1.1.2.1, 1.1.2.2, 1.1.2.3}
...
meta1_N001 : {meta1_N001..meta1_(N+1)000, 1.1.N.1, 1.1.N.2, 1.1.N.3}
]
@umegaya
umegaya / gist:5a1e8247a4ef2afde614
Created November 12, 2014 02:50
ゴキブリDBで調べること
### クラスタへの参加
- おそらくノードが自律的に参加する
- 最初の接続先をどのように取得しているか、
- gossipの仕組みとも関係あり。gossip自体の仕組みに接続先を探す能力がある?
### gossip protocol実装詳細
- deltaの作成、マージ方法
- おそらく一直線のバージョンではないので、レコードのキーとバージョンを見ているのではないか
### raft詳細
@umegaya
umegaya / gist:ee19066830be14ab269a
Last active August 29, 2015 14:08
ffi reflect examples
> ffi = require 'ffi'
> a = ffi.new('uint32_t')
> a
>>
>> print(a)
stdin:3: '=' expected near 'print'
> print(a)
cdata<unsigned int>: 0x0004c850
> refl = require 'reflect'
> t = refl.typeof(a)
@umegaya
umegaya / gist:68bb7a1f5c86f50db7e5
Last active August 29, 2015 14:07
lua-aws sqs request detail
okyougemusu-no-MacBook-Pro:lua-aws iyatomi$ luajit test/sqs.lua
requestto: http://sqs.ap-northeast-1.amazonaws.com:80/
sentbody: AWSAccessKeyId=&Action=CreateQueue&QueueName=testQueue&Signature=kS87ine8I4Kqcj5U1OvqQ%2FB04DvWBmbGCmYxIZwlPq0%3D&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-10-15T10%3A14%3A10%2B0900&Version=2012-11-05
result of query: 1 200 HTTP/1.1 200 OK
header: content-length 333
header: x-amzn-requestid 9f0dc946-eaff-5c2e-8a6c-85f1265b917b
header: content-type text/xml
create header <?xml version="1.0"?>
create value table: 0x000ecbc8
create.value CreateQueueResponse table: 0x000e91e0
@umegaya
umegaya / file0.txt
Last active August 29, 2015 14:07
google/cloud-sdkで作ったコンテナから認証情報を読み取れないとき ref: http://qiita.com/umegaya/items/e0d79b9e446f13b1e6a4
docker run -ti --name gcloud-config google/cloud-sdk gcloud auth login
@umegaya
umegaya / gist:3243b650a9273e0e4c7f
Created October 1, 2014 06:46
rebuild kubernetes apiserver on master node
sudo bash -c "GOPATH=/var/src/apiserver:/master-release/src/go/Godeps/_workspace/ go build -ldflags '-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitCommit 431caa93dfdbe86e14c8041e64ba10bcc80a7b40 -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitTreeState dirty -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitVersion v0.3-111-g431caa93dfdbe8-dirty -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitMajor 0 -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitMinor 3+' github.com/GoogleCloudPlatform/kubernetes/cmd/apiserver"
@umegaya
umegaya / gist:16ec0cc5ef69b661ee2c
Created September 30, 2014 10:30
strange access to gcp from external ip
x.y.z.w - - [30/Sep/2014:08:54:31 +0000] "HEAD https://a.b.c.d/?062DC6CD=1516067840&2213C83C=12B46F18&34C120D0=21E47521&...snip...&26BC961A=1264512866 HTTP/1.1" 401 0 "-" "-"