仕事やプライベートで調べたことのメモ書きなど(@札幌)

仕事やプライベートで調べたこと、興味ある事のメモ書きです。2016年4月から札幌で働いてます。※このブログは個人によるもので、団体を代表するものではありません。

MySQL最新ソリューションセミナー ~エンタープライズに求めるべき高可用性&セキュリティ~(2017/2/24@新宿)

スマートスタイル社主催のセミナー「MySQL最新ソリューションセミナー ~エンタープライズに求めるべき高可用性&セキュリティ~」に参加しました。
MySQL最新ソリューションセミナー ~エンタープライズに求めるべき高可用性&セキュリティ~開催のお知らせ(2017/2/24開催) | MySQLチューニング/保守サポート/コンサルティングのスマートスタイル

多くの方が参加。
特に、MySQL Group Replicationについての質問が多く、MySQLでHAが課題になっているということが非常に強く感じられました。
ただ、まだ出始めということもあり、実際のマルチマスターで本番として使うにはお勧めしないとのこと。もしマルチマスターが必要な場合は、今だと実績のあるGalera Clusterになるようです。他には、
MySQL Group Replication | MySQL High Availability
galeracluster.com
Oracleの方によると、今は正直Galeraに機能で負けているところもあるが、年内には同等機能までいけるとのことです。

参加された方もいろいろ実験中とのことで、あれどうなるの?みたいな感じで盛り上がってました。
また、Proxyと組み合わせましょうということで、以下があります。
www.proxysql.com
mariadb.com

なお、スマートスタイル社はいずれもサポートしておりますので、ご相談は同社まで。

Sapporo Tech Bar #7開催 (2017/2/10@札幌)

2017年2月のSapporo Tech Barは、雪まつりの中の開催でした。
www.db-tech-showcase.com
今回も多くの方に参加いただき、とても盛り上がる会でした。

数多くの翻訳をしたうえで、さらに普段Pythonを使って分析業務をされているうえでの使いやすいライブラリ、いつも使っているライブラリなど、Pythonによるデータ分析というだけでも多くの情報が氾濫している中、何をどう選んでいくとよいかの参考になったのではないでしょうか?

分散処理というとなかなか手を付けづらいところかもしれませんが、どんどんデータが増えてくると避けては通れない道かもしれません。

そして、注目はApache Arrow!
Apache Arrow Homepage
これはカラムナーデータを異なるアーキテクチャー間でやり取りするためのもののようです。

カラム型でデータを保持している場合、通常はデータがいい感じに圧縮されています。
そのデータを異なるアーキテクチャー間でやり取りする場合、これまでは、一度そこから取り出して、違うところに入れなおす、という手順が必要でした。そこを共通のフォーマットでやり取りできるようになると、データの変換処理が効率的に行えるようになるはずです。
講演に出てきた、Parquet、Pandasなどでのデータのやり取りが非常に楽になるだろうとのことで、注目です。
PyDataのWesさんが中心的に活動されている模様で、今後の展開に目が離せません!

Sapporo Tech Bar #6開催 (2017/1/25@札幌)

今年1発目のSapporo Tech Bar、開催しました!
www.db-tech-showcase.com

今回は地図情報スペシャルということで、MIERUNE, LLC.さんの古川さん、朝日さんにお話しいただいたのですが、超超面白かったです。
www.mierune.co.jp

私自身は今まで地図情報とかとは無縁だったのですが、なんだかとても、地図情報を使った、"なにか"を作りたくなりましたね。やはり地図・位置情報って、ビジュアル面があるので、見てるだけでも面白いし、いいなぁ、いいなぁ、という感じです。
仕事でできたら面白いでしょうね。きっと苦労もあるのでしょうが。

いろいろご紹介てどれも面白かったのですが、最も印象に残ったのはこれ。自分でGoogle Street Viewのようなものを作れるとか・・・。
Crowdsourced Street-level Photos
札幌とか、夏と冬のStreetView登録できると面白いのでは?

あと、スーパーボール中のTwitterのビジュアル化。
Odyssey.js sports template
地図情報に時間的な経過をつけると面白い。

