並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 292件

新着順 人気順

排他制御の検索結果161 - 200 件 / 292件

  • 分間10万リクエストを捌く、メール/プッシュ通知 大量配信AWSアーキテクチャ

    こんにちは。 株式会社ココナラで技術戦略室を担当しているKと申します。 本記事では、ココナラで使用しているメール/プッシュ通知の配信基盤についてお話ししたいと思います。 この基盤は2年ほど前に構築したものです。 今回記事に取り上げたのは、今後AWSにコストを抑えた上で高速に処理する仕組みを構築する際の参考になるかもしれないと思ったためです。 本記事では、大きく以下の2点をお話しします。 構築に至った背景 アーキテクチャの詳細と結果 前提として、ECサイトと配信の関係 一般的に、ECサイトではマーケティングを目的として、メールやプッシュ通知を配信します。 ユーザーが多ければ多いほど、その配信数も多くなります。 ココナラもスキルのECサイトの構造であり、ユーザー数は300万人を超えています(2022年8月末現在)。 したがって、他のECサイトと同様に多数のメールやプッシュ通知を配信しています。

      分間10万リクエストを捌く、メール/プッシュ通知 大量配信AWSアーキテクチャ
    • IT用語を使ったユーモラス日常会話集 - Qiita

      こんにちは、ボケ倒したいのを日頃我慢しているむっそです。今回は日常会話で使えば面白くなりそうなIT用語を用例も交えて書いていこうかと思います。 うまく使えれば知的ユーモアの溢れるインテリパーソンになれるかもしれないし、スベり散らかしてしまえばこの世のゴミみたいな不当な扱いを受けるかもしれないです。 試すかどうかは、、、そう、あなた次第です。 コロナで在宅3年とかやってたら発狂してネタ記事くらい書きますよ、人間だもの はじめに この記事を思いついたきっかけは私の好きな本である、インテリ悪口本のコンセプトです。 要はインターネットに氾濫する悪口がつまらないのは、そこに知性もユーモアも宿っていないからであり、うんちくやユーモアを付け加えることで悪口を楽しさや知的好奇心に変えられるというコンセプトです。 このコンセプトに則り、下品な飲み会や、吐き気がするほどつまらない1on1などの日常会話で、IT

        IT用語を使ったユーモラス日常会話集 - Qiita
      • Excelでテトリスを実現!VBAは使わずにRPAで作ってみたらいい感じだった【UiPath Forms 23.4】 - Qiita

        テトリスってどうやって動いてるの? そもそもテトリスって何?という方はいないと思いますが、テトリミノと呼ばれるブロックが上から落ちてくるので、それを上まで積まないようにします。ブロックを横1列全て並べると消すことができます。 テトリスってどう動いているのかご存じですか? だいたいの流れを知っていた方が今回の記事の内容が理解しやすいと思いますので、まずはテトリスの作り方をChatGPT先生に聞いてみましょう。 import pygame import random # テトリスの初期設定 pygame.init() WIDTH, HEIGHT = 800, 600 GRID_SIZE = 30 GRID_WIDTH, GRID_HEIGHT = WIDTH // GRID_SIZE, HEIGHT // GRID_SIZE FPS = 30 # 色の設定 BLACK = (0, 0, 0)

          Excelでテトリスを実現!VBAは使わずにRPAで作ってみたらいい感じだった【UiPath Forms 23.4】 - Qiita
        • 特集は「ラズパイPicoで1500行 ゼロから作るOS」——CQ出版が「Interface 2023年7月号」を発売|fabcross

          本号の特集は「ラズパイPicoで1500行 ゼロから作るOS」だ。1500行からなるOS「Try Kernel」の作成について、開発環境の構築から起動処理プログラムの作成、プログラムを切り替えるディスパッチャーやタスクの順番を決めるスケジューラーといったマルチタスク機能、さらにはセマフォによる排他制御などタスクの同期と通信機能、作成したOSで動くRaspberry Pi Pico向けアプリケーションの作成などについて一通り解説する。 B5判208ページで、定価は1320円(税込)だ。

            特集は「ラズパイPicoで1500行 ゼロから作るOS」——CQ出版が「Interface 2023年7月号」を発売|fabcross
          • 【Goのやさしい記事】goroutineと排他制御を10分で入門しよう! - Qiita

            はじめに この記事ではgoroutineおよび関連性の高いsyncパッケージの基本知識や使い方をまとめます。 Goの基本的な文法はざっと触れたが、「goroutine」、「WaitGroup」、「channel」、「Mutex」などの言葉を聞いて全く心配ないとは言い切れない人向けの記事です。 残念ながら、メモリやCPU、プロセスなどのOSに近いところまでは踏み入れません。 goroutineは簡単だとよく聞きますが、そもそも並行処理そのものが難しいので1つずつ理解してきましょう! 本記事での動作確認環境は以下です。 Goでの並行処理 ネットワーク通信などで待ち時間の大きい処理を非同期に行いたい、直列で動作させる必要がない処理群を高速に終わらせたいなどを理由に並行処理を使うことが多いと思います。 Goではgoroutineと呼ばれる軽量スレッドを簡単に動かせます。 なぜ「軽量」か メモリ消費

              【Goのやさしい記事】goroutineと排他制御を10分で入門しよう! - Qiita
            • たとえばなしで見る誇張の少ない「並行」と「並列」

              まえおき 参考 前回の記事では「並行の間違った理解を正すため」に分かりやすさを優先し若干(相当)誇張を入れて「間違いとは言いきれないけれども必ずしも正しいとも言えない」形で並行計算と並列計算を定義しました。 特に並列計算については記事の本題ではなかったために相当に雑な定義となっていました。その件に関していくらか指摘もありましたので、ある種の責任を果たすために前回よりももう少し真面目にその差異を示しておこうと思います。 ただ読み始める前に、大前提として並行計算と並列計算という言葉は使う箇所、すなわち必要とされるシーンが異なっているために差異を考えるという行為それ事態にあまり意味がありません。見た目や一部の性質は似ていても必要とされるシーンは大きく異なる言葉なんだということを念頭に置いた上で以下を読んでください。 ちなみに私はちょっとハードウェアにも詳しいソフトウェアエンジニアという視点を持っ

                たとえばなしで見る誇張の少ない「並行」と「並列」
              • 40以上のバッチ、アプリケーションに影響するElastiCacheのアップグレードを行ったんだぁ。がんばったんだぁ。

                ある日の出来事 スターフェスティバルのDPontaroです。 GWに差し掛かる頃でしたでしょうか。社内slackでこんなやり取りがありました。 といった流れで作業していくこととしました。 調査開始 関連アプリケーション ひとまずアップデートを行うことで、どのアプリケーションに影響があるのか調査を行うこととなりました。 本番環境で対象となっていたElastiCacheインスタンスは2台。 ありがたいことに、使用状況のドキュメントが残されており Redis上のどのdbが、どのアプリケーションで使用されているかまとめられていました。 ドキュメントによると、関連するアプリケーションは10ほどありましたが、 ほとんどがセッション情報や、クエリのキャッシュ情報なので 大きなリスクは無さそうだなと”この時は”思いました。 さて、えてしてドキュメントというのはメンテが追いついていない可能性もあるため 記載

                  40以上のバッチ、アプリケーションに影響するElastiCacheのアップグレードを行ったんだぁ。がんばったんだぁ。
                • チームでコードレビューをしているときに考えていること - フツーって言うなぁ!

                  この記事はなに? 最近、自分の経験や考えていることを言語化してみる実験をしています。 自分で言語化したことのある概念については自信を持って他の人に話せるし、一般化して横展開していくことも可能になるので、メリットが大きいのかなと。 第一弾として、私がテックリードとしてチーム内でコードレビューをしている際に考えていることをまとめてみました。 注意点 思いついたら随時更新します 今回の話のターゲットは主にWebフロントエンド/バックエンドのアプリですが、その他の開発にも使えるノウハウはあると思います ここで書いているのは、仕事でチームを組んだ際にピアレビューをする際の話です。OSS等のコードレビューとは違いがあるかもしれないです TL; DR 十分な事前準備をすることでレビューの手間を減らそう 目的にフォーカスすることで本質的で建設的なレビューをしよう コードレビューを通してレビュワー、レビュイ

                    チームでコードレビューをしているときに考えていること - フツーって言うなぁ!
                  • AWS 認定 デベロッパー – アソシエイト(AWS Certified Developer – Associate)の学習方法 - NRIネットコムBlog

                    小西秀和です。 この記事は「AWS認定全冠を維持し続ける理由と全取得までの学習方法・資格の難易度まとめ」で説明した学習方法を「AWS 認定 デベロッパー – アソシエイト(AWS Certified Developer – Associate)」に特化した形で紹介するものです。 重複する内容については省略していますので、併せて元記事も御覧ください。 また、現在投稿済の各AWS認定に特化した記事へのリンクを以下に掲載しましたので興味のあるAWS認定があれば読んでみてください。 ALL Networking Security Database Analytics ML SAP on AWS Alexa DevOps Developer SysOps SA Pro SA Associate Cloud Practitioner 「AWS 認定 デベロッパー – アソシエイト」とは 「AWS 認定

                      AWS 認定 デベロッパー – アソシエイト(AWS Certified Developer – Associate)の学習方法 - NRIネットコムBlog
                    • OSSへの貢献ノウハウ: ユーザサポート編 - Cybozu Inside Out | サイボウズエンジニアのブログ

                      はじめに こんにちは、Necoプロジェクトのsatです。本記事は先日公開した以下の記事の続編です。 blog.cybozu.io 上記の記事ではOSSプロジェクト全体を盛り上げる手段を次のように紹介しました。 プロジェクト全体を盛り上げるには例えば次のような方法があります。 自社に直接関係が無いissue/PR発行、レビュー ユーザサポート イベントでの発表 本記事では、このうちのOSSにおけるユーザサポートとはどのようなものかについて、Rookにおいて発生した実際の問題を例として書きます。この問題の根本原因はカーネルだったためにカーネルの用語がいくつか出てきますが、あまり気にせずにフィーリングで読んでいただければとおもいます。本記事で一番伝えたいのはカーネルの技術的な知識ではなくOSSにおけるユーザサポートのノウハウです。 Rook、およびRookが管理するCephについては過去記事をご

                        OSSへの貢献ノウハウ: ユーザサポート編 - Cybozu Inside Out | サイボウズエンジニアのブログ
                      • それって,ブロックチェーン使わなくてもいいんじゃないですか? 第2回:サトシとアイテムDUPE

                        それって,ブロックチェーン使わなくてもいいんじゃないですか? 第2回:サトシとアイテムDUPE ライター:しおにく こんにちは! しおにくです。ブロックチェーンゲームの未来を見据える連載の,第2回です。前回の最後で「サトシ」という名前を出しました。ポケモンのサトシでないとしたら,一体誰のことなのか。 ブロックチェーンのサトシって誰だ? ブロックチェーンの歴史……といっても,2008年10月31日に最初の論文が発表された比較的新しい技術なので,まだ15年ほどしか経っておりません。そしてその15年を語る上で避けて通れない人物が,「サトシ・ナカモト」なのです。 そしてこのサトシさん,2023年現在でもいまだ正体不明です。この名前さえも偽名ではないかと言われています。 彼は「Bitcoin:A Peer-to-Peer Electronic Cash System」(ビットコイン:ピアツーピア電子

                          それって,ブロックチェーン使わなくてもいいんじゃないですか? 第2回:サトシとアイテムDUPE
                        • ソフトウェア開発で漏れなく見積もりや設計するための観点表 - Qiita

                          見積の時点で機能の想定に漏れがあると工数が増大する 見積時点で機能が洗い出せておらず、始まってから想定していなかった機能に対し、工数が増大することがあります。 そこでせめて、最低限のチェックができるようにと観点表の作成を始めました。 見積時点でこのくらい考えておきたいと思っている内容です(どこまでできるかは期間に応じてですが、、、)。 設計にも使えるかと思うのでQiitaにメモとして残しておこうと思います。 何か書籍を参考にしたわけではないので、間違いや自分はこうしているというものがあれば コメントいただけると幸いです。 新規システムの場合 全体に関わる部分や共通ルールの検討をするための時間を見積もりに忘れないこと。 具体的には下記作業を想定する必要がある。 (似たようなプロジェクトがあれば、それを流用することも想定可能) 業務フローを理解できているか 業務フローと業務化する対象範囲を把握

                            ソフトウェア開発で漏れなく見積もりや設計するための観点表 - Qiita
                          • あなたは世界初の「NoSQL」はシェルスクリプト用のRDBMSだと知っていますか? - Qiita

                            はじめに 知っての通り NoSQL とは一般的には RDBMS ではないデータベース管理システムのことですが、実は 世界初の「NoSQL」は Unix シェルベースの RDBMS なのです。NoSQL は Unix 哲学に基づいており、標準入出力やパイプを使うフィルタコマンドや、SQL の JOIN や集合演算相当の機能を持ったコマンドセットとなっており、シェルスクリプトや awk や Perl で実装されており、データはすべてプレーンなテキストファイルに保存します。 それが「NoSQL: a non-SQL RDBMS」です。 注意 この記事は技術系の読み物(雑学)です。データベースの技術的な話はほとんど出てこないのであしからず。 ネタバレ この NoSQL が誕生したのは 1998 年です。そして、みんなが知ってる NoSQL という言葉が誕生したのは 2009 年です。そういうことで

                              あなたは世界初の「NoSQL」はシェルスクリプト用のRDBMSだと知っていますか? - Qiita
                            • Javaのスレッド(Thread)を使いこなすコツを、基礎からしっかり伝授

                              Javaのスレッド(thread)とは、プログラム上で複数の処理を同時に動かす仕組みです。スレッドをJavaで使うためのクラスjava.lang.Threadを指す言葉でもあります。 さて、多くの作業は人が手分けすれば早く終わります。違う作業であっても、それぞれの作業へ人を割り当てれば同時に行えます。当然、一人での作業より効率的です。 それと同じで、プログラムでも処理を複数同時に動かせば、短い時間で効率よく処理できます。その仕組みがスレッドです。スレッドは、今ではごく当たり前に使われているのです。 この記事では、Javaでのスレッドの考え方・使い方の基本から、スレッドを使う上で気を付けたいこと、スレッドに関する話題について、ポイントを絞って初心者向けに説明します。 ※この記事はJava 13時点の言語仕様・APIに基づいています。サンプルはJava 13の環境で動作確認しています。 1.ス

                                Javaのスレッド(Thread)を使いこなすコツを、基礎からしっかり伝授
                              • Laravelで楽観的ロックをつくってみる - Qiita

                                Laravelには悲観的ロックの機能は備わってるけど、楽観的ロックの機能が用意されていないっぽいのでつくってみました。 そもそも悲観的ロック・楽観的ロックとは?? 書きたい事から外れるので、ざっくりというと、、 悲観的ロック:自分がデータを取ってきた時点でロックをかけて、他の人にはそのデータを取ってこれないようにする。 楽観的ロック:誰でもデータを取ってこれるけど、先に更新した人が勝ちで、更新前のデータを後から更新しようとしてもダメ。 わかりやすく丁寧に説明してくれている記事はこちら↓ 「排他制御(楽観ロック・悲観ロック)の基礎」 「データベースの「ロック」という概念は2種類ある」 ということで、今回は「楽観的ロック」を作ってみます。 たまに見かける「他の人が変更してるので、画面更新して最新の情報を表示してね」的なメッセージが出るアレです。 今回は管理画面で「タイトル」と「本文」だけがある

                                  Laravelで楽観的ロックをつくってみる - Qiita
                                • PHPカンファレンスの過去14+3回の登壇を振り返る - Qiita

                                  PHP Advent Calendar 2023の18日目の記事です。 PHPカンファレンスに登壇した記録を書きたいと思います。数えてみますと、2009年から昨年(2022年)までのPHPカンファレンス14回と、北海道2回、関西1回の合計17回登壇したことになります。 最初の登壇は14年前ですので、私の考えも当時からは変化していますので、そのあたりも触れながら紹介していきたいと思います。 PHP カンファレンス 2009 最初の登壇は2009年のPHPカンファレンスでした。この年はビジネスデイとテックデイに分かれていまして、ビジネスデイで登壇依頼を頂きましたので、当時温めていた「ウェブサイトを発注する際のセキュリティ」についてお話しました。 スライドの中で「脅威分析やってもあまり意味ない」みたいな物騒な意見が書いてあります。当時はそのように考えていたわけですが、これは当時のサイトがECサイ

                                    PHPカンファレンスの過去14+3回の登壇を振り返る - Qiita
                                  • Rails on YOUTRUST <ロジックどこ置く?編> - YOUTRUST Tech Blog

                                    こんにちは、YOUTRUSTのやまでぃ(YOUTRUST/Twitter)です。 前回の記事より約4ヶ月振りの登場です。 前回の記事ではたくさんの反響ありがとうございました。まだ未読の方は是非読んでみてください。(スケーラブルなリスティングロジックについてです) 最近のわたくし事ですが 今ONE PIECEの連載が最終章に突入して熱いとの噂をキャッチし、8月に入ってから漫画を最初から全巻読み直しています。 僕のマイサウナである国立温泉 湯楽の里に全巻置いてあり、毎回1000円弱でサウナに水風呂に漫画まで読めて最高です。深夜1時まで営業しており、最近土日の大半はここにいます。(何なら平日も昼間からいるときも?) マイサウナの湯楽の里。食堂で毎回サバ注文してます。 今回は何書くの? Railsのロジックのクラス分けについて書きます。 弊社ではキャリアSNSとHR SaaSの2つのプロダクトを提

                                      Rails on YOUTRUST <ロジックどこ置く?編> - YOUTRUST Tech Blog
                                    • 【AWS Redshift】導入前に知っておくべきこと - packpak’s diary

                                      AWS Redshiftを導入する前に知っておくべき、AWS Redshift の特性、長所、他所を開発・運用してきた中で要所っぽいところをいくつかTips的にまとめた。 字量が非常に多くて申し訳ないが、参考になれば。 RDBに比べて有用なケース/苦手なケース 下記のケースに合致する。 SQL文をベースとした、複雑で演算コストの高いETL(分析用途用のデータ加工処理の通称)の実行 BIツールのような、3~5列程度の列を利用した参照クエリの実行。 下記のケースは向かない。 短時間で非常に多くのクエリを実行するアプリケーション(1秒に5~10クエリなど)のバックエンド 短時間で非常に多くのCommitを実行するアプリケーション(Webフレームワークが勝手に)のバックエンド 一度に多くの列を取得するクエリを発行するアプリケーション(CSV出力など)のバックエンド 性能について クエリの性能 1つ

                                        【AWS Redshift】導入前に知っておくべきこと - packpak’s diary
                                      • [Kinesis Data Streams] ストリームを挟んでS3に一覧ログを記録してみました | DevelopersIO

                                        1 はじめに CX事業本部の平内(SIN)です。 処理ごとに蓄積される「一覧(ログ)ファイルを、リアルタイムにS3上に作成する」というニーズに対して、昨日、下記のようなブログを書きました。 これに対して、社内から、このような要件なら、「FIFOなSQSより、KinesisでSequenceで管理した方がLambdaも入れやすいし使い勝手は良さそうな気がします。」という貴重なアドバイスを頂いたので、やってみました。 注意:今回も、S3の「結果整合性」の制約下で完全な「排他制御」が出来たわけではありませんので・・・「それでも!」という方は、読み進めて頂ければ嬉しいです。 2 Kinesis Data Streams Kinesis Data Streamsを log-sample-stream という名前で作成しました。 ストリームを処理するタスクの同時実行を制限するために、シャードを1に設定

                                          [Kinesis Data Streams] ストリームを挟んでS3に一覧ログを記録してみました | DevelopersIO
                                        • DBが関わるテストコードについて、私の場合 - 日々量産

                                          www.mizdra.net 皆さんがどうしているのか知りたい! 私も知りたい!!! ちょっとはてブコメントで雑に書いてしまったので、私の場合をちょっと記事にしてみることにしました。 ただ、特に変わったことはやってないと思います。必要だと思うテストケースなら歯を食いしばって書いたりレビューしたりしています。 なのでこの記事を読む価値はほとんどありません。ご清聴ありがとうございました。 追記: 読み返すとまとまりの無さが酷い。酔った勢いでダラダラ書いてしまった良くない・・・ 私の場合(要約) テストを考慮してない実装についてはDBを使うテストを書いていました。 DBのテストデータは実際には自動生成することはありませんでした。良さそうなら試したいですが基本的にやりたいテストケースがあって書くのでランダム値を使おうとは思わないです。 DBの依存をRepository層としてインタフェースに切り出

                                            DBが関わるテストコードについて、私の場合 - 日々量産
                                          • PlantUMLを通じてシーケンス図の描き方を学ぶ - EurekaMoments

                                            UML2.0クイックリファレンス 作者:Dan Pilone,Neil PitmanオライリージャパンAmazon 目次 目次 はじめに シーケンス図とは 設計プロセスにおけるシーケンス図の立ち位置 シーケンス図の描き方についてのヒント ヒント1 ヒント2 シーケンス図を構成する要素 メッセージ 自己メッセージ 外部とのメッセージのやり取り ライフライン 実行仕様(イベント)の表現 シーケンス図の例: ログイン 複合フラグメント alt 分岐処理の表現例 ref 相互作用使用 別参照 opt 条件による実行の表現 delay 非同期の遅延処理 par 並列処理 loop 繰り返し処理 break 中断処理 critical 排他制御処理 グループ化 作成と消滅 上下でメッセージ間でスペースを空ける 分離線 ボックス ノート メッセージのノート GitHub 参考資料 はじめに ソフトウェア

                                              PlantUMLを通じてシーケンス図の描き方を学ぶ - EurekaMoments
                                            • PlasticSCM(Unity Version Control)でUnityアセットをバージョン管理する | QualiArtsエンジニアブログ

                                              はじめに 株式会社QualiArtsでTA(テクニカルアーティスト)をしている見原です。 本稿では、弊社のUnityプロジェクトにおいて、アセットのバージョン管理にPlasticSCM(UnityVCS)を導入した事例を紹介します。 これまでのアセットのバージョン管理 QualiArtsではこれまでアセットのバージョン管理にSVN(Subversion)を使用していました。 アセットのバージョン管理システムとして求める最低限の要件は満たしていたものの、以下のような課題がありました。 大量ファイルのコミット、ダウンロードが遅い 実際のファイルサイズの倍のストレージを消費する しばしばDBの破損やqueueの状態による問題が発生する TAやエンジニアがsqliteを操作して復旧作業を行う必要がある そんな折、PlasticSCMがUnityファミリーに加わったため、今後のUnityエディターと

                                                PlasticSCM(Unity Version Control)でUnityアセットをバージョン管理する | QualiArtsエンジニアブログ
                                              • 「モデリングを用いて設計すること」との要件で既存システムをリニューアル。設計者が感じたモデリングとそのツールのメリット、そして課題とは[PR]

                                                「モデリングを用いて設計すること」との要件で既存システムをリニューアル。設計者が感じたモデリングとそのツールのメリット、そして課題とは[PR] 情報システムを構築するうえで、適切に要件を把握し設計することは欠かせません。適切に要件を把握して設計へ落とし込む、いわゆる設計開発における代表的な手法の1つに「モデリング」があります。 モデリングは一般に、要件や仕様を抽象化しつつ、その内容をUMLやsysMLといった標準化されたモデリング言語を用いて記述していきます。これにより、漏れやあいまいさを極力排除でき、ダイアグラムによって内容が可視化されるなど、設計開発に多くのメリットをもたらしてくれます。 そしてモデリングを行う際にはモデリングツールを用いることが一般的です。 モデリングツールの支援によって、ダイアグラムの作成、ドキュメントの共有とバージョン管理、アクセス権、排他制御などを用いたチームで

                                                  「モデリングを用いて設計すること」との要件で既存システムをリニューアル。設計者が感じたモデリングとそのツールのメリット、そして課題とは[PR]
                                                • iOS13とVision.frameworkで犬と猫に癒される - Qiita

                                                  Ubiregi Advent Calendar 2019 17日目です。 今回はiOS13のVision.frameworkで新たに使えるようになったVNRecognizeAnimalsRequestを使って動物(🐶と🐱)を識別するアプリのサンプルを紹介します。 Vision.frameworkとは 参照:https://developer.apple.com/documentation/coreml iOS11から追加された画像や映像から人や文字など様々なものを識別するAPIを提供するApple標準フレームワーク 機械学習フレームワークのCore MLを抽象化したもの iOS13から新たに🐶と🐱の識別子が追加された🎉🎉🎉 やってみた 私の家には可愛いがいて被写体としてちょうどいいんですが残念ながら🐶を検出できないため、 今回は止む無くネットから拾ってきた画像を使いカメラロ

                                                    iOS13とVision.frameworkで犬と猫に癒される - Qiita
                                                  • 自作RDBMSやろうぜ!(出張版) - Qiita

                                                    ご無沙汰しています。 ryo_gridです。 Disclamer 本記事は自作DBMSやろうぜ! のページの 22/05/11 JST 7:45 の時点での内容をQiita記事向けに修正して作成したものです 元コンテンツのライセンスについては以下をご参照ください LICENCE 元コンテンツの方は更新が継続されていますので、よろしければそちらもご覧ください この記事の目的 RDBMS(いわゆるリレーショナルデータベース)というものはプログラミング言語の処理系や、OSなどと同様に、世の中で広く使われているソフトウェアであるにも関わらず、自作してみようと思うと日本語で記述されたサイトで、必要な情報・情報源がまとまったサイトがないことに気づきました そこで、筆者(ryo_grid) および数名のコミッタで開発している自作RDBMSである SamehadaDB が軌道に乗るまでの経験をベースに、自

                                                      自作RDBMSやろうぜ!(出張版) - Qiita
                                                    • 安全性-活性分解定理とその関連研究 - チェシャ猫の消滅定理

                                                      こんにちは、チェシャ猫です。先日行われた第 7 回 Web System Architecture 研究会で形式手法について発表してきました。 普段、形式手法について登壇する際は具体例な検証例を出すことが多いですが、今回は理論側に寄せたサーベイになっています。 はじめに 本セッションでは、安全性-活性分解 (safety-liveness decomposition) と呼ばれる一連の結果について解説する。安全性-活性分解は、システムの仕様が与えられた時、それを安全性 (safety) および活性 (liveness) と呼ばれる、よりシンプルな特徴付けを持つクラスに分解して扱うための方法論である。さらにセッションの後半では、安全性と活性の組み合わせ以外にも提案されている派生的な特徴付けについても述べる。 Web アプリケーションと形式手法 システムやプログラムの性質を何らかの数学的な対象

                                                        安全性-活性分解定理とその関連研究 - チェシャ猫の消滅定理
                                                      • ミューテックスの公平性 - Qiita

                                                        排他制御をするときにチェックする2つのポイント 排他制御をするときにチェックすべきポイントは2つあります. 2つ以上のプロセスが同時にクリティカルセクションに入らないこと(安全性 safety) プロセスがロックを要求したら,いつかはロックが獲れること(活性 liveness) ミューテックスを用意して lock/unlock を正しく配置すれば安全性は保証されます. しかし活性を保証してくれるとは限りません.たとえば POSIX の pthread_mutex_lock/unlock を見ると,複数のスレッドがミューテックスを待っているとき,次に獲得するスレッドはスケジューリングポリシーで決まるとあり,スケジューリングポリシーの項を見ると SCHED_FIFO のようなものがありますが optional であると書いてあります.つまり,実装によってはロックを要求しても永久にもらえない可能

                                                          ミューテックスの公平性 - Qiita
                                                        • 半年でPHPのエラー通知を撲殺しまくった話 - Chatwork Creator's Note

                                                          どうも。ご存じ、サーバーサイド開発部(PHP)のやまざきです。 『優れた UX は心地のよい Developer Experience から生まれてくる』と信じて20余年。今年は最高な年になりそうです。 さて本ブログの本題ですが、ある程度のサービス規模になってくると運用・保守は大変になってきますよね。今日は昨年2021年にサーバーサイド開発部(PHP)としてのサービス監視体制を改善していったよ、って話をふりかえりながら書こうと思います。 目次 目次 Chatworkのサーバーサイド運用・保守体制 バックエンドチームでの基本的な運用・保守体制 バックエンドで利用中のシステム監視SaaS Datadog New Relic バックエンドのアプリケーションログ基盤 バックエンドでのアプリケーションログ収集のデータフロー PHPシステムでのアプリケーションログの通知 サーバーサイド開発部(PHP)

                                                            半年でPHPのエラー通知を撲殺しまくった話 - Chatwork Creator's Note
                                                          • Elixir を支える技術 -「落ちない」システムの秘密に迫る - builderscon tokyo 2019

                                                            Abstract Elixir というプログラミング言語をご存知でしょうか? Ruby に似たモダンなシンタックスをもつ言語であり、Erlang という言語にコンパイルされて、Erlang VM の上で実行されます。 Erlang には 20 年以上の長い歴史があり、古くは電話交換機から、インターネットの膨大なトラフィックをさばくスイッチ、数億人規模のメッセージングアプリなどで採用されています。最近では、Nintendo Switch 向けのプッシュ通知システムに採用されたことでも話題になりました。 採用されている事例からも分かりますが、大量のアクセスをさばく必要があり、高可用性と耐障害性が求められるシステムにうってつけの言語です。Elixir (Erlang) で書かれたシステムは「落ちない」とまで言われるほどです。 では、Elixir (Erlang) の高可用性と耐障害性は、どのよう

                                                              Elixir を支える技術 -「落ちない」システムの秘密に迫る - builderscon tokyo 2019
                                                            • 【勉強会メモ】AKIBA.AWS ONLINE #03 -IaC を語りたい 編- に参加しました - Load to Professional...

                                                              こんにちは、IaC経験は下記で、ほぼ初心者のAshisanです。 Ansible(運用で少々) AWS CloudFormation(構築で少々) 今日は、クラスメソッド株式会社のオンライン勉強会「AKIBAAWS ONLINE」に参加しました。 dev.classmethod.jp このイベントは3回目で過去3回とも全て参加していますが、特にアウトプットしていなかったのですが、特に今回は勉強中のIaCがテーマということで特別楽しみでした! そんなこんなで今回からレポートを書こう!と思い立ち、早速記事(ほぼメモですが)にしました。 レポート 1. IaCで全てが上手くいくと思うなよ!失敗事例のご紹介 Speaker:mokoさん 初めに いきなりまとめ 「IaCは手段であり、目標である」 「何も考えないでIaCにすると後悔する」 「リソースを素手で触らない強い意志」 IaCとは? IaC=

                                                                【勉強会メモ】AKIBA.AWS ONLINE #03 -IaC を語りたい 編- に参加しました - Load to Professional...
                                                              • SREチーム立ち上げてから6ヶ月経ちました - VTRyo Blog

                                                                2020年の1月から立ち上がったSREチームの取り組みをふりかえります。 blog.vtryo.me ※これらはSREチームの成果であり、記載された内容のすべてが筆者だけの成果というわけではありません 価値でみる 信頼性の向上 SLO/SLI モニタリング Terraformによる設定 セキュリティ Deploy改善 トイルの撲滅 改善の仕組み プラットフォーム改善 数字でみる その他:社外活動 SRE座談会 登壇 Podcast 今後の展開 価値でみる 結局の所、SREチームは事業にどのような価値をもたらしたのでしょうか。 まず課題として プロダクトのパフォーマンス向上の必要性 セキュリティ向上 (競合に勝つための)より高速な開発体制 がありました(これはどの組織でもあるでしょう)。 そこで弊SREチームの役割は、以下のような側面をもって活動しました。 信頼性に関連する運用開発(モニタリ

                                                                  SREチーム立ち上げてから6ヶ月経ちました - VTRyo Blog
                                                                • 自作RDBのためにオンディスク並行Skip Listを作ってみた - Qiita

                                                                  どうも ryo_grid です。 今回は自作RDBMS SamehadaDB の開発の中で、インデックスとして用いるためのコンテナとして、オンディスク並行Skip Listなるものを作ってみたので、それについて書きたいと思います。 (以降、文体が変わりますが気にしないで下さい) はじめに 本文書は筆者がオンディスク並行Skip Listを設計・実装してみた中で得た、知識や知見の共有を目的とするものである 英文のものも含め、Skip Listに関して、本文書で共有する種の情報がまとまった形で提供されているWebページ(等)は、筆者が探した範囲で見当たらなかったので、その点で、価値のある知識・知見として、多くの人の役に立てば幸いである Skip Listについて Skip Listとは いわゆる Key-Value ストアを実現する確率的なデータ構造 他の同様の機能性を提供するデータ構造に対し

                                                                    自作RDBのためにオンディスク並行Skip Listを作ってみた - Qiita
                                                                  • ストレージ性能設計・検証のすすめ③ : 性能試験を実施する際の考慮点

                                                                    本投稿、この投稿は、vExperts Advent Calendar 2021 の 12/20 分を担当しています。 元々、一昨年辺りからまとめていた仮想化環境におけるストレージ性能設計、検証方法の考慮点の3つ目のコンテンツの予定だったのですが、ずっと放置していたものをようやく投稿しました。 ストレージ性能設計・検証のすすめ① : vSAN 性能検証時に取得する情報ストレージ性能設計・検証のすすめ② : ストレージの性能を考慮した vSAN ハードウェア構成の組み方ストレージ性能設計・検証のすすめ③ : 性能試験を実施する際の考慮点 (本投稿) 私なりの vSphere 環境でのストレージ負荷試験時に考慮しているポイントをまとめていますが、ストレージ機器の性能検証をする時の参考にしていただく以外にも、一般的なアプリなどの性能検証時にも共通する部分があるかと思いますのでご一読いただければ幸い

                                                                      ストレージ性能設計・検証のすすめ③ : 性能試験を実施する際の考慮点
                                                                    • Microservice and Transaction Management3 : 合意理論からみる2Phase CommitとMicroservice - Qiita

                                                                      Microservice and Transaction Management3 : 合意理論からみる2Phase CommitとMicroservicemicroservicesTransactionCAPSAGApaxos はじめに 日立製作所クラウドビジネス推進センタの西谷淳平です。今までの連載の中では、分散トランザクションのACID特性と、その背後に潜む分散トランザクションの原則であるCommitment Orderingに着目し、Microservicesで流行っているSagaデザインパタンの整合性担保能力を語りました。その中で、SagaデザインパタンはIsolationだけではなく、A/Cの特性が失われているという事実を指摘し、その結果としてデータ破壊が起こり得るということを説明しました。 そして、Sagaにおける並行制御機能の欠落を埋めるには2Phase Lockの仕組みを導

                                                                        Microservice and Transaction Management3 : 合意理論からみる2Phase CommitとMicroservice - Qiita
                                                                      • GitLab導入した東京海上日動システムズ、アプリ開発をどう変えたのか

                                                                        今回はDevOps・CI/CD(継続的インテグレーション/継続的デリバリー)に関連した事例として、「GitLab」を導入した東京海上日動システムズを紹介する。保険金融グループである東京海上グループのシステムを支える同社は業務分析からビジネスプロセスの構築、幅広いソリューションの提案によって最適なシステムをつくり上げ、安定稼働させることを企業ミッションとしている。 以前のホスト中心のシステムから、今後はクラウドを活用した開発案件の増加が予想される中、同社はビジネススピードの加速によって必然的に求められる開発スピードの向上を実現するため、新たな開発支援ツールとしてGitLabを導入し多くの効果を得た。 集団での開発に不可欠な排他制御の実現 多くの開発者がシステム構築に従事する東京海上日動システムズは、開発時の「排他制御」が大きな課題となっていた。1990~2000年代、同社はホスト主体の基幹シ

                                                                          GitLab導入した東京海上日動システムズ、アプリ開発をどう変えたのか
                                                                        • DynamoDB利用時の書き込みスキュー(Write Skew)の回避 | フューチャー技術ブログ

                                                                          はじめに一般的に複数のトランザクションが並行して同じオブジェクトに対してアクセスを行う場合には、トランザクションの分離レベル(SERIALIZABLE/REPEATABLE READ/READ COMMITTED/READ UNCOMMITTED)によって様々な問題が発生します。 DynamoDBは2018年にトランザクションがサポートされましたが、本記事ではファントムリードによる書き込みスキューの問題とその対応について取り上げたいと思います。 書き込みスキューとはまずはじめに、「書き込みスキュー」とは具体的にどのような問題なのか、まず例を見てみるのが一番わかりやすいでしょう。 書き込みスキューの例ここではイベントの申し込みシステムを考えてみましょう。 要件としてイベントの申し込み人数の上限は3人であると仮定します。 これを実現するためには、ユーザが申し込みの要求を行なった際に現在の申し込

                                                                            DynamoDB利用時の書き込みスキュー(Write Skew)の回避 | フューチャー技術ブログ
                                                                          • akkaのハンズオン・トレーニングを用意しました、Javaのサンプルコード付きです! - Maverick's tech blog

                                                                            akkaのハンズオントレーニングを用意しました。全5モジュールあり、アクター、イベント・ソーシング、CQRS、クラスタリングを手を動かしながら学べます。 第1回: リレーショナル・データベースのトランザクションによる排他制御 第2回: アクターによる非同期処理 第3回: アクターとデータベースのシステム(イベント・ソーシング) 第4回: アクターとデータベースのシステム(CQRS) 第5回: クラスタリング このトレーニングのサンプルコードはJavaで書かれており、Scalaのサンプルコードは用意していません。Scala版も用意したかったのですが、Java版のコードしか書く時間がありませんでした…もしScalaのサンプルコードをご自身で書いてみたい方は、私リチャードが喜んで手伝います。TwitterのDMで連絡をください。私のDMは全てのツイッターユーザーに開放しています。 トレーニングは

                                                                              akkaのハンズオン・トレーニングを用意しました、Javaのサンプルコード付きです! - Maverick's tech blog
                                                                            • 📝仮想通貨bot開発

                                                                              October 24, 2022 📝仮想通貨botの開発に特化したコンテンツはこのメモにまとめていく. 📝仮想通貨データ分析にデータ分析やバックテストのトピックを移動. 📝仮想通貨bot戦略はこちら. 開発の愚痴は✏仮想通貨bot開発日誌(Twitterは閲覧だけでやらない). 取引所別 # 📝bitFlyer bot開発 📝FTX bot開発 開発ライブラリ # なんかこまったらccxtとpybottersのコードを除くとヒント得られるかも. ccxt # https://docs.ccxt.com/en/latest/manual.html pybotters # 複数取引所に対応した非同期I/OのAPIクライアント. https://github.com/MtkN1/pybotters まちゅけんさん作成. REST通信とwebsocket通信の両方のクライアントを提供.

                                                                              • TerraformのCI/CDパイプラインを実装してみた | DevelopersIO

                                                                                こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。 今回は、TerraformのCI/CDパイプラインでどのような構成が取れるか考えてみました。 きっかけは、最近tfsecを使う機会がよくあり、CI/CDに組み込むと面白そうだなと思い、GWの宿題として考えてみました。 気がついたら、6月の終盤で超大作ブログになっていました。是非ともTerraformユーザーの方にご覧いただけるととても嬉しいです。 今回の構成が「必ずしも正解」というわけではなく、あくまで一例として参考程度にご覧いただけると幸いです。 「tfsec」って何?と言う方は以下のサイトも合わせてご覧いただけると幸いです。 全体の構成図 以下の構成図のようなTerraform実行パイプラインを作成しようと思います。 パイプラインが少し長いため、以下の区分で実装方式や解説をまとめていこうと思います。

                                                                                  TerraformのCI/CDパイプラインを実装してみた | DevelopersIO
                                                                                • 週刊Railsウォッチ(20210126後編)Google Cloud FunctionsがRubyをサポート、Ruby 3のパターンマッチングでポーカーゲームほか|TechRacho by BPS株式会社

                                                                                  2021.01.26 週刊Railsウォッチ(20210126後編)Google Cloud FunctionsがRubyをサポート、Ruby 3のパターンマッチングでポーカーゲームほか こんにちは、hachi8833です。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます

                                                                                    週刊Railsウォッチ(20210126後編)Google Cloud FunctionsがRubyをサポート、Ruby 3のパターンマッチングでポーカーゲームほか|TechRacho by BPS株式会社