タグ

分散処理に関するkoemuのブックマーク (50)

  • 同期エンジンの心臓部を書き換える

    0 0 719 0 この 4 年間、Dropbox では、デスクトップ クライアントの同期エンジンを白紙の状態から再構築しようと懸命に取り組んできました。同期エンジンは、デスクトップ パソコン上の Dropbox フォルダの陰に隠れた魔法です。これは、Dropbox で最も長く使われているコード部分であり、最も重要なコード部分の 1 つでもあります。今回、新しい同期エンジン(コードネーム「Nucleus」)をすべての Dropbox ユーザー向けにリリースさせていただくことを、ここに発表いたします。 同期エンジンの書き換えは当に大変な作業で、多くの環境でマイナスともなりうる構想であったことに鑑みると、手放しで祝う気持ちにはなれません。結果的には Dropbox にとって素晴らしいアイデアであったわけですが、それは、私たちがこのプロセスにどのように取り組むべきかを熟考したからこそ、たどり着

    同期エンジンの心臓部を書き換える
    koemu
    koemu 2020/05/27
    コアエンジンの書き換えまでの意思決定プロセスが参考になる
  • マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング

    この記事はMERPAY TECH OPENNESS MONTHの15日目の記事です。 こんにちは。メルペイのPayment PlatformチームでPaymentServiceの開発を担当するエンジニアの @foghost です。 メルペイではマイクロサービスのアーキテクチャで決済システムを開発しています。その中でPaymentServiceは決済トランザクション管理の基盤サービスとして、下位層のサービス(外部サービスも含め)が提供する各種決済手段を利用して、上位層のサービス(メルカリ、NFC,コード払いなど)に必要な決済フローを共通APIとして提供しています。PaymentServiceが提供する決済処理に複数のサービスを跨いでお金の動きを正確に管理する必要があるので、作り始めた頃から決済トランザクション管理を最も重要な課題として、サービスを跨いでもデータの整合性が取れる仕組みを作ってき

    マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング
    koemu
    koemu 2019/06/07
    隣に座る同僚の渾身のエントリです
  • 大規模な決済システムを構築する際に学んだ分散型アーキテクチャの考え方 – 前編 | POSTD

    バックエンドに関する経験があった私は、2年前にモバイルソフトウェアエンジニアとしてUberに入社しました。担当することになった仕事は、決済機能の構築を含む アプリの刷新 です。その後、 技術管理の側に回る ことになり、チームそのものを率いることになります。配下のチームは、決済を行うバックエンドシステムの多くを担当していたため、責任者となった私もバックエンドに触れる機会が以前にも増して多くなりました。 Uberで働く前は、分散型システムの経験はなきに等しかったと言っていいと思います。 それまでの私は、一般的なコンピュータサイエンスの学位を取得後、フルスタックのソフトウェア開発に10年間、関わっていました。分散型システムについては、一応、大まかな仕組みやトレードオフなどは知っていましたが、一貫性や可用性、冪等性などの概念に精通していたとはお世辞にも言えません。 この記事では、大規模で可用性が高

    大規模な決済システムを構築する際に学んだ分散型アーキテクチャの考え方 – 前編 | POSTD
  • 本当は恐ろしい分散システムの話

    2. 2Copyright©2017 NTT corp. All Rights Reserved. 諸説あるが、ここでの定義は「部分的な故障を許容するシステム」の事 複数台のコンピュータを接続して信頼性を高めたり データが途中で化けても再送したり訂正したり 一部のコンピュータが突然故障しても引き継いだり 故障を設計の一部に組み込む事が必須となる 分散システムとは 3. 3Copyright©2017 NTT corp. All Rights Reserved. • 世はまさに分散システム戦国時代 • Hadoopを皮切りに次々出てくる巨大分散OSS • シリコンバレーでも分散ミドルウェアベンチャーが多数出現 • 高信頼なシステムを作ろうと思った場合には複数台のマシンによる高可用構成 が前提になる • Google、Facebook、Amazon等はもちろん • 金融、流通などのエンタープラ

    本当は恐ろしい分散システムの話
  • Spanner - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これまで多くのトランザクションの要素技術を説明してきた。 Googleの公開している論文Spanner: Google's Globally-Distributed Database は公開当初、要求される専門技術の多さからよくわからないと言っている人が多かったが、これまでに説明した要素技術をベースにすると理解しやすい。 Spannerとは 複数のデータセンターに跨ってデータベースの内容を複製し続ける事で高い可用性を実現するという構想は数多くあった。 しかしそれらの分散データベースは実用的な速度を実現しようとすると、データモデルがただの

    Spanner - Qiita
  • http://db.csail.mit.edu/pubs/silo.pdf

    koemu
    koemu 2016/10/07
    "Silo is a new in-memory database that achieves excellent performance and scalability on modern multicore machines."
  • 最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita

    最近では珍しくもなくなった"Quorum"という言葉。Zookeeper, etcd, Serfといったクラスタ中でデータのレプリケーションを行ってくれるようなツールや、Cassandra, Riakといった分散データベース(NoSQL系)のようなツールにおいても、データの複製に一貫性を持たせる仕組みとしてよく聞かれます。 しかしながら、多くのスライドやWebの記事を読んでも、"Quorum"という語が意味するところは要するに「過半数ノードによる多数決」というような説明が多いように感じていました。 にも関わらず、"Quorum"と呼ばれているのはなぜか?そんな疑問を持っていたので、この機会に調べてみました。 そうしたら、"Quorum"は過半数/多数決という概念を一般化した非常に抽象でパワフルな概念だということがわかりましたのでここにまとめておきたいと思います。 分散システムにおけるデータ

    最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita
  • 分散システムについて語るときに我々の語ること ― 分散システムにまつわる重要な概念について | POSTD

    分散システムについては、もう随分と前から学びたいと思っていました。ただ、それは一度首を突っ込んだら最後、ゴールのない迷路に迷い込むようなものなのです。どこまでも続いているウサギの穴のようなものです。分散システムに関する文献は星の数ほど存在します。様々な大学からたくさんの論文が発表されているばかりでなく、膨大な数の書籍もあるのです。私のような全くの初心者には、どの論文を読んだらいいのか、どの書籍を買ったらいいのか、見当もつきません。 そんなとき、一部のブロガーが、 分散システムエンジニア (それがどういう意味であれ)になるなら知っておくべき論文というものを推奨しているのを見つけました。その一部を紹介しましょう。 FLP , Zab , Time, Clocks and the Ordering of Events in a Distributed Systems , Viewstamped

    分散システムについて語るときに我々の語ること ― 分散システムにまつわる重要な概念について | POSTD
  • YAPC::Asia Tokyo 2015での発表 - Go ahead!

    YAPC::Asia Tokyo 2015 今年で最後となるYAPC::Asia Tokyoで,データ分析基盤まわりについて発表してきました.部屋は満席だったようで,聞きに来てくれた皆さん,ありがとうございました.会場はD言語erにふさわしくD会場でした. データ分析基盤を支える技術 - YAPC::Asia Tokyo 2015 これが今どきのデータ解析基盤だ!初心者のためのデータ解析講座 #yapcasia #yapcasiaD - Togetterまとめ どういう展開にしようか悩んだんですが,データ分析基盤の構築に使われる様々なソフトウェアが,どういう問題を解決するために導入されているのか,またその一方どういう問題を持っているのか,を一からデータ分析基盤を作るという流れで話していくことにしました. 既にガリガリやっている人向けではなくて,これからやろうとしている人,やってるけど現状の

  • What does it take to make Google work at scale? (CamSaS)

    このブラウザ バージョンのサポートは終了しました。サポートされているブラウザにアップグレードしてください。

    What does it take to make Google work at scale? (CamSaS)
    koemu
    koemu 2015/08/20
    Googleにおけるシステムのスケールの事例とその歴史
  • 大規模分散システムの現在 -- Twitter

    ↓↓↓↓訂正あります。↓↓↓↓ 2018/07/02に株式会社エフコード社内で行われた勉強会のスライドです。 訂正版(随時更新中): https://docs.google.com/presentation/d/15HOMfAbtdWwO48njcB8IdkN3kVAMu3wsmZo0O3S-f_4/edit?usp=sharing 専門家による資料・専門家向けの資料ではありません。自分自身で学習し、論文・文献等を読解してまとめた内容となります。間違い等あるかもしれませんが、あれば是非コメント頂ければと思います。 【訂正事項】 スライド16: 誤:たった一つのプロセスが故障しただけでも有限時間で合意できない 正:たった一つのプロセスが故障しうるだけでも有限時間で合意できない スライド20: 誤: 重要: あるschedule σ1, σ2 がdisjoint (nodeが被ってない) なら

    大規模分散システムの現在 -- Twitter
  • 「Amazon RDS for Aurora Deep Dive」講演メモ (AWS Summit Tokyo 2015) #AWSSummit - 元RX-7乗りの適当な日々

    メモったので、貼付けておきます。 間違い等あるかもしれませんが、その場合はごめんなさい。 Auroraは現在Preview中 頻繁にデプロイ・機能変更が行われている 今日の話の内容は6/2時点のもの フルマネージドなDB データベースを数分で作成可能 自動でパッチの適用 1クリックでスケールアウト S3への継続的バックアップ Amazon Aurora AWSがクラウド時代にRDBを作るとするとどうなるかを1から考えた エンタープライズグレードの可用性とOSSレベルのコストを両立 現在はLimited Preview Virginia/Oregon/Irelandリージョンで動いている 5/20よりpreviewがプロダクション環境へ移行 Beta環境はクローズ AuroraのPricing 現在は、r3シリーズのみでの提供 ライセンス料金は不要 MySQLと100%互換なので、ロックイン

    「Amazon RDS for Aurora Deep Dive」講演メモ (AWS Summit Tokyo 2015) #AWSSummit - 元RX-7乗りの適当な日々
  • 分散システムの一貫性に関する動向について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog システム統括部アーキテクト室 今野です。 昨年は、Twitter,Facebookを始めとするクラウド各社で新規の分散システム開発のプロジェクトが相次いで発表された年でした。これらの新しい分散システムを開発する理由や、その背景にあるものは何なのでしょうか? 今回は、昨年末に開催された高信頼性分散システム系の国際学会であるSRDS 2014[1]の発表内容に関連する論文の話題も踏まえて、昨今のクラウド各社の分散システムの動向について整理してみます。 分散システムにおけるクラウド各社の動向 近年の分散データベースの世界では、AmazonのDynamo[2]やFacebookのCassandra[3]などを代表とする結果整合性(Eve

    分散システムの一貫性に関する動向について
    koemu
    koemu 2015/04/06
    参考文献が興味深い
  • Vitess

    Scalable. Reliable. MySQL-compatible. Cloud-native. Database. ScalabilityVitess is compatible with MySQL while extending its scalability. Its built-in sharding lets you grow your database without adding sharding logic to your application. PerformanceVitess improves on MySQL performance through query rewriting, caching and connection pooling. This allows the number of concurrent client connections

    Vitess
  • Distributed systems theory for the distributed systems engineer | Paper Trail

  • NSQ Docs 1.3.0 - A realtime distributed messaging platform

    Distributed NSQ promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. See features & guarantees. Scalable NSQ scales horizontally, without any centralized brokers. Built-in discovery simplifies the addition of nodes to the cluster. Supports both pub-sub and load-balanced

    koemu
    koemu 2014/12/01
    "NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day."
  • Goと大規模分散システムの相性 - ワザノバ | wazanova

    Googleで分散システムの開発をてがけ、現在はソーシャルメディア mttr.toを立上げ中のBen Sigelmanが、Goを分散システムの開発に利用する場合の、メリットおよびチャレンジについて講演しています。 分散システムのあるべき姿 分散システムの勘所は、最上位ビットをパフォーマンス的にも構造的にもうまく扱うことができるかというのがポイント。その効果が一番大きい。スループットの改善のような詳細は、自分もGoogleでそれに取組んだけれども、9ヶ月くらいたつとハードウェアの性能で解決される可能性が高い。また、構造的にというのは、なるべく小さなコンポーネントを組み合わせたシステムにできるかという意味。 Goのよいところは、 両方、とくに後者によい。Railsだとアプリを複数個用意して並列処理するのは大変だったけど、Goだとシンプルにできて、標準ライブラリも読みやすいとかなどなど。パフォー

  • Build, Operate, and Secure Distributed Applications | Akka

    Build, Operate, and Secure Distributed Applications Simpler Concurrent & Distributed Systems Actors and Streams let you build systems that scale up, using the resources of a server more efficiently, and out, using multiple servers. Resilient by Design Building on the principles of The Reactive Manifesto Akka allows you to write systems that self-heal and stay responsive in the face of failures. Hi

    Build, Operate, and Secure Distributed Applications | Akka
  • 分散環境でどうなるかはテストしてみないとわからない - ワザノバ | wazanova

    https://www.youtube.com/watch?v=QdkS6ZjeR7Q 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 Kyle Kingsburyは、「クラウドにおいてもネットワークパーティションは起こりうるゆえに、DBなどのプロダクトはマニュアルやマーケティング資料で説明している仕様 & パフォーマンスを、分散環境では必ずしもだせない。」というテーマでの検証結果を公表しているブログのシリーズと、ストレス下での計測ツールJepsenで知られています。ここ1年半ほどで、 PostgreSQL / Redis / MongoDB / Riak / Zookeeper / NuoDB / Kafka / Cassandra / Redis / RabbitMQ / etcd / Consu

  • 分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ

    技術部アルバイトの鈴木(@draftcode)です。 クックパッドが内部向けに開発・運用を行ってきた、分散テスト実行システムRRRSpecをオープンソースとして公開しました。RRRSpecは時間のかかる自動テストを分散処理することで、全体のテスト時間の短縮を狙うアプリケーションです。現在クックパッドでは17000を超えるテスト項目があり、マシン一台でテストを実行すると完了まで数時間かかります。このテストを60並列程度の分散処理で行うことで、平均8分から9分程度で完了できるようになりました。また、Amazon EC2のスポットインスタンスを利用することにより、大幅なコスト削減も同時に達成しました。 https://github.com/cookpad/rrrspec 分散テスト実行とは アプリケーションが大きくなるにつれて、自動テストの数も大きくなっていきます。クックパッドでは、非常に多くの

    分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ
    koemu
    koemu 2014/03/24
    サーバを分散してテストするために利用する