並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1786件

新着順 人気順

transactionの検索結果1 - 40 件 / 1786件

  • マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング

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

      マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング
    • バッチ処理 プラクティス

      バッチ処理は既に先人の方々が多くのナレッジを公開してくれていますが、それでもなお難しさが変わらないテーマだと思っています。 この記事は、筆者がこれまでの開発経験で気づいたバッチ処理の実装ナレッジを整理し、体系化を目指して文章にしました。 ここでの内容が、より良い課題解決に貢献できれば幸いです。 自身の断片的な思考整理(メモ書き)の延長で内容を整理したため、一部書き振りが統一されておらず、読みにくいかもしれません。ご了承ください。🙏 バッチ処理の難しさバッチ処理は難しい。 人によっては簡単なテーマかもしれませんが、自分は難しいテーマだと思っています。 「難しさの根源は何か?」を考えると、1. 考慮点が多様にあること 2. 解決する課題によって答えが大きく変わること に整理できました。 この2点は、どのソフトウェア開発にも当てはまる項目ではありますが、ことバッチ処理においては顕著に現れます。

        バッチ処理 プラクティス
      • DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog

        Gmailが「メール送信者のガイドライン」を改訂し、なりすましメールへの対策を強化する旨を発表しています。今までは原則、なりすましメール対策の有無にかかわらず、メールはいちおうは届いていました。しかし今後は、なりすましとみなされたメールは届かなくなる方向に向かいつつあります。 なりすましメールとみなされないようにするために、メール送信者には、「メール送信ドメイン認証」への対応が求められます。メール送信ドメイン認証の技術には、主に以下の3つがあります。 SPF: Sender Policy Framework (RFC 7208) DKIM: DomainKeys Identified Mail (RFC 6376) DMARC: Domain-based Message Authentication, Reporting, and Conformance (RFC 7489) SPFは従来

          DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog
        • データベース設計の際に気をつけていること - 食べチョク開発者ブログ

          皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。

            データベース設計の際に気をつけていること - 食べチョク開発者ブログ
          • 決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ

            エンジニアの佐野です。今日はカンムの決済システムでユーザの残高管理をどうやっているかについて書きます。 カンムの製品であるバンドルカードはプリペイド方式のカードです。ユーザによる入金、店舗での利用、運営事由の操作などによりユーザの残高が増減します。このような残高の管理について単純に考えると user_id と balance と updated_at あたりをもったテーブルを用意して balance と updated_at を更新していく方法があるかもしれません。しかしながらカンムでは残高を管理するテーブルを持たず、これらイベントの履歴のみで残高を管理しています。以下、本記事ではこれらユーザの残高が増減するイベントのことをトランザクションと呼びます。ここでは DB の Transaction Processing を意味しません。 本記事のポイントは 残高を管理をするテーブルは作らず、ト

              決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ
            • 最近のWeb3への雑感

              Web3とは何であったか トークンとコントラクトと誰からでも見える台帳を使ってなんか出来そうなことないっすかねくらいの思想または活動 自動販売機で金入れたら人を解さずにジュースが買えるような感じで、トークンを支払ったら人を解さずにトークンが買えたり付与したりできる仕組みを作れるスマートコントラクトというのがあり、これなんかに応用できないっすかみたいなことだけだったはず NFTとかDAOとかもその応用例の一つなだけにすぎない トラストレスとか分散性みたいな話はEthereumのDocsには一部記述があるがあくまで理想論として語ってるだけ。会社がvisionをHPに書いてるようなもん。 Internetの技術が置き換わるとかBigTechを打倒するみたいな対立構造を煽るような話では全く無い そもそも既存のインターネットの上に成り立っているし、分散されたそのノードはどこのサーバーで動いているんだ

                最近のWeb3への雑感
              • 2020年現在のNewSQLについて - Qiita

                Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海

                  2020年現在のNewSQLについて - Qiita
                • 期限の制約なく無料で使えるクラウド「Free Tier」主要サービスまとめ。2022年版

                  いくつかのクラウドサービスでは、1年程度の無料トライアルや一定額のクーポンなどに加えて、期間の制限なくずっと無料で使える、いわゆる「Free Tier」や「Always Free」と呼ばれる無料枠のサービスが提供されています。 こうした無料枠は試行用の環境や一時的なテスト環境などとして、期間を気にせずサービスを試すうえで非常に有効です。 本記事では期限の制約なく無料で提供されている主なクラウドサービスを、2022年版としてまとめました。 ただしこれらの無料提供サービスは提供側の都合によって終了することもあり得ます。また、最近では半導体不足などの影響でクラウドのサーバリソースなどが不足がちのためか、無料枠の申し込みが制限される場合もありますので、それらに留意して利用しましょう(一部では無料枠が空いたらすかさず取得する自動スクリプトなども出回っているそうです)。 Amazon Web Serv

                    期限の制約なく無料で使えるクラウド「Free Tier」主要サービスまとめ。2022年版
                  • 連鎖販売業者【日本アムウェイ合同会社】に対する行政処分について | 消費者庁

                    2022年10月14日 取引対策課 消費者庁が特定商取引法に基づく行政処分を実施しましたので公表します。 あわせて、チラシ「こんなところから・・・マルチ商法の勧誘に!?」を公表します。 詳細 消費者庁は、健康食品及び化粧品等を含む家庭用日用品等を販売している連鎖販売業者である日本アムウェイ合同会社(本店所在地:東京都渋谷区)(以下「日本アムウェイ」といいます。)に対し、令和4年10月13日、特定商取引法第39条第1項の規定に基づき連鎖販売取引の一部等(勧誘(勧誘者に行わせることも含みます。申込受付も同じ。)、申込受付及び契約締結)を、令和4年10月14日から令和5年4月13日までの6か月間、停止するよう命じました。 あわせて、消費者庁は、日本アムウェイに対し、特定商取引法第38条第1項の規定に基づき、再発防止策を講ずるとともに、コンプライアンス体制を構築することなどを指示しました。 公表資

                    • パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary

                      最近、パーフェクトRuby on Railsの増補改訂版をリリースさせていただいた身なので、久しぶりにRailsについて書いてみようと思う。 まあ、書籍の宣伝みたいなものです。 数日前に、noteというサービスでWebフロント側に投稿者のIPアドレスが露出するという漏洩事故が起きました。これがどれぐらい問題かは一旦置いておいて、何故こういうことになるのか、そしてRailsでよく使われるdeviseという認証機構作成ライブラリのより良い使い方について話をしていきます。 (noteがRailsを使っているか、ここで話をするdeviseを採用しているかは定かではないので、ここから先の話はその事故とは直接関係ありません。Railsだったとしても恐らく使ってないか変な使い方してると思うんですが、理由は後述) 何故こんなことが起きるのか そもそも、フロント側に何故IPアドレスを送ってんだ、という話です

                        パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary
                      • Kindle蔵書一覧を取得する方法 - Qiita

                        Kindleの蔵書が1万冊を超えてきて、そろそろ蔵書管理したくなり、 蔵書一覧を取得する方法を調べたので、まとめておく。 概要 蔵書一覧の取得方法としては大きく2つあり、 コンテンツと端末の管理ページからスクレイピングする方法と、 Kindle Cloud Readerが使っているWeb SQL Databaseのクライアント側のDBからそのまま取得する方法がある。 後者のほうが簡単なため、ここでは後者の方法について記載する。 (前者の方法が知りたい方は、https://qiita.com/yshr1982/items/072e8b44d456f6d9358bなどを参考にしてください。) // 追記 上記の2つの方法以外のやり方を情報共有してもらったので追記。 @error_401さんから頂いた情報によると Kindle for PCを利用している場合、本の情報が入ったXMLが生成されるた

                          Kindle蔵書一覧を取得する方法 - Qiita
                        • ゼロから始める、データ分析と可視化 - Kyash Product Blog

                          はじめまして。Kyashでデータエンジニアリングを担当しているKyashデータマンです。この記事では、Kyash社内のデータ分析の基礎に関するドキュメントを紹介します。 Kyashでは、データエンジニアリング・ガバナンス・セキュリティなど様々な角度から、公正なデータの取扱いと活用を推進しています。従来は、一部の訓練された技術者がデータ分析を一手に担っていましたが、社内でもデータ活用のニーズも多く、その担当者に分析や集計の業務が集中するという課題がありました。 この課題に対して、データへの適切なアクセス管理を行い、そして適切なBIツールを導入することで、データを取り扱う人が自分でデータ分析・そして活用できるようになることを目指しています。アクセス管理には、個人情報やそれに準ずる機密データに対して、ポリシータグによるアクセス権のコントロール、そしてアクセス権のリネージなどのソリューションの導入

                            ゼロから始める、データ分析と可視化 - Kyash Product Blog
                          • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

                            これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門本 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

                              データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
                            • ずっと無料で使えるクラウドの「Free Tier」主要サービスまとめ。2021年版

                              いくつかのクラウドサービスでは、1年程度の無料トライアルや一定額のクーポンなどに加えて、期間の制限なくずっと無料で使える、いわゆる「Free Tier」や「Always Free」と呼ばれる無料枠のサービスが提供されています。 こうした無料枠は試行用の環境や一時的なテスト環境などとして、期間を気にせずサービスを試すうえで非常に有効です。 もちろん、無料提供サービスは提供側の都合によってある日突然終了することもあり得ますが、いまのところ1年前の記事「ずっと無料で使えるクラウドの「Free Tier」主要サービスまとめ。2020年版」で紹介したサービスで終了したものはないようです。 本記事では期限の制限なくFree TierやAlways Freeとして提供されている主なサービスを、2021年版としてまとめました。 Amazon Web Services(AWS) 「AWS 無料利用枠」のWe

                                ずっと無料で使えるクラウドの「Free Tier」主要サービスまとめ。2021年版
                              • ずっと無料で使えるクラウドの「Free Tier」主要サービスまとめ。2020年版

                                クラウドの多くでは、1年程度の無料トライアルやクーポンなどに加えて、期間の制限なくずっと無料で使える、いわゆる「Free Tier」や「Always Free」と呼ばれる無料枠のサービスも提供されています。 こうした無料枠は開発環境やテスト環境としてクラウドを試すうえで非常に有効です。ここではクラウドのFree TierやAlways Freeとして提供されているおもなサービスをまとめました。 Amazon Web Services(AWS) 「AWS 無料利用枠」のWebページを開き、左側にあるフィルター条件で「無期限無料」をチェックすることで、無期限に無料で提供されるサービスの一覧を見ることができます。 おもに次のようなサービスが無期限無料で提供されています。 AWS Lambda サーバレスコンピューティングの実行環境を提供します。 1カ月あたり100万リクエスト、最大320万秒コン

                                  ずっと無料で使えるクラウドの「Free Tier」主要サービスまとめ。2020年版
                                • 自作DBを始めたい人におすすめの本 - salachike:blog

                                  この記事は、慶應理工アドベントカレンダー2021の20日目の記事です。 カレンダー全日埋まってすごい 🎉🎉 adventar.org 「Database Design and Implementation」という簡素なDBをスクラッチで作っていく本に取り組んだので、その読了エントリです。 Database Design and Implementation: Second Edition (Data-Centric Systems and Applications) (English Edition) 作者:Sciore, EdwardSpringerAmazon こんな人におすすめ MySQLやPostgreSQLを使った経験はあるが、DBの理論やその実装はあまり詳しくない人に特におすすめです。特に自作〇〇*1に興味がある人は間違いなく楽しめると思います。単純に本に紹介されている理論

                                    自作DBを始めたい人におすすめの本 - salachike:blog
                                  • GitHubがnpmの買収を発表、JavaScriptのパッケージ管理サービス。将来的にはGitHubとnpmを統合へ

                                    GitHubがnpmの買収を発表、JavaScriptのパッケージ管理サービス。将来的にはGitHubとnpmを統合へ GitHubは、JavaScriptのパッケージ管理サービスを提供するnpmの買収を発表しました(GitHubの発表、npmの発表)。 We’re excited to announce that @npmjs will be joining GitHub. Millions of JavaScript developers rely on npm, and we’re honored to support this community in a new way. Learn more at https://t.co/MsQMc1rIJd pic.twitter.com/CUuPojccpm — GitHub (@github) March 16, 2020 npmはNo

                                      GitHubがnpmの買収を発表、JavaScriptのパッケージ管理サービス。将来的にはGitHubとnpmを統合へ
                                    • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

                                      こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLやrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

                                        データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
                                      • SPA認証トークンはlocalStorageでもCookieでもない、Auth0方式はいいねというお話 - @mizumotokのブログ

                                        SPA認証トークンをどこに保存するかは論争が絶えません。localStorageやCookieがよく使われますが、Auth0は違う方法を採用しています。この記事では、Auth0のトークン管理の方式を理解でき、トークン管理上のセキュリティへの理解を深めることができます。 SPAの認証トークンをどこに保存するか ブラウザでトークンを保存できる場所 保存場所の比較 メリット・デメリット Auth0のアプローチ トークンはインメモリに保存 OpenID Connect準拠とトークン取得のUI/UXの悪化回避を両立 Auth0のjsライブラリ ログイン アクセストークンの(再)取得 図解 ログイン アクセストークンの(再)取得 自サービス内の認証だけのもっと簡易な構成 ログイン IDトークン取得 まとめ SPAの認証トークンをどこに保存するか React やVueで認証付きSPA(Single Pa

                                          SPA認証トークンはlocalStorageでもCookieでもない、Auth0方式はいいねというお話 - @mizumotokのブログ
                                        • 「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン

                                          この記事は DeNA 20 新卒 Advent Calendar 2020 19日目の記事です。 はじめに MySQLやPostgreSQLに代表されるRDBMSではトランザクションと呼ばれる仕組みが提供されています。多くのWebアプリケーションエンジニアはこのトランザクションを駆使してDBとやりとりをするロジックを組み立てることになります。 しかし不整合を起こしたくない処理があるからといって闇雲にトランザクションを張ったり、トランザクションが張られているからと安心してアプリケーション側で闇雲にロジックを組み立ててしまうと思わぬバグを生むことになってしまいます。 このエントリでは、「トランザクションを張っておけば大丈夫」という考え方は危険な場合もあるということを、ありがちな実装例を交えて紹介していきます。 並列に処理されるトランザクション そもそも、トランザクションは全て直列に処理されるわ

                                            「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン
                                          • 期限の制約なく無料で使えるクラウド「Free Tier」主要サービスまとめ。2023年版

                                            いくつかのクラウドサービスでは、新規ユーザーに対する1年程度の無料トライアルや一定額のクーポンなどの提供だけでなく、期間の制限なくずっと無料で使える、いわゆる「Free Tier」や「Always Free」と呼ばれるサービスが提供されています。 こうしたサービスは試行用の環境や一時的なテスト環境、あるいはホビー用途などに適しています。 本記事では期限の制約なく無料で提供されている主なクラウドサービスを、2023年版としてまとめました(新規ユーザーとして期限の制約なく無料で使えるものを優先しています)。 ただしこれらの無料のサービスは、提供側の都合によって申し込みや利用が制限されたり、もしくは提供自体が終了したりすることがあります(昨年、多くのITエンジニアに人気であったHerokuのFreeプランが終了したことをご記憶の読者も多いでしょう)。 無料のサービスを利用する場合には、そうした提

                                              期限の制約なく無料で使えるクラウド「Free Tier」主要サービスまとめ。2023年版
                                            • MySQL のレプリケーションから10年間逃げてきた我々が学んだこと8選 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                              こんにちは。クラウド運用チームで SRE をしている飯塚です。 今回は、MySQL のレプリケーション機能を約10年もの間ずっと使ってこなかった私たちが、レプリケーションを使った高可用性構成に移行するための取り組みの中で学んだことについて紹介します。 背景 巨大なテーブルへの primary key の付与 トランザクションサイズが大きい場合には tmpdir に注意 mysqldump で絵文字が消えていないか要チェック mysqldump が Error 1412: Table definition has changed... で失敗する mysqldump したデータのリストアが Duplicate entry 'xxx-yyy-PRIMARY-n_diff_pfx01' for key 'PRIMARY' で失敗することがある mysqldump したデータのリストア時のディスク

                                                MySQL のレプリケーションから10年間逃げてきた我々が学んだこと8選 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                              • iOS14の衝撃。モバイルマーケターはこの激変を今すぐキャッチアップせよ。|Akira Morishita / 森下 明

                                                2020/7/2更新:以下に本記事の続報で詳細な分析を行った記事をUPしました。是非、こちらも御覧ください。 iOS14に関するつぶやきをしておりますので是非、Twitterアカウントフォローください。 やや煽った記事になりましてすいません。 2020年6月22日(月) – 2020年6月26日(金)で実施されている 2020 Apple Worldwide Developers Conference にてiOS14の内容が公開されIDFAの取り扱いに大幅なアップデートがありました。 本記事は以下の構成です。 ・本アップデートによる各ステークホルダーへの影響範囲をサマリー ・その根拠となる文献の日本語翻訳を7記事掲載 本アップデートによる各ステークホルダーへの影響範囲 結論から申しますと、モバイルマーケティングのステークホルダー ・代理店、媒体社 ・ツール会社 ・広告主 全員に影響がありま

                                                  iOS14の衝撃。モバイルマーケターはこの激変を今すぐキャッチアップせよ。|Akira Morishita / 森下 明
                                                • リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら

                                                  リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得られるということなのだと思うので、可能であればMVCCを採用したいのですが、あまり初学者向けの実装例も見当たらず、どうしたものかと悩んでおります。 SS2PL/S2PLとMVCCの実装の難易度・工数はどの程度違うものなのでしょうか? また、初めてリレーショナルデータベースシステムを開発する者

                                                    リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら
                                                  • 主要RDBMS製品の比較 – アーキテクチャ, スキーマ, データベース, メモリ | コーソルDatabaseエンジニアのBlog

                                                    Microsoft SQL ServerMySQLOracle DatabasePostgreSQLSolarWinds DPAデータベース運用主要RDBMS製品の比較 2022.09.01 渡部 亮太 主要RDBMS製品の比較 – アーキテクチャ, スキーマ, データベース, メモリ Oracle ACE Proの渡部です。 主要なRDBMS製品についてアーキテクチャを比較します。 大枠を整理することが最大の目的です。細かい例外事項や拡張機能は適宜記載を割愛しています。 2022年9月時点の最新バージョンをベースに記載していますが、記載内容にバージョン依存は少ないはずです。 時間ができた時に随時追記予定です。 もし誤りを見つけた場合は、優しく教えていただけると嬉しいです。→ https://twitter.com/wrcsus4 or ryota.watabe at cosol dot

                                                    • DBMSをGoで実装してみた - Sansan Tech Blog

                                                      こんにちは。プロダクト開発部の荒川 id:ad-sho-loko です。突然ですが、皆さんはこんな疑問を持ったことはありませんか? データベースの内部実装はどうなっているのか? トランザクションとはどのようなアルゴリズムで実現されているのか? NoSQLが遅いのはなぜか? 古典的なデータベースとは内部的にどのように違うの? データベースを何かしらの形で利用しているのにも関わらず、意外と内部の仕組みを理解していない場合が多いかと思います。僕もそうです。*1 しかし、エンジニアたるもの、その仕組みを知ることは非常に重要です。僕もデータベースについて勉強しようといくつかの本やサイトを調べていたのですが、なかでもCMU(カーネギーメロン大学)のDatabase System Groupがアップロードしている講義が最も勉強になりました。 www.youtube.com そして本ブログでは、上記の講義

                                                        DBMSをGoで実装してみた - Sansan Tech Blog
                                                      • DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG

                                                        みなさん、おはようございます! CARTA fluct エンジニア の なっかー@konsent_nakka です。 CARTA TECH BLOG アドベントカレンダー 12/14ということで、普段DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識をざっとまとめてみました。 とりあえずこれだけ読んでおけば最低限は困らない、もし何か困った時にはあそこで出てきた内容をもう少し深く調べて見るか、というきっかけになれば良いなと思います。 厳密な定義よりも普段DBを扱う中でロックについてあまり意識したことがないような人にもすっと入ってくるように簡単な表現を優先して書いていますがご了承ください。 目次 留意事項 排他ロックと共有ロック トランザクション分離レベル SELECTのロックレベルを変更する 共有ロック: LOCK IN SHARE MODE 排他ロ

                                                          DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG
                                                        • JP Contents Hub

                                                          AWS 日本語ハンズオン Amazon Web Services(AWS) の 日本語ハンズオンやワークショップを、カテゴリごとにまとめています。 右側の目次や、ヘッダー部分の検索ボックスから、各コンテンツにたどり着けます。 また、Ctrl + F や command + F を使ったページ内検索もご活用いただけます。 料金について ハンズオンで作成した AWS リソースは通常の料金が発生します。作成したリソースの削除を忘れずにお願いします。 もし忘れてしまうと、想定外の料金が発生する可能性があります。 画面の差異について ハンズオンで紹介されている手順と、実際の操作方法に差異がある場合があります。 AWS は随時アップデートされており、タイミングによってはハンズオンコンテンツが追いついていない事もあります。 差異がある場合、AWS Document などを活用しながら進めて頂けますと幸い

                                                            JP Contents Hub
                                                          • ドメイン駆動設計の正体

                                                            はじめに "ドメイン駆動設計は当たり前のことを言っているだけ" "ドメイン駆動設計はただのオブジェクト指向プログラミング" "ドメイン駆動設計はより良いアーキテクチャだ" "軽量DDDはアンチパターンだ" このようなドメイン駆動設計に関する言及を聞いたことがあるでしょうか? ドメイン駆動設計に言及する記事や書籍は多くありますが、それぞれ着目する側面が異なったり色々なコンテキストから言及されています。 おそらくそれが原因でドメイン駆動設計が何であるかをぼやけさせ、正体のわかりにくい概念になっているように思えます。 そこで今回は色々な観点から整理し、ドメイン駆動設計とは何であるのか、その正体を考えていきます。 ドメイン駆動設計の基本的概念について ドメイン駆動設計はEric Evansが出版した「Domain-Driven Design」という書籍がルーツになっています。 ドメイン駆動設計を一

                                                              ドメイン駆動設計の正体
                                                            • SELECT文で本番環境を落としたお話 - Qiita

                                                              (この記事は 地平線に行く とのマルチポストです) 本番環境でやらかしちゃった人 Advent Calendarで、このパターンのやらかしはなかったのでキーボードを叩くことにしました。 番外編のつもりでお楽しみください。 この記事が、新たな障害発生を防ぐことにつながれば幸いです。 何をやったのか ある日、ちょっとした調査のために本番データベースのデータを確認することになりました。 (個人情報が格納されているようなシステムではなかったので、必要であれば本番データベースへのアクセスが許されていました) もしメンテナンスがあればそのタイミングでやればよかったのですが、直近では特に予定はないとのことでした。そのため、システムが動いている状態のまま作業をすることにしました。 ごく単純な SELECT を実行するだけのつもりだったので、システムに影響がないと判断したためです。 その際、万が一コピペをミ

                                                                SELECT文で本番環境を落としたお話 - Qiita
                                                              • クレカ会社を名乗る者から怪しい電話があったけど電話番号は確かに合ってる…?→電話番号偽装詐欺だった

                                                                虹ぐらし @nijigurashi 【注意喚起】先程クレカ会社から電話があって「Apple Payで今朝3回大きな額の買い物された形跡がありますがあなたですか」と言われたのでいいえと答えると、「ではこのtransactionをキャンセルしますね」と言われ、クレカの有効期限、後ろの3桁の番号を聞かれ、さらに→続く 2023-06-17 10:14:34 虹ぐらし @nijigurashi クレカの16桁番号まで聞かれたので「その情報はあなたが持ってるはずでしょう、私はあなたが信用できないのでかけ直します」と言ったんだけど、かけてきてる番号を確認しろ、クレカ会社の番号だというので確認したら確かに電話番号はあってる。でもオンラインでtransaction確認しても→続く 2023-06-17 10:17:13 虹ぐらし @nijigurashi Apple Payのは見当たらないのでやはりかけ直

                                                                  クレカ会社を名乗る者から怪しい電話があったけど電話番号は確かに合ってる…?→電話番号偽装詐欺だった
                                                                • MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                                  こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 本番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo

                                                                    MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                                  • MySQLで発生し得る思わぬデッドロックと対応方法

                                                                    はじめに この記事は実際の業務で発生した MySQL のデッドロックとそのいくつかの回避方法や対応方法を(テーマは変えて)手元で実行できるコードを用いて解説する記事です。具体的には「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターンの記事で紹介されている「1on1 チャットサービス」で紹介されているデッドロックとデータベースレイヤでは同じ状況だったのですが、記事で紹介されている方法とは別の方法でデッドロックを回避する必要があったため、同じ状況に遭遇した人の助けになればという思いで記事を書きました。また、こちらの記事が無ければ私自身も現象を理解するのにもっと苦労したと思うので、この場を借りてお礼申し上げます! 出金サービス履歴登録サービスを例に考える コードと説明が https://github.com/shuntagami/withdrawal_

                                                                      MySQLで発生し得る思わぬデッドロックと対応方法
                                                                    • アプリケーションにおけるデータ不整合との戦い - blog.syfm

                                                                      これは Aizu Advent Calendar 2019 の 15 日目の記事です。14 日目は uzimaru0000 さん、16 日目は kacky__917 さんです。 はじめに 世の中には日々たくさんの価値ある Web サービスが生まれていますが、その価値を正しく提供するにはアプリケーションが正しく動かなければなりません。 たとえばアプリケーションは適切なユーザに適切なリソースを提供しなければならず、エラーを返す際は十分に定義された仕様に沿って返し、UI 側ではユーザに適切なメッセージを表示しなければなりません。 実際のところ、これらを厳密に実現するのは非常に困難ですが、アプリケーションにはこれら以上に複雑な問題が常につきまといます。 現在の Web アプリケーションはほとんどが分散システムの一形態です。例えばクライアントとサーバや、サーバとデータベースがネットワークを介して接続

                                                                        アプリケーションにおけるデータ不整合との戦い - blog.syfm
                                                                      • メンテのいらないソフトウェア - 誰かの役に立てばいいブログ

                                                                        ソフトウェアエンジニアとして働き始めて 20 年以上になります。 元々ソフトウェアでいろいろ作りたくて就いた職業なので、結構な数のプロダクトを開発してきました。 私がメインで開発したもので OSS として出ているものでは、 yrmcds: memcached クローンで、レプリケーション機能などを持つ usocksd: SOCKS4/5 サーバー & ライブラリ transocks: アプリのネットワーク通信を透過的に SOCKS サーバーにプロキシする透過プロキシ coil v2: Kubernetes の CNI ネットワークドライバ moco: MySQL を自動運用する Kubernetes オペレーター accurate: Kubernetes 上で namespace ベースのソフトマルチテナンシーを実現するためのソフトウェア などがあります。これらのソフトウェアの多くは、現役

                                                                          メンテのいらないソフトウェア - 誰かの役に立てばいいブログ
                                                                        • 外部キー制約は何も考えずに適用するとよくない - かとじゅんの技術日誌

                                                                          このブログが話題になってますね。制約を付けること自体はよいことだけど、無目的に適用すると害も生じると思います。 無目的という言い方はおかしいな…。外部キー制約をどのように使えばいいのか、逆にどんなときに使うとまずいのかを考えてみたいと思います。 tech.tabechoku.com 例えば、これ。外部キー制約はできるだけ付けるとか、何も考えずに付けるとよくないと思います。 外部キー制約は、可能な限りつけるようにしています。 DBが別れている場合、外部キーはもちろん貼れないのですが、そうでない場合はとにかく何も考えず貼っています。データベース設計の際に気をつけていること - 食べチョク開発者ブログ テーブル設計をシミュレーションする いいたいことの結論はこれ。以上終了なのですが、もう少しわかりやすく書いてみよう。 何も考えずに外部キーを貼るのは良くないな。トランザクション境界の外で結果整合性

                                                                            外部キー制約は何も考えずに適用するとよくない - かとじゅんの技術日誌
                                                                          • 5年後には標準になっている可観測性のこと - Learning Opentelemetry の読書感想文 - じゃあ、おうちで学べる

                                                                            はじめに 本稿は、オープンソースの可観測性(Observability)プロジェクトである OpenTelemetry を取り上げた書籍「Learning Opentelemetry」の読書感想文です。従来の可観測性の課題であったデータの分断を解消し、トレース、メトリクス、ログなどの様々なテレメトリデータを統合的に扱うことができる OpenTelemetry は、可観測性の分野における革命的な存在と言えます。 過去10年間で、可観測性はニッチな分野から、クラウドネイティブの世界のあらゆる部分に影響を与える数十億ドル規模の産業へと発展しました。しかし、効果的な可観測性の鍵は、高品質のテレメトリデータにあります。OpenTelemetryは、このデータを提供し、次世代の可観測性ツールと実践を開始することを目的としたプロジェクトです。 learning.oreilly.com 本書の想定読者は、

                                                                              5年後には標準になっている可観測性のこと - Learning Opentelemetry の読書感想文 - じゃあ、おうちで学べる
                                                                            • 世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発

                                                                              世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発― 処理性能456万TPSと応答遅延219ナノ秒を実現 ― 日本電気(株)と(株)ノーチラス・テクノロジーズはNEDOの「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発」(以下、委託事業)において、世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」(以下、劔)を開発しました。 劔は、次世代のデータベースに用いられるハードウエア環境(メニーコア・大容量メモリーなど)に適合したシステムであり、ハードウエアの性能が向上するほどシステムの性能も高まる特性を有しています。32以上のコア数を有するハードウエアにおいては、世界最速レベルの処理性能456万TPSと219ナノ秒の応答遅延を実現しました。 劔の導入によって、複雑なバッチ処理とオンライン

                                                                                世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発
                                                                              • SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる

                                                                                最近SELECT ... FOR UPDATEでデッドロックする話を何度かしたので。 前職のときにUPDATE同士がデッドロックしてたときに、SELECT ... FOR UPDATEで排他ロックを取ってからUPDATEしてデッドロックを防ぎますってPRをレビューしてたときのことで、複数レコードの排他ロックは一瞬ですべてのレコードのロックを取れるわけではなく、ロックを取る順番が揃っていないと簡単にデッドロックしますよという話です。 https://gist.github.com/kamipo/0bb4e37d58ba18a8cefb8aa02f778231 # frozen_string_literal: true require "mysql2" def client Mysql2::Client.new( host: "localhost", username: "root", dat

                                                                                  SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
                                                                                • ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog

                                                                                  こんにちは、テックリードの夏です。 今年4月にCTOからテックリードに肩書が変わり、ガリガリコードを書くようになりました。 背景については、こちらをご覧ください。 www.wantedly.com 普段はプロダクト側の機能開発と、サーバ側の基盤開発を半々ぐらいの割合で仕事しています。 一口にサーバ側の基盤開発といっても定義が曖昧なのですが、基本的にはこんな感じのタスクをやっています。 インフラコストの最適化 不正なアクセスからの防御 障害の再発防止 新技術の導入やアーキテクチャの整備 今回はこのうち「新技術の導入やアーキテクチャの整備」の中で、サーバサイドをGo + Clean Architectureで再設計したことについてお話したいと思います。 背景 ミラティブは2015年春頃に開発が始まり、同年8月にサービスがリリースされ、2020年8月で5周年を迎えました。 その過程で組織やプロダ

                                                                                    ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog