タグ

ロックと開発に関するiwwのブックマーク (8)

  • Qrioに4年間エンジニアとして携わって経験したこと #1|fukazayo

    こんにちは。 QrioというIoTスタートアップで約4年間エンジニアとして携わってきたfukazayoです。 この度、2019年8月末をもってQrioを退職することになり、ここに軌跡を綴っていきたいと思います。 誤解なきよう始めに綴っておくと、Qrioでの日々は、スタートアップならではのハードな局面はいくつかありましたが、結果として大企業では絶対に得られない様々な経験を積むことができたことは間違いありません。 もし、このエントリを読んだあなたが開発だけでは飽き足らず、ガジェットが好きで事業を始めとした開発以外の領域にも積極的に関わっていきたいと思った方は、Qrioはオススメの会社ですので、ぜひ話を聞きに行ってみて頂ければと思います。 キッカケ前職はSIerで働いており、滅茶苦茶なトラブル案件をなんとか乗り越えて憔悴しきっていたときに、上司からソニー(Qrioの現親会社)で人が足りないらしい

    Qrioに4年間エンジニアとして携わって経験したこと #1|fukazayo
  • WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita

    WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました!MySQLSQLPostgreSQLDatabaseQiitaEngineerFesta2022 TL; DR MySQL/Postgres とも, MVCC アーキテクチャの恩恵で, SELECT と UPDATE は基的には競合しない。 単一レコードのシンプルな UPDATE でも排他ロックされ,排他ロック中のレコードへの UPDATE での変更操作は トランザクション分離レベルによらず ブロックされる。UPDATE 文に含まれる WHERE 句での検索もブロックされ,これはブロックされない SELECT による検索とは別扱いになる。 但し UPDATE 文の WHERE 句上で,更新対象をサブクエリの SELECT から自己参照している場合は例外。トランザクション分離

    WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita
    iww
    iww 2022/07/05
    『元の StackExchange サイト上の最も投票されている回答が完全に間違っていました。やっぱり一次ソースが曖昧なときは実験しないとダメですね。』
  • 任天堂の厳しいコピーガードを破ろうとしたメーカーの挑戦とは?

    by Jared Lindsay 1980年代に「Atari 2600」などを開発したアタリは、サードパーティー製の低品質なソフトが市場にあふれたことなどからゲームソフトの低価格化を招き、経営を悪化させることになりました。これを回避するために任天堂は厳格なロット管理システムを導入しましたが、ゲーム会社のテンゲンなどは管理からの逸脱を試みました。テンゲンがどのように任天堂の目を逃れようとしたのかについて、開発者のニコール・ブラナガン氏が解説しています。 The games Nintendo didn't want you to play: Tengen https://nicole.express/2022/the-center-point-can-not-hold.html アタリは経営改革により、コンシューマー部門をアタリコープとして分割し売却。残ったアーケード部門をアタリゲームズと改称

    任天堂の厳しいコピーガードを破ろうとしたメーカーの挑戦とは?
    iww
    iww 2022/04/27
    知財を盗んでやった下種な行為を挑戦とかかっこよく言うなよ という話
  • 磁石で顎をロック、NZ大学が減量器具開発 「中世の拷問」と批判も

    新開発された減量器具「デンタルスリム・ダイエット・コントロール」。ニュージーランドのオタゴ大学提供(撮影日不明、2021年6月29日入手)。(c)AFP PHOTO / UNIVERSITY OF OTAGO 【6月29日 AFP】磁石で患者の顎を固定する減量器具が、ニュージーランドで開発された。研究班は肥満解消の新ツールとうたう一方、中世の拷問器具のようだとの批判も出ている。 「デンタルスリム・ダイエット・コントロール(DentalSlim Diet Control)」は、上下の臼歯に取り付ける磁石と締め付けボルトから成り、装着すると顎が2ミリしか開かなくなる。 研究を率いる、オタゴ大学(University of Otago)のポール・ブラントン(Paul Brunton)氏は、この器具により呼吸や会話を阻害することなく事を流動のみに制限でき、「悪影響が一切ない」と語った。 研究班

    磁石で顎をロック、NZ大学が減量器具開発 「中世の拷問」と批判も
    iww
    iww 2021/07/01
    自分の意志で付ける分には何も問題ないし面白い機械だと思う
  • Linuxのflock(2)でNFS上にあるファイルをロックする - メモの日々(2005-11-07)

    ■ [unix] Linuxのflock(2)でNFS上にあるファイルをロックする flock(2)を使う flock(2)のマニュアルには flock(2) は NFS 上のファイルのロックをしない。代わりに fcntl(2) を使用すること。これにより、十分に新しいバージョンの Linux と、ロック機能をサポートした NFS サーバを使用することにより、NFS 上でロックができる。 とある。が、 Linux NFS faqのD.10に、 The NFS client in 2.6.12 provides support for flock()/BSD locks on NFS files by emulating the BSD-style locks in terms of POSIX byte range locks. Other NFS clients that use the

    Linuxのflock(2)でNFS上にあるファイルをロックする - メモの日々(2005-11-07)
  • サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方

    CEDEC 2012ではドラゴンクエストXは「世界は一つ」を実現するためにどのようなサーバ構成にしているのか?ということで、オンライン作品であるドラクエXを支えるサーバの構成が講演されましたが、ゲームサーバー&ネットワークエンジン「ProudNet」の開発者であるNettention社のCEOであるHyunjik Baeさんは、韓国のオンラインゲームのサーバー開発と利用の経験を通して大規模プレイヤーのためのリアルタイムネットワーク同期技術について講演しました。 サーバーマシン1台でMMO同時接続者数10,000名を実現する方法 | CEDEC 2012 | Computer Entertaintment Developers Conference http://cedec.cesa.or.jp/2012/program/AB/C12_I0284.html Hyunjik Bae: こんにち

    サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方
  • H2、Derby、SQLiteの仕様の調査メモ(ロック周り) - ソフト開発お仕事メモ🐕

    はじめに 軽量DBのロック周りを話題にする人はあまりいません。 並列度が高い状態で使うことは稀であり、ロック周りはわりとどうでも良いことだと私も思います。でも、気になって気になって仕方ないので軽く調査しました。 調査対象 私がたまたま名前を知っていたものを調査することに決めました。 H2 Database Engine 1.0.79 Apache Derby 10.4.2.0 SQLite 3.6.4 ロックの粒度 狙ったわけではないのですが、見事にばらばら。 H2 デフォルトはテーブル全体です。行レベルロックは未サポート。ベータ版ならば、行レベルロックもサポートしてる模様。 (Features -> Comparison to Other Database Enginesより) Derby デフォルトは行ロックです。ただし、特定のトランザクションについては、Derbyがパフォーマンスの上

    H2、Derby、SQLiteの仕様の調査メモ(ロック周り) - ソフト開発お仕事メモ🐕
  • SQLite での ロック - 元祖 サトシのブログ

    あるプロセスが データを書き換え中に、他のプロセスが書き換えできないようになっているようだ。 仕組みとしては、トランザクション中に、他のプロセスがトランザクションを開始しようとすると、SQLITE_BUSY ってのが返ってくる。 APIsqlite_busy_timeout() を使って、SQLITE_BUSY になるまでの時間をミリ秒で指定できる。 トランザクションの開始だけでなく、DELETE, INSERT, UPDATEなども出来ないようになっている。 pysqlite を使って実験(Python) 別のプロセスでトランザクション状態にしておく。(例: sqlite コマンドを使って、BEGIN; を実行しておく) 以下の Python スクリプトを実行する。タイムアウトは10秒(10000ミリ秒) import sqlite con = sqlite.connect("te

  • 1