LINE Engineering
Blog

  • Redis Lua scriptingをatomicな処理とcache stampede対策に使った話
    Kagaya Hokuto 2017.12.18

    2016年入社。LINE GAME プラットフォームのチームにおいてサーバサイドの開発に従事。

    こんにちは。LINEでゲームプラットフォーム開発をしているKagayaです。この記事はLINE Advent Calendar 2017の18日目の記事になります。昨年新卒入社1年目で執筆した「マイクロサービスのためのプロジェクト生成ツールLazybonesを使ってみた」に引き続き、今年もAdvent Calendarの記事を書くことになりました。よろしくお願いします。

    はじめに—RedisとLINE GAMEプラットフォーム

    LINE GAMEプラットフォームでは、インメモリNoSQLデータベースであるRedisをメインデータベースの1つとして利用しています。キャッシュとしての利用が多く、例えば、LINEやFacebookなどのアカウントで認証を行っているユーザのソーシャルデータ(プロフィールや友だちリストなど)のキャッシュに利用しています。基本的にはRedis Clusterとして利用しており、開発環境では共通のクラスタを、本番環境ではゲームごとに独立のクラスタを組んで運用しています。

    AdventCalendar

    もっと見る

  • Akka HTTPの仕組みを理解する
    Haruki Okada 2017.12.17

    初めまして、Ads Platform開発チームの岡田(@ocadaruma)です。

    この記事はLINE Advent Calendar 2017の17日目の記事です。

    今回、個人的に以前から気になっていたAkka HTTPの内部構造について、この機会に調べましたので紹介いたします。

    Akka HTTPとは

    Akka HTTPは、Lightbend社によって開発されている、Scala/Java用のHTTP toolkitです。

    現在はメンテナンスが終了したsprayの後継と位置付けられており、特徴的なRouting DSLをsprayから受け継いでいます。

    また、Play Frameworkは2.6系より、Akka HTTPをデフォルトのバックエンドとして採用しています。

    akka scala AdventCalendar

    もっと見る

  • 大規模サービスLINE LIVEのためのエンコーダレイヤ構造と悩んだこと
    Kim Suhyuk 2017.12.16

    はじめに

    こんにちは。LINE ITSC所属のエンジニア、Kim Suhyukです。これはLINE Advent Calendar 2017の16日目の記事です。

    先日12月10日に、LINE LIVEサービスがリリースされてからちょうど2年が経ちました。リリース以来障害なく運営できて、とてもよかったと思っています。私はライブメディアサービスの構築や運営の経験がなかったため、今回の記事では、設計や構築を始めるときに悩んだ点についてまとめてみました。

    背景および課題

    LINE LIVEは、いつでも誰でもライブ配信できるサービスとして、予測を超える数のユーザーが利用したとしても円滑にライブを配信・視聴できる必要があります。そのため、以下の条件を満たす構造が必要と考えました。

    AdventCalendar

    もっと見る

  • Japan.R 2017開催レポート
    Kiyoyuki Horikawa 2017.12.15

    Data Labs所属。Data Scientistとして、社内各サービスの分析、改善提案に携わっています。

    この記事はLINE Advent Calendar 2017の15日目の記事です。

    こんにちは、LINEとLINE Fukuokaでデータサイエンティストをしております、stakaya、horikawa、oshiroです。

    12月2日(土)に、Japan.R 2017というイベントが開催されました。弊社はJR新宿ミライナタワーの本社を会場として提供する形で協賛しましたので、当イベントについてご報告します。

    Japan.Rとは

    Japan.Rは、統計解析言語Rのコミュニティ関係者が集まる国内最大のカンファレンスで、日本各地で年に1度開催されます。

    当日の様子

    今年の参加者は、募集サイト上では162名にのぼりました。開場早々に机席はほぼ全て埋まってしまい、急きょ椅子席を追加しました。

    01.04.opening

    AdventCalendar R DataScience stat Machine-Learning

    もっと見る

  • Swift 4.1+
    Yuka Ezura 2017.12.14

    こんにちは、AIプラットフォームClova開発チームのezuraです。この記事はLINE Advent Calendar 2017の14日目の記事です。

    みなさん、今年のSwiftマイグレーション祭りは無事に終わりましたか。例年よりも穏やかなエラーを味わえたのではないでしょうか。

    さて、マイグレーションといえば、みなさんの行ったマイグレーションは「普通の」マイグレーションですか?それとも「スーパー」マイグレーションですか?

    ここでいう「スーパーマイグレーション」とは、エラー・警告部分を修正するだけでなく、Swiftの改善によって効率的に書けるようになった部分の変更を含めたマイグレーションです。

    スーパーマイグレーションの対象箇所はエラー等が出ない部分も含むため、いざマイグレーションを始めると見つけにくいですよね。効率良く移行するには、今のうちから、新しいバージョンに移行しやすいような設計や記述にしておくことや、新規または既存のコードに今後実装される機能によって改善できる部分を見つけたらマークをつけておくなど、下準備が重要です。これはSwift Projectでもよく見られる光景です。

    しかし、そのためにはこの先に何が変わるのかを早めに知っておく必要があります。

    AdventCalendar Swift

    もっと見る