さすれば、みんながツイート(しかも位置情報もつけて・・)してるわけじゃないけど、朝の通勤時間のツイートを可視化してみると、東京にワァーって人が集まってくるような可視化ができるのでしょうかね!面白そう。

あと、来月ですが、札幌でこんなイベントもあるようなのでぜひ。
connpass.com
家族持ちには土曜日はちょっとつらいなぁ・・。

昨年Sapporo Tech Barをスタートし、毎回いろんなテーマで開催してこれています。
今年もなんとか続けられるといいなと思っています。

EC2上のAerospikeでycsbを実行(4) 1台で複数SSDを使ったら速くなる?

単純に考えると、RAIDと同じような構成になりそうなので、速くなりそうな気はします。
が、実際にはそれほどでもありませんでした。

可能性としては、

などが考えられます。(t2.microは1コアしかありません)

一応、状態を確認してみるとい、両方のディスクkは使われているようです。

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
xvdg              0.00     0.00    0.00   49.23     0.00 12603.08   256.00     0.36    7.38   7.29  35.90
xvdf              0.00     0.00    0.00   48.72     0.00 12471.79   256.00     0.08    1.56   1.56   7.59

スループットはloadは低下、runは変わらずといったところでしょうか。1回しか計測していないので、たまたまなのか、必然なのかは不明です。

SSD 1台

  • load : Throughput(ops/sec), 8781.173164734808
  • run : Throughput(ops/sec), 3114.096754847738

SSD 2台

  • load : Throughput(ops/sec), 7470.547367005581
  • run : Throughput(ops/sec), 3171.7398547344574

そして、t2.microでも、ストレージをいろいろ追加して実施して、誤って課金されてもいけないので、
計測が終わったら容赦なくインスタンスを削除しまーす。

f:id:takumats:20170117013500p:plain

これで一通りのAerospikeシリーズは終了です!

EC2上のAerospikeでycsbを実行(3) クラスタ構成にチャレンジ

さて、前回の実行で、EC2でAerospikeを簡単に構成できることがわかったので、クラスタ構成にもチャレンジしてみます。
無料範囲でやりたいので手早く!
takumats.hatenablog.com

ちなみに、データを削除するときは、以下のコマンド。データが多い場合はすべて削除されるのに時間がかかるようです。
全て削除される前に、ycsbのloadを実行すると、キーがすでに存在しているとかのエラーになるので要注意です。

asinfo -v "set-config:context=namespace;id=ycsb;set=usertable;set-delete=true;"

参考
www.aerospike.com

データが削除されたかを確認するには、データベースノードで「aql」で入った後に「show sets」で確認します。すると以下の感じで表示されます。

+-----------+------------------+----------------+-------------------+----------------+---------+-------------+------------+
| n_objects | disable-eviction | set-enable-xdr | stop-writes-count | n-bytes-memory | ns_name | set_name    | set-delete |
+-----------+------------------+----------------+-------------------+----------------+---------+-------------+------------+
| 345063    | "false"          | "use-default"  | 0                 | 0              | "ycsb"  | "usertable" | "false"    |
+-----------+------------------+----------------+-------------------+----------------+---------+-------------+------------+
1 row in set (0.000 secs)

今回はクラスタ構成にチャレンジしました。設定は簡単。
設定ファイルに「mesh-seed-address-port」のところで自分以外のサーバーのIPアドレスを追加するだけみたい。

それで複数のサーバーでサービスを起動させると、もともとデータが入っていると、勝手に同期が始まるようです。
クラスタ構成は、asadmコマンドで確認できます。本コマンドでは、ノードごとのマスター件数などもわかります。
Documentation | Aerospike

[ec2-user@ip-xx-xx-xx-xx YCSB]$ asadm -e info -h xx.xx.xx.aa
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                           Node               Node                  Ip       Build   Cluster            Cluster     Cluster         Principal   Client     Uptime
                                              .                 Id                   .           .      Size                Key   Integrity                 .    Conns          .
