InfoQ ホームページ Concurrency に関するすべてのコンテンツ
-
大規模コードベースを効率的に処理するInferのAndroid用新デッドロック検出ツール
ロンドン大学カレッジとFacebookの研究者らが共同研究により、AndroidのJavaコード用のデッドロック検出ツール(deadlock detector)を新たに開発し、オープンソースの静的解析ツールであるInferの一部として公開した。この新しいアナライザは、CIパイプラインに統合するために特別に設計されたインクリメンタルなアプローチにより、大規模なコードベースを効率的に処理することができる。
-
OCaml 5、マルチコアサポートを導入へ
OCamlチームが言語ランタイムのマルチコアサポート追加に関する詳細なロードマップを公開した。OCaml 5に向けた次期マイナーリリースでは、マルチコアランタイムと標準ランタイムの統合に重点が置かれている。
-
.NET 6: スレッドの改善
非同期や並列プログラミングの複雑さを抽象化するために多数のライブラリが存在するが、それでも開発者は、時々、下位のスレッド処理ロジックへの落とし込みが必要になる。.NET6シリーズのAPIの変更に続いて、マルチスレッドのいくつかの新しい効果的な方法を見ていこう。
-
ZippyDB:Facebookの強力な一貫性のあるKey-Valueストアのアーキテクチャ
Facebook Engineering recently published how it built its general-purpose key-value store, known as ZippyDB. ZippyDB is Facebook's biggest key-value store, which has been in production for more than six years. It offers flexibility to applications in terms of tunable durability, consistency, availability, and latency guarantees.
-
async/awaitとアクタをサポートするSwift 5.5
WWDC21で、AppleはSwift 5.5を発表した。現在はベータ版が使用可能だ。新機能の中で、最も待ち望まれていたもののひとつが、async/awaitとアクタを使用した並行処理サポートの改善だ。
-
GitHubがRedisを使用してレートリミットをスケールアップ
GitHubのエンジニアであるRobert Mosolgo氏は昨日、Redisのシャーディングとレプリケーションを使用したレートリミッタを使ってGitHub APIをスケールアップした方法について、詳細に説明した記事を投稿した。GitHubは以前のMemcachedベースのレートリミッタから、Redisベースのものに移行した。Mosolgo氏によると、新しい実装では信頼性の向上、クライアントの問題解決、GitHubのサポート負荷の低減が実現されている。
-
Rustの非同期ランタイムであるTokioが1.0に到達
Tokioは、Rustで信頼性が高く高速な非同期プログラムを作成するためのビルディングブロックを提供することを目指している。最近発表されたTokio 1.0は、TCP、UDP、タイマー、マルチスレッド、ワークスティーリングスケジューラなどをサポートしている。
-
データ競合のない並列言語を目指すSwift
Swiftチームは、Swiftの並列性サポートの改善に向けたロードマップを公開した。最初のフェーズでasync構文とアクタを進め、第2フェーズでデータ競合(data races)とデッドロックを排除する予定である。
-
堅牢なテスト戦略により自信を持ってDropbox Syncをリライト
過去数年間、Dropboxのエンジニアはクライアント側の同期エンジンをゼロから書き直してきた。DropboxのエンジニアであるIsaac Goldberg氏は、明確なテスト戦略を定義していなければクイックなリリースサイクルで新しいエンジンを構築して出荷するのは、不可能だったと述べている。
-
Swift Atomicsにより、Swiftでファーストクラスのatomic操作が可能に
Swift Atomicsは、システムプログラマーがSwiftで直接、同期構造を記述できるようにすることを目的としている。
-
JetPackとDropbox Storeを使った最新のAndroidアプリケーションアーキテクチャ
Dropboxは先頃、現在のAndroid開発者エコシステムにより合うように改良するために、オープンソースのStoreライブラリの所有権を獲得した。 New York Timesがオリジナルを開発した後、CoroutinesとFlowをベースにKotlinで書き直されたStoreは、Google JetPackライブラリコレクションとともに、最新のAndroidアプリ開発ソリューションを提供するライブラリである。
-
RustによるElixirインターフェースを用いたパフォーマンス改善 - DIscordの事例
Discordチームは、大規模データ構造を扱うBEAMのパフォーマンスが限界に達したことから、1,100万に達する同時ユーザ数に対する同社システムのスケールアップを、RustによるElixirインターフェースに頼ることにした。
-
WorkerDOMはJavaScriptプログラミングにDOM並行処理を加える
今年のJSConfの大きなニュースはWeb WorkerでDOMを利用可能にするJavaScriptライブラリであり、開発者がマルチコアプロセッサアーキテクチャを活用してWebパフォーマンスを向上させることができるWorkerDOMが紹介されたことである。
-
フェイスブックがRacerDをオープンソースに - Javaの競合状態を検出
フェイスブックのオープンソースの静的解析ツールであるInferが、RacerDによるJavaコード競合状態検出を追加して公開された。
-
QCon New York 2017: システム内のイベントの順序付け
Samsaraのソフトウェア技術者であるKavya Joshi氏が、QCon New York 2017で、happens-before原則について詳細に解説した。その中で氏は、分散型キーバリューストアであるRiakがノード間の因果関係の確立にベクトルクロックを使用している方法を解説するとともに、Goの並列処理プリミティブに注目し、それがhappen-before制約を自然に表現できる点について説明した。