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

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

北海道マラソン なんとか完走♪

記録は?

北海道マラソンをなんとか完走。途中、暑かったり、涼しかったり。いずれにせよ疲れた。

 https://hokkaido-marathon.com/2017/

 確認してみたところ、昨年より数分遅くなっており、グロスはなんとか4時間30分をきったものの、ネットタイムは4時間30分を超えてしまいました。ちょっと悔やまれます。

本当はまたいつかサブ4を目指したいところ。

恒例の、石屋製菓の白いバウムの給食。あれはいいですね。

アプリ登場

マラソンにつきもののランナーズアップデートですが、今年はアプリが登場。

https://runnet.jp/smp/smpapp/ouennavi/index.html

少しずつ進化はしているようです。

sns連動したら面白いかも。

ランナーが事前にsnsを登録しておき、5km通過時とかに勝手に投稿する感じにしたら、面白いのではないかとふと思います。簡単にできそう。

Apache GeodeとApache Igniteについて調べたメモ書き2

先日書いた投稿に対して、ありがたくコメントをいただきましたので、紹介いただいた参照先を調べてみました。
takumats.hatenablog.com

GridGainのページにある、Pivotal Gemfireとの比較記事

www.gridgain.com
それぞれ商用版ですが、背後にはオープンソースのプロダクトがあります。

細かい○×表もあるのですが、ここからダウンロードできるpdfに「Key Differences」というのがあるので、そこを勝手に訳してみます。

オープンソース or NOT

GridGainはApache Igniteをベースに開発されておりAPIの互換性もある。一方、GemFireはApache Geodeをベースにしているものの、APIの互換性がないため、オープンソースベースとはいえ互換性が低い。

ベンダーニュートラ

GridGainとApache Igniteは、Javaの仕様「JCache(JSR 107)」に基づいて実装されているとのこと。GemFireは独自である。

JSR107について
The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 107

そもそもJSRについて
yyyank.blogspot.jp

Apache GeodeのJSRサポートについても、以下にサポートされていないと記載があります。
Technology FAQ - Geode - Apache Software Foundation

※他にJSR107をサポートしている製品がたくさんあるのであれば確かにそう言えるかもしれません。(他にあるか調べてません)

Off-heap index

GridGainはそのように設定すれば、値もインデックスも off heap memory 上に構成できます。一方で、GemFireはデータが off heap メモリ上へ構築されていたとしても、インデックスを off heap メモリへ構築することができません。インデックスを off heap memory 上へ構築できることは、インデックスが肥大化して20GBを超えるようになってくるとGCの問題が出てくる可能性があるため非常に重要です。
これは性能に影響しそうですね。でもきっと、性能差異は他にも存在するとは思います。実装が違うわけですから・・。

以下、参考ブログ。
adtech.cyberagent.io

ODBC & JDBC

GridGainはODBC/JDBCをサポートしており、標準SQLクエリでアクセスすることができます。一方で、GemFireはODBC/JDBC接続をサポートしておらず、独自のクエリ言語によってアクセス可能です。

Deadlock-­Free Transactions

GridGainはデッドロックのないトランザクションをサポートし、ロック順序の心配をする必要がありません。このトランザクションはパフォーマンスもずっとよいです。GemFireでは、デッドロックを気にしながらデータの更新などを行う必要があり、大きなプロジェクトではしばしば困難に直面します。

Cross-­Partition Transactions

GridGainのトランザクションは全クラスタ上のキャッシュパーティションに対して実行することができますが、GemFireは複数のキャッシュパーティションに渡ったクエリを実行することはできません。

Data Streaming

GridGainはインメモリストリーミングをサポートしており、ストリーミングデータのSliding Windowのクエリをサポートします。GemFireではサポートしていません。

○×表

その他、実際に○×表を見るとGridGainの方にできることが明らかに多いようです。p.8のConfigurationi & Grid Managementあたりや、Security and AuditあたりはGemFire側に多くの機能が実装されているように見受けられました。

結局のところ

性能面とか機能面の大きな違いは、触ったわけではないのでよくわかってはいないのですが・・・。それは同じ目的に対する製品間の違いのようなものでしょうから、違いを論ずることはあまり意味がないかもしれません。あとは使ってみて、目的に沿った使いやすさ、導入のしやすさなどで選択するんでしょうね。

その他参考

dev.classmethod.jp
ameblo.jp

Apache NiFi, Storm, Kafkaを利用して、ストリームデータ処理を体験しよう、に参加(2017/8/1@東京)

東京に出張するといろんな勉強会があって本当に楽しい!
今日は、前々から参加したかった、以下の会に参加しました。
futureofdata.connpass.com

チュートリアルは以下をベース。
realtime event processing.0.2h · ijokarumawak/hdf-tutorials-ja Wiki · GitHub
こっちをやると、環境の構築からできるそうです。
github.com

で、登場人物を書くだけでもお腹いっぱい!!

Ambari
www.infoq.com

SAM:GUIでStormのアプリを作るようなもの。
druid:時系列データを保存しやすいデータベース
Druid | Interactive Analytics at Scale

Avro
docs.microsoft.com

nifi
qiita.com
すごいリッチな情報を保持するので、スループットが必要な時には注意が必要。本番では記録をオフにする場合もある。

などなど。細かい情報は参考URLを参考にしてください。

実際のハンズオンは、短い時間で多くをなめる必要があるため、本当に「体験」の域を出ないので、深く理解できるかというとそうではないのですが、こういった入口も必要ですよね。

