タグ

ブックマーク / siguniang.wordpress.com (5)

  • FlywayでDBスキーマのマイグレーションをしてみた

    Background 突然引き継ぐことになった案件では、フレームワークにデータベースマイグレートの仕組みがなく、 ORM も使っていなかったので、後付でデータベースマイグレーションを用意してあげる必要があった。 Java で書かれた Flyway を使うと、いくつかのルールを覚え、ベタの SQL を書くだけで、運用で発生する基的なマイグレートを実現出来たので、使い方をメモ。 環境 Ubuntu 10.04 MySQL 5.1 Flyway 2.2.1 Java(JDK7) Flyway は Java のコードから呼び出せたり、 Ant/Maven/Gradle といったツールと連携出来たりと jvm 系エコシステムと親和性が高い。今回は、非 Java システムということと、僕自身 Java には疎いので、コマンドライン版の Flyway を利用。 Installation Install

    FlywayでDBスキーマのマイグレーションをしてみた
    yyamano
    yyamano 2016/02/29
  • Linux上のメモリーベースファイルシステムtmpfsについてメモ

    Summary バックエンドがブロックデバイスではなくスワップ。メモリに乗らなくなったら、スワップ領域を使う。 ファイルシステムの容量は指定可能(デフォルトでは RAM の半分)。あとから変更することも可能。 容量はファイルシステム作成時に予め確保されるわけではなく、ファイルシステム上の容量に応じて確保する。 リブートすると、すべてのファイルは失われる Use Case 主な用途 anonymous mmap と System V 共有メモリではカーネル内で外からわ見えない形で tmpfs を利用 glibc の Posix 共有メモリ/セマフォでは /dev/shm 以下を利用 ディスクI/O が大量に発生するようなテストを高速化するために利用 キャッシュ/セッションファイルの出力先として利用 tmpfs setup 新規に tmpfs をマウント # mkdir -pv /tmp/ne

    Linux上のメモリーベースファイルシステムtmpfsについてメモ
  • シーケンスの代わりにuuidをIDとして使う

    stop using numbers as IDs. just use UUIDs. seriously — Postgres: The Bits You Haven’t Found by pvh UUID の違い v1 Generate a UUID from a host ID, sequence number, and the current time. v3 Generate a UUID from the MD5 hash of a namespace UUID and a name. v4 Generate a random UUID v5 Generate a UUID from the SHA-1 hash of a namespace UUID and a name. この内、ID として利用できるのは v1 と v4 の2つ。v1 は最後 48 ビットがハード固有のノー

    yyamano
    yyamano 2014/01/08
  • exponential backoffのメモ

    exponential backoffとは? データ送信処理が失敗して再送信するときに、失敗回数が増えるに連れて再送信するまでの待ち時間を指数関数的に増やす仕組みを exponential backoff という。 有名な例としては Carrier sense multiple access with collision detection (CSMA/CD) や Carrier sense multiple access with collision avoidance(CSMA/CA) といった通信方式で、失敗回数 N に対して、[0, 2^N-1] からランダムな数を選び、その slot time 分だけ待って再送信するようになっている。 ランダムに選んでいるのは、複数の通信が同じタイミングで失敗した時に、また同じタイミングで再送されないようにするため。 また、失敗回数が一定値を超え

    exponential backoffのメモ
  • Memory Overcommit

    redis を起動すると、以下の2行目のように「RAMが少ない場合は vm.overcommit_memory = 1 にするように!」という警告メッセージが表示される。 $ ./redis-server [9703] 19 Feb 01:02:07 * Server started, Redis version 2.4.7 [9703] 19 Feb 01:02:07 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.over

    Memory Overcommit
    yyamano
    yyamano 2013/07/26
    ./redis-cli info
  • 1