In general, what can we take for granted when we append to a file in UNIX from multiple processes? Is it possible to lose data (one process overwriting the other's changes)? Is it possible for data to get mangled? (For example, each process is appending one line per append to a log file, is it possible that two lines get mangled?) If the append is not atomic in the above sense, then what's the bes
Paxosとは何か 分散システムの金字塔とも呼ばれ、Leslie Lamport大先生の輝かしい成果の一つとして知られる分散合意アルゴリズムPaxos。 既存の解説 実はすでに存在するPaxosの解説は充分に質が高い Wikipediaの項目にも結構長々と書かれていて、これを読んで理解できた人はもう僕の記事を読む必要はない。 同様にPFIの久保田さんによる解説スライドもあり、これも良く書けているし、これを読んで理解できた人もこれ以上記事を読む必要はない。 minghai氏によるブログ記事のこれとか特にこっちなんかはかなり納得感があり、これらを読んで理解できた人も(中略) tyonekura氏によるスライドも良くかけていて(中略) この記事はこれらの説明に目を通してもなお理解できなかった人、もしくはこれらの説明をこれから読もうと思っている人に向けて書き、Paxosアルゴリズムの詳細な説明自体
“Should I stay, or should I go?” Great song by the band The Clash. I’m listening to it, right now, while I’m writing this article. The song debuted back in 1982, a long time ago. Back then, I was just a kid exploring a new hobby — programming my Atari 2600. The first video game I ever wrote was written using 6502 Assembly for that console. The compiler for it cost about $65, if I recall, which at
CockroachDB was inspired by frustration with the available open source databases and cloud DBaaS offerings. It was never conceived of as anything but open source software. In late 2014, with encouraging interest from the GitHub community and concomitant inquiries from some forward-looking venture capitalists, it was decision time: should we start a company to accelerate CockroachDB development? On
Photo by Jon S 長らく日本のエンジニアは地位が低いと言われ続けていますが、海外のエンジニアは本当に地位が高いのでしょうか。海外のエンジニアは年収1,000万円以上稼ぐという話もよく言われますが、どこまでが本当なのでしょうか。 海外の事例を紹介する際に良い面しか紹介しておらず「実体は日本と一緒」という事も考えられなくは有りません。そこで今回は、海外のエンジニアの平均年収、他職種と比べた場合の日本の水準を調べてみました。 ■物価、職種、地域による比較 これまでもよくあったエンジニアの年収についての記事における問題点は下記の3つではないかと考えています。 物価を考慮していない 他の職種との比較していない アメリカ(シリコンバレー)との比較しかしていない ◆1.物価を考慮していない よくあるのが、単純にシリコンバレーなどのエンジニアのみの年収を取り上げて日本と比較するものですが、それ
We are happy to announce the first release of our new product, ScyllaDB Manager, a management system that automates maintenance tasks on a ScyllaDB cluster. In this release, we now provide a managed repair feature that will automatically run repairs on a cluster. A Smarter Repair Repairing a full cluster is not an easy task and multiple strategies exist. We provide a dedicated solution that levera
If you like the series, check out my upcoming book on Database Internals! Series consist of 5 pieces: Flavors of IO: Page Cache, Standard IO, O_DIRECTMore Flavors of IO: mmap, fadvise, AIOLSM TreesAccess Patterns in LSM TreesB-Trees and RUM ConjectureA new series on Distributed System concepts in Databases can be found here. Memory MappingMemory mapping (mmap) allows you to access a file as if it
On linux, the two AIO implementations are fundamentally different. The POSIX AIO is a user-level implementation that performs normal blocking I/O in multiple threads, hence giving the illusion that the I/Os are asynchronous. The main reason to do this is that: it works with any filesystem it works (essentially) on any operating system (keep in mind that gnu's libc is portable) it works on files wi
実装が2つある。以下、あくまで今の時点でのLinuxの場合の状況/実装のおはなし。 POSIX aio aio_read(3) とか aio_write(3), aio_error(3), aio_return(3) とか。 インターフェースはPOSIXで定義されているのと同じ。 システムコールじゃなくてライブラリ関数(librt) 裏でpthreadつくってがんばってるげ。 libaio http://lse.sourceforge.net/io/aio.html http://ftp.jaist.ac.jp/pub/Linux/Fedora/development/source/SRPMS/libaio-0.3.106-3.2.src.rpm とか io_prep_pread(2), io_prep_pwrite(2), io_submit(2), io_queue_init(2),
簡単にいうと、「ものごとに対して、5回、なぜ?を繰り返す」ということが思考を深めるのによいよ、という話です。 元ネタはトヨタとかなのかな? これは、僕も昔から意識しており、絶対に実践した方がいいものだと思っています。 余談ですが nanapi の共同創業者である和田さんと最初に作ったサービスが「なんで」というサービスです。これは「解決したいことをいれると、5回、なんで?と繰り返し聴いてくれるサービス」です。 ご想像の通り、めちゃくちゃ大したことないサービスなんですけれども、まあ、そのくらいこの考え方は結構大事にしています、ということです。 で、アプリやWebサービスの開発において、この5回繰り返すというのはとても重要です。上記の深津さんの記事でもありますが、特にユーザーから「こうしてほしい」といわれたときには必ずやったほうがいいことです。 この記事では、なぜしたほうがいいか?などの話をした
Good judgement is the result of experience ... Experience is the result of bad judgement. — Fred Brooks In our book, Growing Object-Oriented Software, Guided by Tests, we describe the different kinds of tests we use to drive the design of a computer system and show how they guide the evolution of the system's structure towards the Ports and Adapters architecture. The Ports and Adapters architectur
以下のツイートが結構反響があったので、どんな事をやったのかまとめておく。 自分の勉強用に最小構成のlinuxを作ったので、githubに転がしておく(不要な.cファイルもパッと見つけられる限り削除した)https://t.co/KdTb6zgr8N— Liva (@liva_jy) 2018年2月8日 元ネタはsatさんのこのツイート。 linuxのコードを理解するための、主要関数や構造体の名前はそのままに、簡略化したカーネルというのは作ってみたい。cgroupsとかトレーサとかエラー処理とかは思い切ってばっさりと。常人はそこにはまって躓くから— sat (@satoru_takeuchi) 2018年2月8日 僕はカーネルには詳しくはないので、中のソースを弄って素朴な実装にリプレースする、みたいな事はできないのだけど、kernel configでminimalな構成にして、不要なファイル
Rustに入門して2週間くらい経ったぜ TL;DR Rustは普通に便利ないい言語 入門した 入門にあたってはプログラミング言語Rustを読んだ。これの翻訳版ぽい。 読んでRustに対して思ったこと: 読んだやつは古いドキュメントの翻訳版だったようで一部記述が古いっぽかった 構文はシンプルだけど必要なものは揃ってる感 ML風でADTもパターンマッチもあるしtraitもあって言うことナシでしょ 所有権とか借用とかそういう聞いたことあるワードは参照という概念に対するアレっぽい スィー言語を気軽に(unsafe)呼べるのはFFIするとき良さそう 強そう マクロ割と便利そうな雰囲気ある RcとかArcとかCellとかいう便利なものがあるらしい あとBoxはいつ使うんじゃ 参照わかったようでわからない とりあえずスタックとヒープの違いは覚えたぞ 入門書なのに普通にするする読めてしまったし特に難しいこ
SpaceXがまたひとつ、常識を覆してくれました。とても地味で、宇宙マニアや技術者にしか気づかれない、しかし非常に重要な意味をもつ、ある「常識」を・・・・。 昨日のファルコン・ヘビー試験機の打ち上げ、多くの人が興奮して見ていたと思います。この赤いロードスターが宇宙を飛ぶシュールさ!!! Image: SpaceX そして圧巻のブースター2本同時着陸!!! Image: SpaceX そんなお祭り騒ぎの裏で、ファルコン・ヘビーが覆した、ある「地味な常識」があります。 この巨大ロケットのお尻をご覧ください。27基ものロケット・エンジンが、まるで咲き乱れるお花のようにずらりと並んでおります。 Image: SpaceX これをみて宇宙マニアなら、すぐにあのロケットを連想するでしょう。そう、失敗に終わったソ連の超大型ロケット、N-1を。 ソ連のN-1を見たときのぼく「こら流石に無理あるやろ…」 フ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く