ip-xx-xx-xx-aa.us-west-1.compute.internal:3000   *BB9AC4AD410DF06   xx.xx.xx.aa:3000   C-3.8.2.3         3   8FDC01A429213D62   True        BB9AC4AD410DF06        5   00:22:13
ip-xx-xx-xx-bb.us-west-1.compute.internal:3000    BB98CE423192806   xx.xx.xx.bb:3000   C-3.8.2.3         3   8FDC01A429213D62   True        BB9AC4AD410DF06        5   00:16:49
ip-xx-xx-xx-cc.us-west-1.compute.internal:3000    BB980F34E0EDF06   xx.xx.xx.cc:3000   C-3.8.2.3         3   8FDC01A429213D62   True        BB9AC4AD410DF06        5   00:16:38
Number of rows: 3

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Namespace Information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Namespace                                              Node   Avail%   Evictions      Master     Replica     Repl     Stop     Pending         Disk    Disk     HWM          Mem     Mem    HWM      Stop
        .                                                 .        .           .     Objects     Objects   Factor   Writes    Migrates         Used   Used%   Disk%         Used   Used%   Mem%   Writes%
        .                                                 .        .           .           .           .        .        .   (tx%,rx%)            .       .       .            .       .      .         .
ycsb        ip-xx-xx-xx-aa.us-west-1.compute.internal:3000   90               0   322.056 K   341.691 K   2        false    (0,0)       972.286 MB   10      50       40.512 MB   4       60     90
ycsb        ip-xx-xx-xx-bb.us-west-1.compute.internal:3000    90               0   337.478 K   336.959 K   2        false    (0,0)       987.945 MB   10      50       41.164 MB   5       60     90
ycsb        ip-xx-xx-xx-cc.us-west-1.compute.internal:3000   90               0   340.466 K   321.350 K   2        false    (0,0)       969.457 MB   10      50       40.394 MB   1       60     90
ycsb                                                                           0     1.000 M     1.000 M                     (0,0)         2.861 GB                   122.070 MB
Number of rows: 4

したがって、前述のasinfoでデータを消すオペレーションを実行すると、ここに表示されるオブジェクト数が0になります。

で、ちなみにパフォーマンスはどうなったかというと、さっくり、以下のようなかんじでした。

ノード数スループット(load)スループット(run)
1Throughput(ops/sec), 8781.173164734808Throughput(ops/sec), 3114.096754847738
2Throughput(ops/sec), 5840.405090497077Throughput(ops/sec), 5956.125094127134
3Throughput(ops/sec), 5683.335890834484Throughput(ops/sec), 5758.298796657827
loadで見ると1台よりも2台の方が悪いです。これはおそらく、2台になると、レプリカがつくられるからなのかなぁ、と思っています。

EC2上のAerospikeでycsbを実行(2)

先日以下のトライアルをやりました。
takumats.hatenablog.com

で、元の記事をよく見ると、N.CaliforniaにあるaerobenchなるAMIを使うように書いてあることに今更ながらきづきました。
ということで、試してみました。
http://www.aerospike.com/docs/benchmarks/cassandra/simple_ycsb/index.html
ただし、インスタンスタイプは引き続きt2.microを使っています。

すると、ほとんどのセットアップがすでに済んでいたので、難なく実行可能でした。
ただ、Cassandraがうまく起動できませんでした。t2.microを使っているせいだと思いますが、いまいち原因特定できていません・・・。

札幌UIターンナイト2017新年会、に急遽参加(2017年1月6日@札幌)

当日に急遽ご案内をいただいたので、以下の「札幌UIターンナイト2017新年会」に参加してきました。
sapporo-iju.jp
sapporo-iju.jp

私も移住者なので意外と興味のあるイベントでした。
札幌への(札幌に限らずでしょうが)移住にあたっては「仕事」(=収入)が非常に重要だというお話は、非常に納得するところ。

ビッグの方のお話し、とても面白かったです。

ちなみに、1月末に移住促進?のイベントがあるようです。
sapporo-iju.jp

25社の出展枠に倍程度の応募があったとか。札幌の会社の採用意欲は高いことは高いです。どこで話を聞いても人がなかなか採用できないと聞きますしね。。