maedamaのブログ

アプリケーションエンジニアです。最近は主に設計を担当しています。

mysql 自動partition更新ツールを作ってた。続.) Why I want to stop using range partition with timestamp column

https://github.com/maedama/mysql-partitioner とても昔の話なのだが http://maedama.hatenablog.com/entry/2014/05/16/144315 で記載してる問題を解決するツールを作ってたのでこちらに。 partitionとしてはidでしつつ、運用としては日付でpartition落とす…

忘備録: snowflake/shakeflakeについて

Twitterのsnowflakeについて 遅まきながらしったがこれは便利そうである。あとでちゃんと読む。 Unique identifierのgenerationは、 生成コスト+冗長性 <=> Idのdata size のトレードオフなわけで 生成コスト+冗長性に倒したのが、UUIDであり(128bit) Data s…

released reprow "reverse proxy for worker"

Release reprow which serves as reverse proxy for worker. For english document, please see below. maedama/reprowgithub.com microservice/soa化が ますます普及する中で Job Queue による非同期実装はとても一般的になりつつも、Job Queue Worker自体…

Microservice と Container技術 と Entropty

Microserviceは最近様々な、企業で適用されている。 Microserviceは、いわばプログラム間の連携方法に制約をかして、プログラム全体のエントロピーをさげる行為である。 このようなパターンは数多く存在していた、例えば Linux pipe Plack/WSGI/Rack etc (Si…

jbuilder_deferred_render作ってみました

Rails等でAPIを書いてると、いくつか問題にぶちあたります。 n+1問題がその一つなんですけど、Railsではこれをcontroller側で解決しろと話をしてます。 元々はWebページを作るフレームワークなので、そもそもAPIを作るのはどうなのみたいな話はありますが、…

released gem token_pagination. No more LIMIT 100000000 , 100 queries

token_pagination というgemをリリースしました。rubyは経験が浅くはじめてのgemです。 maedama/token_pagination · GitHub Railsには、offset/limit のqueryを前提としたgemはすばらしいものがありますが、offset/limit は RDBSのB-Tree Indexだとパフォー…

When to use distributed database system?

背景 DDBSについてあまりきちんと知らなかったので、各DDBSがどのような経緯でうまれているのか、その前提条件をしらべるために以下の記事を読んだのでそれについて。 http://cs-www.cs.yale.edu/homes/dna/papers/abadi-pacelc.pdf http://www.cs.berkeley.…

今更だが、RedisのSlaveのExpireは信用してはいけない

また、障害起因でのブログです。忘れないようにこちらにメモります。 http://trapezoid.hatenablog.com/entry/2013/02/10/035020 にも詳しくかいてあります。 とあるreplication をくんでいるRedisの系統があった。Replication をくんではいるものの、とある…

Why I want to stop using range partition with timestamp column

Partition 周りで社内で説明する事が有ったのでせっかくなのでブログをかきます。 注.) 僕自身はMySQLにさほど詳しくはないので、完全には鵜呑みにしない事をおすすめしますが 下記のようなテーブルがあったとします CREATE TABLE messages ( id int unsigne…

Insert ignore into、Select For Update と シュレディンガーの猫

Repeatable Read と シュレディンガーの猫 Repeatable Read のポリシーはシュレディンガーの猫と似ていると思う。つまり、状態が観測されたらそのTransactionで、それは決定事項になるという事である。 シュレディンガーの猫 http://ja.wikipedia.org/wiki/%…