並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 151件

新着順 人気順

DeadLockの検索結果1 - 40 件 / 151件

  • MySQLで発生し得る思わぬデッドロックと対応方法

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

      MySQLで発生し得る思わぬデッドロックと対応方法
    • Bashを使いこなすための必須コマンド71選 - Qiita

      はじめに mkdir, ls, cp, touch, mv, rm以上のコマンドにあんまり触れていない。。。という方、もっとコマンドを使いこなしたい!という方。。。必見。 基本的だが全部網羅するには大変な基本コマンド及びショートカットを溢れんばかり71選お届けします。たくさんありますので、表題に何のコマンドか書いてあるのをご活用ください。 一部、macユーザー向けとなっていることをご了承ください。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 Ctrl を使ったショートカット 最初に、Ctrlを使ったショートカットを紹介します。 Ctrl-A 行頭移動 ↓ Ctrl-E 行末移動 ↓ Ctrl-W 直前一単語を削除 ↓

        Bashを使いこなすための必須コマンド71選 - Qiita
      • 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同士でデッドロックさせる - かみぽわーる
        • プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ

          技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア

            プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
          • ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ

            AI・機械学習チームのブログリレーも9日目になりました。同チームの横本@yokomotodです。 本日はJavaとGoを題材に並行プログラミングまわりの自由研究をしたお話をしてみたいと思います。 3部構成で、パート1では発端となった「排他制御」について、パート2では「メモリの可視化」について、それぞれJavaとGoを比べてみました。 最後にパート3では、それらの動作を規定する「メモリモデル」について、わかりやすく解説されているリソースを紹介します。 長過ぎる! 3行で!! パート1: synchronized = 「排他制御」? Java synchronized vs Go sync.Mutex Goで再入可能なロック? 仮にGoで再入可能なロックを実装するなら? Javaが再入可能を選択した理由 パート2. sycnhronized = 「排他制御」+「メモリ可視性の保証」 Javaの

              ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ
            • Why Go and not Rust?

              What's the role of Go in a universe where Rust exists? Imagine you’re a developer who mainly works with Go. You go to an event and, while chatting with some people, you decide to share with them the news that you wrote a small tool that does something. You claim that since you wrote it in Go, it’s fairly fast, it’s a single binary, etc. The group seems pleased with your recount and you start feeli

                Why Go and not Rust?
              • Go: A Documentary

                Go: A Documentary by Changkun Ou <changkun.de> (and many inputs from contributors) This document collects many interesting (publicly observable) issues, discussions, proposals, CLs, and talks from the Go development process, which intends to offer a comprehensive reference of the Go history. Disclaimer Most of the texts are written as subjective understanding based on public sources Factual and ty

                • Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック

                  Go 言語は struct のレシーバがポインタの場合は実体であってもポインタの場合であっても呼び出せるので、もし struct が参照カウントに従い動作する様な場合は実体でコピーされてしまっては困る場合があります。例えば以下の様なインタフェースを考えます。 package main import ( "fmt" "sync/atomic" "time" ) type foo struct { n int64 q chan struct{} } func (f *foo) Add() { if atomic.AddInt64(&f.n, 1) == 1 { f.q = make(chan struct{}) } } func (f *foo) Done() { if atomic.AddInt64(&f.n, -1) == 0 { f.q <- struct{}{} } } func (f

                    Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック
                  • 状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理

                    はじめに マルチスレッドで動作するプログラムの設計は難しい問題です。個々のスレッドの動作は単純に見えても、複数が並行して動作する場合の動作は組み合わせ論的に複雑になります。また、タイミングに依存する不具合は狙って再現することが難しく、通常の単体テストによる検出にも限界があります。 そんなとき、有効な手法がモデル検査です。システムの取りうる状態をあらかじめ網羅的に探索することで、「実際に動作させた際にごく低い確率で踏むバグ」であっても、動作させることなく設計段階で発見することが可能になります。 ところでちょうど先日、デッドロック発見器を自作するハンズオンに参加する機会がありました。内容は非常にシンプルなモデル検査器を実装するというもので、せっかくなのでそのときの成果物を Go のパッケージとしてまとめたものを以下に公開しました。 github.com 以下、このパッケージで何ができるのかを具

                      状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
                    • お互い『邪魔だニャー』と言って譲り合おうとしない配膳猫たちがいた「デッドロックだ!」「難しいんよねこれの解決」

                      リンク Wikipedia デッドロック デッドロック (英: deadlock) とは、特に計算機科学において、2つ以上のスレッドあるいはプロセスなどの処理単位が互いの処理終了を待ち、結果としてどの処理も先に進めなくなってしまうことを言う。 また、合弁契約書などにおいてパートナーと利害関係がぶつかるような問題が生じた場合の解決方法を定めた条項を「デッドロック条項(Deadlock Clause)」と言う。 英語ではもともと行き詰まりの意味である。 古い文献では、デッドロックのことをチェス用語と同様のステイルメイトと呼称して説明をしている場合があ 42 users 1

                        お互い『邪魔だニャー』と言って譲り合おうとしない配膳猫たちがいた「デッドロックだ!」「難しいんよねこれの解決」
                      • 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs

                        50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs 50 Shades of Go in Other Languages Chinese Translation: blog post, segmentfault (by wuYin) - needs updates Another Chinese Translation: blog post (by Shadowwind LEY) - needs updates Russian Translation: blog post (by Ilia Ozhereliev, Mail.Ru Group Blog) - needs updates Overview Go is a simple and fun language, but, like any o

                        • Migrating Facebook to MySQL 8.0

                          MySQL, an open source database developed by Oracle, powers some of Facebook’s most important workloads. We actively develop new features in MySQL to support our evolving requirements. These features change many different areas of MySQL, including client connectors, storage engine, optimizer, and replication. Each new major version of MySQL requires significant time and effort to migrate our worklo

                            Migrating Facebook to MySQL 8.0
                          • ActiveRecord::LockWaitTimeout, ActiveRecord::Deadlocked, ActiveRecord::ConnectionTimeoutError が起きた時に原因調査に役立つ情報を表示する gem を作った

                            それなりの規模のサービスを運用していると、不可解なエラーに遭遇することはよくあるものです。その中でもデータベース関連のエラーは一見難解な問題に見えるかもしれませんが、原因調査に役立つ情報をさえ出力すればたいていの場合は容易に原因を特定できるものです。というわけで、Rails でよく遭遇するエラーの調査に役立つ情報を出力する gem を作成しました。 activerecord-debug_errors 現在次のエラーをサポートしています。 ActiveRecord::LockWaitTimeout (MySQL のみ) ActiveRecord::Deadlocked (MySQL のみ) ActiveRecord::ConnectionTimeoutError 以下、具体的な例を用いてどのような情報が表示されるか説明します。 ActiveRecord::LockWaitTimeout Ac

                              ActiveRecord::LockWaitTimeout, ActiveRecord::Deadlocked, ActiveRecord::ConnectionTimeoutError が起きた時に原因調査に役立つ情報を表示する gem を作った
                            • ドメイン知識の問題集や勉強の仕方(随時更新)|gaijineers

                              ドメイン知識は幅広いのでどこまで勉強すればいいか思った時のリスト。勉強の仕方色々あるが個人的にわかりやすいなと思ったものも書いときます ソフトウェアエンジニアとしてやりながらrecoというエンジニア向けの転職プラトフォームを作ってます。現在は数社のテック企業のサポートをしております(https://jobs.reco.sh/) reco経由で申し込むと面接に備えるためのサポートが得られます。面接対策のヒントや質問例、模擬面接などを通じて、自信を持って次のステップに進む準備ができます。 申請リンク:https://airtable.com/appDsRlN6LTSiW0a3/shrP9nwF925b1d5ZJ Network復習 TCP, UDP: High Performance Browser Networking - Ilya Grigorikの2~3章 (m)TLS: Liz Ric

                                ドメイン知識の問題集や勉強の仕方(随時更新)|gaijineers
                              • Using WebAssembly threads from C, C++ and Rust

                                Learn how to bring multithreaded applications written in other languages to WebAssembly. WebAssembly threads support is one of the most important performance additions to WebAssembly. It allows you to either run parts of your code in parallel on separate cores, or the same code over independent parts of the input data, scaling it to as many cores as the user has and significantly reducing the over

                                  Using WebAssembly threads from C, C++ and Rust
                                • A database for 2022

                                  WireGuard is a registered trademark of Jason A. Donenfeld. Hi, it’s us again, the ones who used to store our database in a single JSON file on disk, and then moved to etcd. Time for another change! We’re going to put everything in a single file on disk again. As you might expect from our previous choice (and as many on the internet already predicted), we ran into some limits with etcd. Database si

                                    A database for 2022
                                  • 「Steam Deck」は2022年最強の小型ゲームPCか? 競合製品と比べながら特徴を細かく紹介

                                    「Steam Deck」は2022年最強の小型ゲームPCか? 競合製品と比べながら特徴を細かく紹介 ライター:池 紀彦 カメラマン:佐々木秀二 携帯ゲーム機風のゲーマー向け小型PCが登場し,ここ数年盛り上がりを見せているが,その真打ちとなりそうな製品が,Steamでお馴染みのValveが開発した携帯型ゲームPC「Steam Deck」だ。東京ゲームショウ2022での展示では,入場待ちの行列が絶えないほどの人気で注目を集めており(関連記事),国内でもそろそろ出荷が始まるかと思われる。 そこで今回は,Steam Deckと対抗馬となりそうな小型ゲームPC「AYANEO AIR」と「ONEXPLAYER mini Ryzen版」(以下,ONEXPLAYER mini)との比較を中心に,特徴や実力をチェックしてみよう。 AYANEO AIR(左手前),Steam Deck(左奥),ONEXPLAY

                                      「Steam Deck」は2022年最強の小型ゲームPCか? 競合製品と比べながら特徴を細かく紹介
                                    • みんなでつくる Production Readiness - スタディサプリ Product Team Blog

                                      こんにちは。SRE の @chaspy です。 以前、Production Readiness Checklist に関する記事を書きました。 quipper.hatenablog.com Production Readiness Checklist の運用開始から1年ほどの月日が経ち、27ものサービスが無事 Production へ出ていきました。 サービスを安心して Production へリリースするために役立っている Production Readiness Checklist ですが、Product Team がこの Check List を進める上でいくつか課題がありました。 本記事では、Production Readiness Checklist 運用開始後に、どのような改善が行われてきたのか、その内容と方法を説明します。また、1年以上の運用を通して、Production R

                                        みんなでつくる Production Readiness - スタディサプリ Product Team Blog
                                      • STORES Rails アプリを Zeitwerk 有効化するまでの道のり - STORES Product Blog

                                        こんにちは、ヘイ株式会社でエンジニアをしている id:hogelog です。 2021年6月に入社し CTO 室という部署に所属しつつなんだかあちこちの部署に首を突っ込むような役割をしています。まだ入社したばかりで把握してないものも多いですが、ビジネスの勢い、人の活気、やらなきゃいけないことばかりという雰囲気をとても楽しんでいます。 さてここは技術ブログ。なので技術の話をします。今回は STORES https://stores.jp/ec を支えるなかなか大きなモノリシック Rails アプリケーションのオートローダーを Zeitwerk へと切り替えた業務について紹介します。最新技術でもなく、Rails の設定項目の一つ Rails.application.config.autoloader の値を :classic から :zeitwerk に切り替えるというだけの地味な内容ですが、

                                          STORES Rails アプリを Zeitwerk 有効化するまでの道のり - STORES Product Blog
                                        • Encrypted DNS + NTP = Deadlock

                                          Photo by Uzoma Ozurumba, CC BY-SA 4.0, no changesI’m generally a big fan of encrypted DNS for the security it provides with negligible performance impact. But I recently found out the hard way that DNS over TLS/HTTPS can deadlock with Network Time Protocol (NTP) on embedded devices without a battery-backed real-time clock. Many low-cost routers lack a battery for keeping time during power loss. Af

                                            Encrypted DNS + NTP = Deadlock
                                          • How are Unix pipes implemented?

                                            This article is about how pipes are implemented the Unix kernel. I was a little disappointed that a recent article titled “How do Unix pipes work?” was not about the internals, and curious enough to go digging in some old sources to try to answer the question. What are we talking about? Pipes are “perhaps the single most striking invention in Unix” — a defining characteristic of the Unix philosoph

                                              How are Unix pipes implemented?
                                            • Top-level await · V8

                                              Top-level await enables developers to use the await keyword outside of async functions. It acts like a big async function causing other modules who import them to wait before they start evaluating their body. The old behavior #When async/await was first introduced, attempting to use an await outside of an async function resulted in a SyntaxError. Many developers utilized immediately-invoked async

                                              • 最低映画を決めるラジー賞候補発表!ブルース・ウィリス用に特別部門|シネマトゥデイ

                                                堂々の最低映画賞8ノミネート獲得! ブルース・ウィリス - Jim Spellman / WireImage / Getty Images 毎年恒例となっている最低映画の祭典、第42回ゴールデンラズベリー賞(ラジー賞)のノミネート作品が、アカデミー賞ノミネーション発表の前日となる、現地時間7日にオフィシャルサイトで発表された。本年度は、大量の映画に出演した大スター、ブルース・ウィリスのために特別部門を設置。ブルースはこの部門だけで8ノミネートを獲得した。 日本のCMで「ドラえもん」になったブルース・ウィリス 今年度のラジーでは、低予算のアクション・SF作品等の出演が続いているブルースのために、特別枠「ブルース・ウィリスによる2021年公開映画の最低演技」部門を創設。いずれも大手映画批評サイト Rotten Tomatoes で最低評価を獲得した作品が並んでおり、どの映画が選ばれてもブルース

                                                  最低映画を決めるラジー賞候補発表!ブルース・ウィリス用に特別部門|シネマトゥデイ
                                                • 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp

                                                  実行中のシステムの挙動を詳細にトレースする仕組みは、特に「よくわからない問題」に遭遇している時に重要です。今回はLinux向けのトレーシングツールの本命とも言えるeBPFを利用した各種ツールを紹介します。 eBPFに関する記事が今回以降、数回にわたって解説されています。あわせてご覧ください。 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する(今回の記事) 第690回 BCCでeBPFのコードを書いてみる 第692回 sysfsやbpftoolを用いたeBPFの活用 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 第695回 入門BPF CO-RE eBPFとBPF Compiler Collection 改めて言うまでもなく、Linuxカーネルもしくはカーネル上で動いている各種タスクのパフォーマンスや挙動を調べなくてはならない

                                                    第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp
                                                  • My First Kernel Module: A Debugging Nightmare

                                                    This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and race conditions. My code was nearly correct, but ultimately, there were two major synchronization bugs that killed it. This is a really long post that gets into t

                                                    • マルチクラウド構成におけるMySQL Group Replicationの利用事例紹介

                                                      こんにちは、滝澤です。 前回の記事『WireGuardによるマルチクラウド構成VPNの事例紹介』に引き続き、社内事例を紹介します。 弊社ハートビーツではMSP(Managed Service Provider)サービスの可用性向上のために、社内基盤をマルチクラウド構成で運用しています。 複数のクラウド拠点のネットワーク間をWireGuardというVPNトンネルのソフトウェアで接続しています。 さらに、リレーショナルデータベース管理システムにはMySQLを利用しており、MySQLのレプリケーション機能の一つであるGroup Replicationを使って拠点内および拠点間における冗長化を行っています。 今回はこのMySQL Group Replicationの利用事例を紹介します。 行っていることをまとめると次のようになります。 マルチクラウド構成(Azure, AWS, GCP)において、

                                                      • カヤック×PR TIMES合同 カヤック社内ISUCONを開催しました - KAYAC engineers' blog

                                                        カヤックSREの今です。 今年も4月に新卒社員を迎え、4月の後半には技術部研修を行いました。 技術部研修の締めには毎年なにかしらのイベントを行うのが恒例になっており、昨年は社内CTFを開催しました。 今年は、カヤックでは2年ぶりとなる社内ISUCONを開催しました。 新卒のみなさんはオフィスへ集まってもらいました ISUCON1とは Iikanjini Speed Up CONtestの略で、出題されたwebサービスを競技時間内にいい感じにスピードアップするコンテストです。 参加者にはWebサービスが動作する環境と初期実装のソースコード、MySQL等などのソフトウェアの初期設定ファイルが配布されます。 制限時間内でWebサービスの動作が変わらないように変更を加えて、最終的にベンチマーカーが計測するWebサービスのスコアを競います。 Webサービスの構成は問題によって変わります。アプリケーシ

                                                          カヤック×PR TIMES合同 カヤック社内ISUCONを開催しました - KAYAC engineers' blog
                                                        • ISUCON12予選参加記 Rustで予選突破した

                                                          2022年7月23日(土) に開催された ISUCON 12 に Rust で参加して20位で予選突破しました。 チーム チームO omu: https://omuric.github.io/posts/isucon12-qualify/ dice801: https://zenn.dev/dice801/articles/760f8fc6af5a08 daiju (自分) 事前準備 基本的には前年までに用意したツールを活用する cargo-make で3台の EC2 への deploy や再起動やログの集計をコマンド一発で実行可能にする isuconf で現地と手元の設定ファイルの同期 omu の自作コマンド どちらも年に1回しか登場しないので、事前の練習でコマンドを手に馴染ませておく。 Rust のためのトレースツールの整備 https://github.com/hinohi/rust

                                                            ISUCON12予選参加記 Rustで予選突破した
                                                          • What a good debugger can do 🔮

                                                            When people say “debuggers are useless and using logging and unit-tests is much better,” I suspect many of them think that debuggers can only put breakpoints on certain lines, step-step-step through the code, and check variable values. While any reasonable debugger can indeed do all of that, it’s only the tip of the iceberg. Think about it; we could already step through the code 40 years ago, sure

                                                              What a good debugger can do 🔮
                                                            • Go 1.14 Release Notes - The Go Programming Language

                                                              Introduction to Go 1.14 The latest Go release, version 1.14, arrives six months after Go 1.13. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before. Module support in the go command is now ready for production use, and we e

                                                                Go 1.14 Release Notes - The Go Programming Language
                                                              • Introduction to SELinux

                                                                EducationSecurityIntroduction to SELinuxSELinux is the most popular Linux Security Module used to isolate and protect system components from one another. Learn about different access control systems and Linux security as I introduce the foundations of a popular type system. At GitHub Security Lab, our main mission is helping secure the open source software we all rely on. While securing applicatio

                                                                  Introduction to SELinux
                                                                • 「ハイトラフィック運用 〜スループットの向上を目指して〜」という話をしました #devio2020 | DevelopersIO

                                                                  こんにちは(U・ω・U) AWS事業部の深澤です。 さて弊社では昨日よりDevelopersIO2020 〜connect〜というイベントが開かれています。 セッションもりもりだよ! あつまれー!https://t.co/viwYQqiKG7#devio2020_connect — 深澤俊 (@shun_quartet) June 3, 2020 その中で僕は「ハイトラフィック運用 〜スループットの向上を目指して〜」という話でセッションさせていただいたので本ブログではその発表した内容を資料と共にご紹介します! 動画 資料 セッション内容 今回扱うこと、扱わないこと 今回は観点をメインに紹介します。 それぞれのエンジン等による細かい違いやチューニング方法には触れません。 例:MySQLとPostgras等 メトリクスはCloudWatchのものをご紹介します。 今回はあくまで概要と基本です。

                                                                    「ハイトラフィック運用 〜スループットの向上を目指して〜」という話をしました #devio2020 | DevelopersIO
                                                                  • Multiversion View Serializability の簡潔な定義 - Qiita

                                                                    これは自作DBMSアドベントカレンダー2020、5 日目の記事です。 こんにちは、starpoz です。DBMS を作る人が増えてきたかも!という状況を後押ししたいので、自作に必要な理論の話をしてみようと思います。 はじめに DBMS 自作したいですよね!私は元々トランザクション処理 (OLTP) に興味があり、2PL (Two Phase Locking) プロトロルにおける deadlock というものが嫌で、それをなんとかしたい、という動機から OLTP についての研究開発活動を始めました。その話はまたどこかでするとして、今日は serializability (直列化可能性) よくわかりません、という人のために、できるだけ簡潔だが正しい説明を試みます。え?DBMSの自作は???と思ったかも知れませんが、理論を知らないと作れないので遠回りですが仕方ないのです(半分くらい嘘)。 Ser

                                                                      Multiversion View Serializability の簡潔な定義 - Qiita
                                                                    • Shopify Embraces Rust for Systems Programming - Shopify

                                                                      Shopify Embraces Rust for Systems ProgrammingShopify is adopting Rust as our systems programming language, and joining the Rust Foundation. Shopify builds internet infrastructure for commerce to serve the needs of millions of merchants. Doing that requires building both flexible business logic and robust, high-performance systems. In addition to our commitment to Ruby for its flexibility and expre

                                                                        Shopify Embraces Rust for Systems Programming - Shopify
                                                                      • How to Introduce Composite Primary Keys in Rails

                                                                        Opens in a new windowOpens an external siteOpens an external site in a new window Databases are a key scalability bottleneck for many web applications. But what if you could make a small change to your database design that would unlock massively more efficient data access? At Shopify, we dusted off some old database principles and did exactly that with the primary Rails application that powers onl

                                                                          How to Introduce Composite Primary Keys in Rails
                                                                        • 行き詰まりと停滞感があるとき | 心鈴泉-心理学とカウンセリング

                                                                          仕事、恋愛、結婚、人生にはいろんな場面がありますが、上手く行かなくて行き詰まることも、ときとしてあるものかもしれません。 仕事の場合、義務感だけでこなしていて不満やストレスが多かったり、やりがいや楽しさや成長が感じられるような部分がないと、停滞感を感じるかもしれません。 結婚がしてくても婚活が上手く進んでいなくて、行き詰まりを感じるというパターンもあるかもしれませんし、結婚していても日々の生活に変化がなくて、停滞感を感じるといったパターンもあるかもしれません。 停滞感を打ち破るために何かするというのにもやる気がイマイチ出なかったり、状況を変えるための良い手が思いつかなかったりしたりして、行き詰まりを感じる、というのもあるものかもしれません。 行き詰まりや停滞感があるときというのは、環境的な要因も大きいと思いますし、現実的な課題や問題も色々あると思います。タイミング待つ、ということが求められ

                                                                            行き詰まりと停滞感があるとき | 心鈴泉-心理学とカウンセリング
                                                                          • 2021 年振り返り - yoheimuta’s blog

                                                                            今年も一年の振り返りを簡単にまとめました。 私生活 体調管理 1 日も風邪をひくことなく元気に過ごせました 仮にコロナにかかると、子どもが濃厚接触者になります。その間仕事は休まないといけなくなるので、市中感染が多いときは積極的に在宅するようにしてました。 お手伝い 12/31 にコミックマーケット99(通称、冬コミ)の手伝いに行きました。二年ぶりでオペレーションを忘れているかと緊張しながらスペース設営に望みましたが、だんだんと勘を取り戻せて無事一年を締めくくれました。入場者数に制限がかかっていたため、常に怒号が鳴り響くこともなく、また、間違って人流に逆らった瞬間命の危険を感じることもなく、例年に比べると随分と落ち着いたイベントでした。 サークル入場開始直後の東ホール NFTs and a Thousand True Fans[1] で引用されている a Thousand True Fans

                                                                              2021 年振り返り - yoheimuta’s blog
                                                                            • スタートアップが取組むコンテナ化。EC2からECS Fargate移行の道のり - カミナシ エンジニアブログ

                                                                              初めまして。株式会社カミナシPMの@gtongy1です。 みなさんは、インフラのコンテナ化はお済みでしょうか? 弊社は今年6月頃にサービスを正式にリリースしたのですが、それ以前はEC2 + ELBでインフラを構築しており、それまでになかなかコンテナ化をしたくても出来ない状態でした。 各社様々な背景はあると思いますが、自分は コンテナ化をすればいいのは、なんとなくわかる。ただ、どこから始めたらいいんだろうか EC2構成でも動いているがために、なかなか変えようとする一歩目が踏み出せない コンテナ化を本番環境で構築した経験がない。実際にどんなことが課題として上がるんだろうか あたりに不安を感じていました。 ただ、インフラ運用に事業の足を取られてしまうリスクを抱える、それが嫌でコンテナ化を今回行いました。 そんな中での取り組みや課題感を先日話してきたので、その詳細をお伝え出来ればなと思います。 発

                                                                                スタートアップが取組むコンテナ化。EC2からECS Fargate移行の道のり - カミナシ エンジニアブログ
                                                                              • SQL Serverで断続的に発生するクエリタイムアウトの原因を調査した話 - ZOZO TECH BLOG

                                                                                こんにちは。ZOZOテクノロジーズの廣瀬です。 弊社ではサービスの一部にSQL Serverを使用しています。先日、「普段は数10ミリ秒で実行完了するクエリが、たまに5秒間実行され続けて最終的にタイムアウトするので調査して欲しい」という依頼を受けました。調査方法を整理して最終的に原因の特定とタイムアウト発生の防止まで実現できたので、一連の流れとハマった点、今回のようなケースでの調査に使える汎用的な調査手法をご紹介したいと思います。 SQL Server以外のRDBMSをお使いの方にも、「SQL Serverではこんな情報がとれるのか。MySQLだったら〇〇でとれる情報だな」というように比較しながら読んでいただけると嬉しいです。 初めに浮かんだ仮説 依頼を受けて最初に思い浮かんだのは、「ブロッキングが起きているのでは」という仮説でした。そこで、拡張イベントを使ってブロッキングを検出できる状態

                                                                                  SQL Serverで断続的に発生するクエリタイムアウトの原因を調査した話 - ZOZO TECH BLOG
                                                                                • 0.8.0 Release Notes ⚡ The Zig Programming Language

                                                                                  Tier 4 Support § Support for these targets is entirely experimental. If this target is provided by LLVM, LLVM may have the target as an experimental target, which means that you need to use Zig-provided binaries for the target to be available, or build LLVM from source with special configure flags. zig targets will display the target if it is available. This target may be considered deprecated by