こういう面白い勉強会がたくさんあるにも関わらず、東京では他でもたくさんイベントやってるからか、参加者も10人いないくらい。開催する側からすると、地方でやってもビジネスにつながらないかもしれないのですが、参加者数も参加率も全然違うと思うですけどね。難しい話題です。

Wordpressのプラグインで Custom Permalinks 1.0.1 にバグ?

いつものルーチンワークとしてWordpressプラグインバージョンアップを行ったら非常に焦りました!!!

Custom Permalinksというプラグインなんですが、更新後、Webページが見られなくなるという事態に。。
ja.wordpress.org

当該プラグインのページを見ると、そんな投稿もちらほら。でもそんなに盛り上がってないところをみると、なにか発生条件があるのでしょうか・・。

以下のページなどを参考に古いバージョンに戻しました。
webkikaku.co.jp
wind-mill.co.jp

プラグインを削除したら、そのプラグインのデータがどうなるか不安だったので、
向こうにした後にプラグインのファイルを上書きして、最有効化。
無事、プラグインのバージョンも戻ったし、ファイルも見られるようになったし。
めでたしです。

札幌視察の企業さんの来社(2017/7/某日)

先日、札幌への進出も選択肢として考えられている企業さんが、東京から進出した企業の一例として弊社を訪れてくださいました。面白い会社がどんどん札幌に来てくれるのは、とってもありがたいこと。

ぜひ札幌に決めて、拠点開設していただきたいものですね。札幌での就職、新卒でも中途でも、現実的にはまだまだ選択肢が限られるので。。。

北海道IoTビジネス共創ラボ 設立キックオフ&第1回勉強会に参加(2017/7/26@札幌)

掲題の催しに参加してきました。
iotbizlabo.connpass.com
www.ecomott.co.jp
https://www.facebook.com/hokkaido.iotbizlabo/
最近この手の集まりは多いですね。

どうやらこの「IoTビジネス共創ラボ」は、MSさん主導でやっている集まりのようです。
なので、デバイスで収集してAzureにあげて・・・、BIで見て、というのが基本的な流れにはなりそう。
MSさんでデバイスの方もやっているとは知りませんでした。

エコモット入澤さんの、官主導ではなく、民間主導でビジネスにつなげたい、というのにはとても同感。
でも、北海道の地域特性にマッチすると用意した3つのWGのうち、災害WG(だったと思う)はビジネスより公共っぽくないでしょうか・・・?食は何か考えたいなぁ。個人的にはお惣菜よりは農業よりではないかと思います。

ドローンワークスさんのお話し、なかなか面白かったです。
www.drone.co.jp

Apache GeodeとApache Igniteについて調べたメモ書き

今日、訪問先でお話ししていて、Apache Geodeが話題になりました。そういえばApache Igniteは少し聞いたことがあったのですが、Apache Geodeとの違いとはどういうところだろう?ということで少し調べたメモ書きです。

インメモリデータグリッド

そもそも、「インメモリデータグリッド」なる用語をあまりマークしていたので改めて。
以下の記事中の言葉を借りると、

大量のデータを多数のサーバのメモリ上で分散して管理する技術

とのことです。
www.itmedia.co.jp
データベース的にいうと、スケーラブルなインメモリデータベースでしょうか。

以下のページではGridGainとRedisの比較(GridGainはApache Igniteの商用版みたいなの)もやっているようなので、比較対象になるというところでそんなにずれてはいないと思います。
www.gridgain.com

また、以下の記事だと、さらに「実行環境を持つ」ことを定義に入れていますね。
enterprisezine.jp

それぞれのサイトの最初のメッセージから、そもそも何なのかを探ってみます。

Apache Ignite

Open Source In-Memory Computing Platform - Apache Ignite

Apache Ignite In-Memory Computing Platform

Apache Ignite is a high-performance, integrated and distributed in-memory platform for computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with traditional disk-based or flash technologies.

適当に訳すと、、、

Apache Ignite:インメモリコンピューティングプラットフォーム

Apache Igniteは、高性能で分散されたインメモリプラットフォームで、大量データのリアルタイムコンピューティング、トランザクションに対して、既存のディスクやSSDベースの技術に比べて高速に動作します。

という感じでしょうか。

Apache Geode

geode.apache.org

Performance is key. Consistency is a must.
Providing low latency, high concurrency data management solutions since 2002.

Build high-speed, data-intensive applications that elastically meet performance requirements at any scale.
Take advantage of Apache Geode's unique technology that blends advanced techniques for data replication, partitioning and distributed processing.

Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing.

これも同じように適当に訳します。

パフォーマンスがキー、そして整合性はマスト。

2002年から低レイテンシで高並列なデータ管理環境を提供しています。
高速でデータ中心なアプリケーションの構築においてもパフォーマンス要求を満たし、性能がスケールします。Apache Geodeのユニークな技術はデータレプリケーション、パーティショニング、そして分散処理の技術から成っています。

Apache GeodeDBMSのような整合性モデル、信頼性の高いトランザクション処理、シェアードナッシングアーキテクチャを提供し、低レイテンシ、高並列な処理を実現します。

ふーん、結局、違いがよくわかった、というところには程遠いのですが、まぁ、両方ともインメモリデータグリッドというカテゴリの製品みたいなので、細かい違いこそあれ、きっと同じコンセプトのものなんだろう・・・・・。Apache Geodeの方が、より整合性とか重視してクリティカルなところに使われることを目指しているような感じはしないでもないですね。
それにしても、世の中、知らないことがたくさん♪♪♪