This document discusses exactly once semantics in Apache Kafka 0.11. It provides an overview of how Kafka achieved exactly once delivery between producers and consumers. Key points include:
- Kafka 0.11 introduced exactly once semantics with changes to support transactions and deduplication.
- Producers can write in a transactional fashion and receive acknowledgments of committed writes from brokers.
- Brokers store commit markers to track the progress of transactions and ensure no data loss during failures.
- Consumers can read from brokers in a transactional mode and receive data only from committed transactions, guaranteeing no duplication of records.
- This allows reliable message delivery semantics between producers and consumers with Kafka acting as
This document discusses messaging queues and platforms. It begins with an introduction to messaging queues and their core components. It then provides a table comparing 8 popular open source messaging platforms: Apache Kafka, ActiveMQ, RabbitMQ, NATS, NSQ, Redis, ZeroMQ, and Nanomsg. The document discusses using Apache Kafka for streaming and integration with Google Pub/Sub, Dataflow, and BigQuery. It also covers benchmark testing of these platforms, comparing throughput and latency. Finally, it emphasizes that messaging queues can help applications by allowing producers and consumers to communicate asynchronously.
This document discusses exactly once semantics in Apache Kafka 0.11. It provides an overview of how Kafka achieved exactly once delivery between producers and consumers. Key points include:
- Kafka 0.11 introduced exactly once semantics with changes to support transactions and deduplication.
- Producers can write in a transactional fashion and receive acknowledgments of committed writes from brokers.
- Brokers store commit markers to track the progress of transactions and ensure no data loss during failures.
- Consumers can read from brokers in a transactional mode and receive data only from committed transactions, guaranteeing no duplication of records.
- This allows reliable message delivery semantics between producers and consumers with Kafka acting as
This document discusses messaging queues and platforms. It begins with an introduction to messaging queues and their core components. It then provides a table comparing 8 popular open source messaging platforms: Apache Kafka, ActiveMQ, RabbitMQ, NATS, NSQ, Redis, ZeroMQ, and Nanomsg. The document discusses using Apache Kafka for streaming and integration with Google Pub/Sub, Dataflow, and BigQuery. It also covers benchmark testing of these platforms, comparing throughput and latency. Finally, it emphasizes that messaging queues can help applications by allowing producers and consumers to communicate asynchronously.
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
Japan SQL Server Users Group - 第35回 SQL Server 2019勉強会 - Azure Synapese Analytics - SQL Pool 入門 のセッション資料です。
Spark の位置づけ。Synapse の中での入門編の使い方。そして、Synapse ならではの価値について触れてます。
Now a days, thousands of database are supporting many kind of Rakuten's services. and it is hard to manage many databases well. especially, backup and restore.
so, we are progressing new backup system for our databases.
I am going to share some know-hows and experiences that have been acquired with you
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Takamasa Maejima
2016年11月に開催された Microsoft TechSummit 2016 での、Windows Server 2016 ストレージ機能 (SDS) を活用したハイパーコンバージドインフラ (HCI) に関するセッションスライドです。
[イベント名] Microsoft TechSummit 2016
[開催日] 2016年11月1日
[セッションID] CDP-002
[セッションタイトル] Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ
JJUG CCC 2018 Fall was held in Fukuoka on December 15th. The event featured talks about LINE KYOTO, Java, DateTimeFormatter, JavaDoc, Java generics, and LINE Growth Technology. LINE Growth Technology aims to help LINE grow through technology.
This document discusses replacing RxJava with Kotlin Coroutines for asynchronous programming. It provides an overview of RxJava and Coroutines, compares their approaches, and shows how to write asynchronous code using Coroutines instead of RxJava. It also discusses how to integrate Coroutines with Retrofit and the MVVM pattern.
Use Kotlin scripts and Clova SDK to build your Clova extensionLINE Corporation
The document discusses using Kotlin scripts to create a Clova client. It shows how to evaluate Kotlin code from a script using a ScriptEngine to define a Clova client configuration with launch, intent, and session ended handlers. The Clova client created in the script can then be used to handle Clova requests and responses.
LINE Shopping provides an e-commerce platform in Taiwan. It has over 9 million monthly visitors, a 40% repurchase rate, and lists over 26 million products from over 1,300 brands. The document discusses how to test the LINE Shopping platform, including unit, API, and UI tests. It also describes tools like Just-API and Pyresttest that can be used to test GraphQL and REST APIs respectively using YAML configuration files.
This document discusses automating Google Analytics (GA) testing for LINE TODAY. It proposes using Robotframework with Appium to simulate user actions in the LINE app and confirm that GA events are recorded correctly. It provides details on initializing the GA Reporting API to retrieve reports and examples of dimensions, metrics, and sample report requests. Code snippets demonstrate how to set up a service account and get credentials to access the GA Reporting API. The goal is to test new features for side effects and avoid human errors by automating the process of validating GA events.
This document provides an overview of UI automation testing with JUnit 5. It introduces the JUnit 5 framework, including its architecture, annotations, extension model, parameter resolver, and life cycle. It also discusses how to configure JUnit 5 in Gradle projects. Additionally, it briefly mentions other tools that can be used for UI testing, such as Appium, Ayachan, Ayavue, and image recognition libraries. The document aims to help people understand and get started with JUnit 5 for UI test automation.
The document summarizes a test night event held by LINE Fukuoka to discuss UI test automation. The event covered testing browser, iOS, and Android applications using Selenium for browsers and Appium for mobile. Attendees learned about template matching and feature detection techniques for UI testing, including pixel-perfect template matching versus feature detection which is scale invariant and can match elements that are 30-200% different in size. The techniques discussed were demonstrated using A-KAZE feature detection with OpenCV3 in Java.
This document proposes building a LINE app that provides a customized interface for the LINE TODAY news service using web views. It discusses three versions of the app with increasing features:
v1.0 uses customized web views for all pages except onboarding and login. v2.0 adds easier navigation with a bottom navigation bar. v3.0 enhances video with native video pages and a player. The document also discusses using Apache Kafka to build secondary indices for the app's database to enable features like retrieving a user's past posts.
This document discusses using a LINE registration chatbot for an event. The chatbot allows registration, check-in, and provides information about event activities online or offline. Users can access the chatbot through the LINE app on their mobile device or desktop website. It uses technologies like beacons, QR codes, and rich menus to enable simple registration and check-in as well as interact with information booths at the event.
This document introduces a managed Kubernetes as a service (KAAS) that provides concise summaries in 3 sentences or less that provide the high level and essential information from the document. The KAAS addresses problems with different tooling, versions, and configurations across clusters by providing a standardized Kubernetes platform. It aims to reduce operation costs and improve quality by ensuring high availability, performance optimization, and private cloud integration. The KAAS leverages Rancher for declarative operations and integrates custom controllers to enable load balancing, persistent storage, and other private cloud services within Kubernetes clusters.
This document discusses DevOps practices for software testing. It emphasizes the importance of continuous testing throughout the development lifecycle to reduce risk and ensure new features do not break existing functionality. Testing approaches like unit testing, integration testing, and automation are recommended to support faster release cycles and more agile workflows. The document concludes by advertising open roles for QA engineers.
This document discusses LINE's plans to introduce a token economy using its own cryptocurrency called LINK. It proposes that LINK can help evolve the relationship between users and services by creating a global platform not restricted by national borders. The three key aspects of the LINK ecosystem are that it will use a single token for all dApps and services, LINK tokens will be issued as rewards for contributions to the ecosystem, and LINE will offer a blockchain platform called LINK Chain to make dApp development and use more user-friendly. The goal is for LINK to facilitate a connected digital economy across LINE's various services and applications.
This document summarizes LINE Things, a platform that allows devices to connect and communicate through LINE using Bluetooth Low Energy (BLE). It discusses how LINE Things supports both online and offline devices. For offline devices, the LINE app acts as a proxy to allow communication between devices and services via BLE and web APIs. It also introduces LINE Things LIFF BLE, which allows BLE communication between devices and LIFF apps using the LIFF SDK BLE plugin. Developers can use LIFF BLE to easily build apps to read, write, and receive notifications from connected BLE devices.
1. LINE Pay is a digital wallet service that allows users to make payments and transfers between accounts without fees.
2. The service has over 17 million registered electronic payment cards.
3. Users can make transfers between LINE Pay accounts, split bills with groups of people, and pay for transportation, goods, services, and bills directly from their LINE Pay accounts.
The document summarizes new features and services released by LINE in 2018 to improve messaging experiences and build better bots and services. Key releases included Flex Messages, LIFF apps, quick replies, and video messages. It also discusses how developers can utilize social APIs, personalization, and audiences to engage and notify users.
2. l 北川 健太郎 / Kentaro Kitagawa
l LINE株式会社
l IT Service Center - Database dept.- DB1 Team
l データベースエンジニア
l MySQL / Oracle Database / Redis
l MySQL道普請: http://gihyo.jp/dev/serial/01/mysql-road-construction-news
Introduction
@keny_lala
3. • About LINE
• History
• Operation of MySQL
• HA
• Monitoring
• Backup
• Next Step
Agenda
12. l データベース室 全体で17⼈
DBAについて
DB1 Team ・・Oracle, ElasticSearch
DB2 Team ・・ SQL Server
DB3 Team ・・MongoDB
BigDataPlatformTeam・・Hbase,Hadoop,Cubrid
MySQL
Redis
13. l MySQL の 構築
l スキーマ管理
l バックアップ・リカバリ
l Database ACL管理
l クエリチューニング
l 障害対応
l インデックス設計
l テーブル設計(依頼があれば)
l 運⽤ツールの作成
業務について
19. MySQL Operation
l 標準化 自動化することで運⽤を改善
l ⼤規模運⽤における苦労点
l 台数が急激に増えて管理が⼤変
l サービス数が多く、サービスごとにMySQLのバージョンやサーバスペックが異
なる
l ⼿動になっている運⽤に時間を取られる
l インストール ,Database ACL管理,スキーマ変更
l サービス担当者や開発者とのコミュニケーションコストが⾼い
l 複雑なDB構成によって、属⼈化して障害対応が24時間体制になってしまう
20. l 1 サーバ当たり1インスタンス
MySQL Operation
l MySQL Enterprise EditionとMySQL Community Editionを併⽤
l すべてOracle MySQLでフォークした製品はなし
l 同じマイナーバージョンで固定
l 最新のマイナーバージョンアップは基本なし。
l メジャーバージョンアップは積極的に⾏う。
24. l DBAの統合管理ツール (通称 mondb+)
統合管理ツール
l すべてのDBエンジンに対応した内製の⼀元管理するツール
l WEB画⾯上で操作
l 各⾃欲しい機能を開発して、組み込む
l 以下のような項⽬が閲覧・設定可能
l サービス/インスタンス情報⼀覧
l ⾃動インストール
l ⾃動スレーブ追加
l Slow log 情報
l Backup 情報
l Real time QPS 情報
l アラート情報
l などなど…
26. ≈
l Slow log 情報(MySS)
l long_query_time=1
l 日単位の合計数を取得
l 時間別でも取得可能
統合管理ツール
27. l Real time QPS 情報
l コネクション数
l Com_xxx
l Slow_logの数
l Io_thread
l SQL_thread
l Second behind
master
l 等の情報を閲覧可能
統合管理ツール
28. l 以下情報を定期的に収集し、表⽰
l show engine innodb status
l show processlist
l show global variables
l show global status
l show slave status
l MySQL Enterprise Backup や xtrabackupの履歴テーブル
l データベースACL
統合管理ツール
29. l プライベートクラウド
l Verda DBS
l MySQLとRedisを提供
l VM/物理選択可能
l ある程度の権限を開発者に
もたせることで運⽤コスト
削減
l インスタンス作成
l Database ACL権限
l データベース作成
l sysスキーマの情報
プライベートクラウド
31. MySQL Operation
l まとめ
l 統合管理ツールや⾃動化ツールで、運⽤を楽にしている
l プライベートクラウド
l インストールや権限追加などの運⽤コストの削減
l sys.statement_analysisでクエリの傾向を提供することやモニタリング画⾯を提
供することで、開発者とのコミュケーションコスト削減
l 属⼈化する対応をなくす
l スペックや構成を標準化したことでアラート対応を当番制へ。
35. MySQL HA
l 課題
l VIP枯渇問題
l LINEのネットワーク設計の特性により、フェールオーバするサーバ間で
物理的制限がある
l マルチソースレプリケーション未対応
l 最近要望が多い。。
l 指定した1台のスレーブのみマスター昇格可能
l MHAのようにすべてのスレーブが昇格対象ではない。
l スレーブの数が多いとフェールオーバが遅い
36. MySQL HA
l 現状の解決
l VIP枯渇問題ー>○
l DNS方式に改修することで、解決
l マルチソースレプリケーション未対応ー>○
l 対応するように改修
l 指定した1台のスレーブのみマスター昇格可能ー>△
l 設定ファイルを⾃動で変更する
l メンテナンスが大変。。HAソリューションの見直し時期!?
37. l InnoDB Cluster
MySQL HA
l Oracle推奨はMySQL RouterをAPサー
バと相乗り
l 数千?数万?台のAPサーバにMySQL
Routerをインストール…
l すべてのMySQL Routerの⾯倒を⾒るの
はちょっとつらい
38. MySQL HA
l Group Replication + DNS or InnoDB Cluster + DNS
l シングルプライマリーモードで運⽤
l 可⽤性はGroup Replicationで担保
l マスターの切り替わりを監視するモニターを⽤意して、DNS Recordを切り
替える
l 監視モニターにMySQL Routerを⼊れる
l 監視モニターがGroup Replication meta 情報をチェックする
40. l MySQL Enterprise Monitor
l 商⽤版のMySQLで使⽤可能
l MySQLのモニタリングであ
ればこれを⾒れば⼤丈夫
l Query Analyzerとか便利
MySQL Monitoring
l しかし、MySQL Community Edition もあるし、管理してるプロダクトはたくさんある・・
46. l MySQLの監視項⽬
l percona mysql exporterがベース
DBONE Project
l サーバのリソース監視(CPU / Memory / Disk / NW)
l コネクション数
l QPS
l インスタンス単位
l クラスター単位の合計
l スキーマ単位のテーブルサイズ合計
l InnoDB周り
l Performance_schema_xxx_lost
l たとえば、Performance_schema_digest_lostが増えていれば
events_statements_summary_by_digestに保存されない
l Temporary tablespaceサイズ
48. MySQL Backup
l 1st バックアップとして、デイリーでローカルにフルバックアップ取得
l 2nd バックアップとして、backup⽤storageへ転送する仕組み
LINE でのバックアップ
49. l MySQL Enterprise Backup(MEB)
l 商⽤版のMySQLで使⽤可能。
l xtrabackup
l percona社が開発したOSS
l xtrabackup2.3以降はinnobackupexでなくてもxtrabackupコマンドでMyISAM
のテーブルも取得してくれる
MySQL Backup
l MEBもxtrabackupもオンラインバックアップ
l 稼働中のMySQLに対して、停⽌することなくバックアップを取得
l アーキテクチャーはほぼ同じ
l トランザクション未対応のストレージエンジンはテーブルロック
51. l MEB
l --sleep オプション
l InnoDB テーブルから特定の量のデータをコピーした後に、スリープするミ
リ秒数を指定します。(単位MS)
l すでにsleep=200で設定して運⽤
MySQL Backup
l xtrabackup
l --throttle オプション
l 1MB単位での1秒当たりの⼊出⼒操作の数を制限します。(単位IO)
IO制御 オプション
55. MySQL Backup
l MEB
l --sleepオプションはibdファイルのコピーにのみ有効
l xtrabackup
l --throttleオプションはibdファイルとトランザクションログにも有効
IO制御オプションの違った点
l MEB
l ibdファイルとトランザクションログを同時にコピー開始
l xtrabackup
l トランザクションログからコピー開始
l 最新の状態に追いつくまでコピーしつづける
l 追いついたらibdファイルのコピーを開始する
バックアップ開始時動作で違った点
56. MySQL Backup
l 原因
l throttleオプションでIO量を制限してトランザクションログをコピーするため、
更新が多い環境ではトランザクションログの最新の更新に追いつかない。
l よって、ibdファイルのコピーが開始できずにずっとトランザクションログ
のコピーをし続けていた状態であった。
l xtrabackupの場合はOSレイヤーで圧縮するようにしてIO制御することに変更
# xtrabackup --backup --stream=xbstream | pbzip2 -p${PLEVEL} > BACKUPDATA.bz2
58. l MySQL8.0
l 導⼊に向けて、絶賛検証中
l Amazon AWS(RDS)
l データセンターを持たない海外案件の対応
Next Step
l バックアップ統合管理システム開発
l MySQL HA
l Group Replication + DNS
59. l MySQL Query Replayer 開発
l MySQLのネットワークパケットからクエリを取得し、リプレイする
l メジャーバージョンアップやハードウェアリプレースの負荷テストを⽬的
Next Step
60. l Operation
l 標準化と⾃動化することで運⽤が楽になった
l HA
l 現状安定はしているが、今後を考えると新しいソリューションの検討が必要
l Monitoring
l DBONE で統合監視が形になってきている
l Backup
l バックアップ統合管理システム開発
l OSS化に向けた運⽤ツール開発
l まだまだやりたいことはいっぱいある!
まとめ