LINE Engineering Blog official account
LINEの開発組織のそれぞれの部門やプロジェクトについて、その役割や体制、技術スタック、今後の課題やロードマップなどを具体的に紹介していく「Team & Project」シリーズ。今回は、LINEのMessaging Server開発業務、Apache Kafkaプラットフォームの開発・運用をしているチームについて紹介します。Z PartチームのWonpill Seo、井出真広、Javier Luca de Tena、河村勇人に話を聞きました。 Z Partチームのzoom会議の様子 ―― まず、自己紹介をお願いします。 Wonpill:LINEのMessaging Server開発業務、Apache Kafkaプラットフォームの開発・運用を担当しているZ Partチームでマネージャーとして働いています。 井出:今所属しているZ Partでは、主にMessaging platformで利用しているRedisクラスタの運用やRedisを使ったサービスの開発を担当しています。また、LINEがOSSとして開発しているJavaのRPCフレームワーク「Armeria」の各種サービ
こんにちは、LINEのメッセンジャーアプリのサーバサイドエンジニアをしている'18卒のエンジニアのbitter_foxです。この記事はLINE Advent Calendar 2018の18日目の記事です。 弊社では夏休みの1ヶ月間〜2ヶ月間、学生に実際の業務を体験してもらう就業型のサマーインターンシッププログラムを実施しております。 弊社の就業型インターンでは社内のチームにジョインし、ある程度大きめのプロジェクトに1ヶ月間〜2ヶ月間、取り組んでもらいます。 私の所属するチームでも今夏、学生を受け入れ、「HBaseをJDK 11で動かしZGCを評価する」というプロジェクトに1ヶ月間取り組んでもらいました。 本記事ではそのインターンシッププロジェクトの紹介をいたします。 HBase v.s. GC HBaseはGoogle File System上で動作するデータベースであるGoogle Bigtableを参考に開発されたOSSのデータベースです。 HBaseはスケールアウトが容易であり、レイテンシが低く、可用性も高いという特徴があるため、LINEのメッセンジャーアプリではユーザ情報やメ
LINE Engineer
こんにちは、LINEでGame Platformを開発している 趙 です。LINEではHBaseを様々な場面で活用しており、今回はGame Platformでの利用例を紹介させていただきます。 LINE Game PlatformはHBaseをメインストレージとして利用します。私達が新規の機能開発時にHBaseを利用する場合、ローカル開発環境におけるユニットテストなどのアプリケーションテストは専用のリモートクラスターで実行されるHBaseに接続していました。リモートクラスターはHadoopアドミニストレータが構築、管理してくれます。チームメンバーとHBaseを使ったアプリケーションの数が増えるにしたがい、このテスト方式は以下に示す問題があり、不便に感じていました。 共通クラスターを使うので、他人のテストとの衝突が起きやすい。 案件によって、利用するHBaseのバージョンが違います。複数のテスト専用クラスターを持つのは非効率的。 クラスターは社内にありますが、IP制限などにより社外での作業、デバッグが不便。 これらの問題は、ローカル開発環境でHBaseのインスタンスを起動すれば問題
こんにちは、LINEでGame Platformを開発している 趙 です。 この記事はLINE Advent Calendar 2016の9日目の記事です。 LINE Game Platformでは分散型でスケーラブルな高速データベースであるHBaseをメインストレージの一つとして使っています。HBase運用における問題のひとつは、cross row, cross tableトランザクション処理機能がない事です。Client Faultなどが起こった時の対応が難しいです。(例えば、HBaseにテーブルAとBがあり、ABの順番にデータを処理する場合、もしAの挿入の後にBの挿入に失敗した場合、データ不整合が起きます) HBaseは幾つかの単行atomic apiを提供します。(HBase versionによって違うところがあります) 複数cellに対してgetまたmutation操作 CAS(コンペア・アンド・スワップ) API checkAndMutate incrementColumnValue トランザクション処理機能はもともとHBaseでは強く求められませんが、運用中はできるだ