概要 APIのデバッグにおいて、クライアントサイドで再起動やダウン、ネットワークエラーなどにより、クライアント側でHTTPリクエスト送信中に接続を切断するようなケースを手動で再現したい。 HTTPで通信する場合には、netcatを使って対話的にHTTPリクエスト…
概要 v1.7.0以降のFluentdでデフォルトでバンドルされているout_httpプラグインを利用すると、 HTTP/HTTPS経由でレコードを送信することができる。 http - Fluentd out_httpを利用し、 application/x-www-form-urlencoded形式のリクエストを送信する方法につ…
Hive on Tezにおいて、DISTRIBUTE BYを指定したクエリが、File Mergeが有効化されていたことによって想定外の挙動になった。 Hiveのバージョンは、3.1.3でORC形式のテーブルを想定している。また、他のバージョンでは修正されている可能性はある。 まず、DIS…
今回、Hive3.1.3をDocker上で立ち上げ、HiveServerにリモートデバッガをアタッチしてHiveServerの処理を詳細にデバッグする環境をセットアップします。開発環境はIntelliJを前提としてます。 公式にHive用のDockerImageを提供するIssueがHive4.0.0で導入され…
Redisでアトミック操作を実現したい時にLua scriptを記述したい時があるが、毎回実際にRedisに投げて確認するのは非常に面倒。動作中の問題や、redis.callの返り値の確認などを行うのも非常に面倒。 公式ドキュメントにLua script debuggerが用意されている…
ZK Rollupを元にしたL2プロトコルであるzkSyncについて調査し、そのJavaScript SDKの利用方法について軽く確認する。 以下のチュートリアルの内容について、実際に確認する際に必要な作業を追加で説明として加えている。 Getting started | zkSync: secure, …
Ethereumのスマートコントラクトを活用したアプリケーション開発についていろいろやった内容をまとめる Ethereumおさらい コンピュータサイエンスの観点から見たイーサリアムは、決定論的であるものの実質的に制約のない状態マシンであり、グローバルにアク…
Spring BootにおけるBean Validationでは HibernateValidator がデフォルトで利用される。 例えば以下のように @Validated アノテーションを付与することでリクエストボディのバリデーションも行うことができ、このバリデーションにも HibernateValidator が…
hadoop fs -rm コマンドの挙動を詳しく確認する必要があり、コードリーディングを行った。 コード自体は自体は以下に存在しており、他のコマンドの実装も周辺にある。 github.com 実装上、-rm、-rmdir、-rmr、-expungeは全て異なる実装が行われているが、 今…
要約 現時点で、WebFluxでWebSocketをハンドリングするWebSocketHandlerで受け取っているWebSocketSessionのHandshakeInfoが保有する principleMonoは、Mono.empty()を返している。 これはHttpWebHandlerAdaperが、DefaultServerWebExchangeを生成しており、…
要約 やりたいこと 実装 論理削除を実行 論理削除の解除を実行 論理削除を除去したscan 論理削除を含む通常のscan 要約 HBaseの行を論理削除することを実現する方法として、checkAndPutとscanを用いて実装する 将来的に、複数の論理削除やフラグが追加される…
要約 MySQLには 現在トランザクションが待機しているロックの要約を見るためのsys.innodb_lock_waitsビューが定義されている。(https://dev.mysql.com/doc/refman/5.7/en/sys-innodb-lock-waits.html) アプリケーションでlock timeoutの前兆を検出し、sys.in…
概要 16進表記のUUIDの符号空間は 00000000-0000-0000-0000-000000000000 ~ ffffffff-ffff-ffff-ffff-ffffffffffffで表せる HBaseのテーブルのRow Keyが ${prefix}${区切り文字}${16進表記UUID} のような形式になっているような場合、${prefix}${区切り文字}…
やりたいこと import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.at…
Akka Typed JavaDSLとDataSketchesをとりあえず使ってみるだけの備忘録。DataSketchesの中でもTheta Sketch Frameworkを使用する。今回やっていることは以下とほぼ同じ。 DataSketches | ThetaJavaExample Concurrent Theta Sketchは自力で書かなくても Uplo…
好き勝手やるためにローカル分散モードで立ち上げてJavaのHBase Clientから繋ぐまでやる。 HBaseローカル分散モードでコンテナ起動 GitHub - big-data-europe/docker-hbase > git clone https://github.com/big-data-europe/docker-hbase.git > docker-compo…
ScalaならFutureでも十分使いやすいのであまり困ることはないが、JavaのFutureはScalaのFutureとは異なり使いにくい(個人的な感想)。 似たような方法で簡単に並行処理を行える方法はないか?と調べたところ、CompletableFutureなるものがあるのを見つけた。1…
今年読んだもの 本 www.oreilly.co.jp www.oreilly.co.jp www.oreilly.co.jp www.oreilly.co.jp www.oreilly.co.jp www.maruzen-publishing.co.jp book.impress.co.jp www.shoeisha.co.jp www.kinokuniya.co.jp gihyo.jp www.oreilly.co.jp 全部読んでないや…
この記事はMicroAd Advent Calendar 2019の4日目の記事です。データ指向アプリケーションデザインを読んで、Akka TypedでLSM-treeインデックスに基づくKVSを作ります。
MySQLのCREATE TABLE文から自動でサンプルデータを生成するようなプログラムを書いてみました。 動機 実運用前のサービスでは、当然ながら使用するテーブルには実際のデータが入っていません。その為、実運用時のパフォーマンスをある程度予測したい時に、サ…
「Go言語による並行処理4.4 orチャネル」 で、複数のチャネルをまとめて、まとめたチャネルのうちどれか1つでも閉じられた場合、まとめたチャネルも閉じるようにしたい。という場合に、orチャネルというパターンがあることが紹介されている。 「この関数はか…