広告システムを全く知らなかった私が約2ヶ月弱の開発期間で初期バージョンをローンチ、アーキテクチャも日々変更していき、あれから1年が経過しました。 SmartNews Adsは一般的な広告配信サーバとは異なる特徴をいくつか持っています。今回は運用型広告と純広告型の配信サーバのアーキテクチャを中心に、個人の裁量でどのように設計し、何を採択し、どのように変更していったのかを可能な限り公開し、発生した障害(課題)も晒しながらポストモーテムをします。
rmコマンドで大量のファイルを削除しようとするとjournaldがめっちゃリソース持っていく件— bokko (@cubicdaiya) 2017年8月3日 今時のファイルシステムはみんなジャーナルもってて何かあったときにそこからリカバリする仕組みになってるので、当たり前といえばそうなんだけども。 (TODO: ここにファイルシステムのツリー+ジャーナルのポンチ絵を手描きでも何でも描く) ご本尊のデータのツリーと何らかのWALを1セットで持っておくのはRDBだろうがファイルシステムだろうがそうは変わらない、で、削除についても並行制御をうまくやるために削除フラグをログに入れておいてあとで本尊のデータを整理するというのが基本的な設計になる。そこで私は立ち上がった(TL;DR: 特にオチとかはないです)。 rm -rf が遅いのは人類にとって損失ではないか。もっと速く完了するようにすれば、 rm
Linux には tmpfs という便利なファイルシステムがあります。 $ mount -t tmpfs -o size=64m tmpfs /dev/shm $ mount -t tmpfs -o size=64m /dev/shm /var/tmpとすると、/var/tmp がディスク上ではなくメモリ上に作られたファイルシステムとして mount されます。なので、/var/tmp は I/O 時にディスクI/Oが一切発生しない高速なディスクとして使えると。いわゆる RAM ディスク。(もちろんサーバーの電源を落とすと保存したファイルは消えます。) この tmpfs はなかなかに便利で、キャッシュとかそういうものでディスクにおいてたものここ置くと、ディスク I/O がカットできて超高速になります。はてなでは MySQL のスレーブの MyISAM のファイルを tmpfs において、オ
TFS is designed with the following goals in mind: Concurrent TFS contains very few locks and aims to be as suitable for multithreaded systems as possible. It makes use of multiple truly concurrent structures to manage the data, and scales linearly by the number of cores. This is perhaps the most important feature of TFS. Asynchronous TFS is asynchronous: operations can happen independently; writes
Go言語でシステムプログラミングの世界を覗くこの連載では、前々回からファイルシステムに関係する話題を扱ってきました。 今回の記事では、その総まとめとして、アプリケーションから見たファイルシステム周りの最深部を辿っていきます。 扱う話題は次の4つです。 ファイルロック ファイルのメモリへのマッピング 同期・非同期とブロッキング・ノンブロッキング select属のシステムコールによるI/O多重化 ファイルのロック(syscall.Flock()) ファイルのロックは、複数のプロセス間で同じリソースを同時に変更しないようにするために「いま使用していますよ」と他のプロセスに伝える手法のひとつです。 ファイルロックの最も単純な方法は、リソースが使用中であることをファイル(ロックファイル)によって示すというものでしょう。 たとえば、古いプログラマ(30代以上?)にはお馴染みのCGI(かつて動的なウェブ
著者/Author: Zbigniew Branowski (Cern) 原文/Original:http://blog.cloudera.com/blog/2017/02/performance-comparing-of-different-file-formats-and-storage-engines-in-hadoop-file-system/ Zbigniew Baranowskiはデータベースシステムの専門家であり、CERNでセントラルデータベースとHadoopベースのサービスを提供、サポートしているグループのメンバーです。 このブログはもともとCERNの「Databases at CERN」ブログで公開されており、CERNの許可を得てここで公開されています。 トピックこの記事では、Apache Hadoopエコシステムで利用可能ないくつかの一般的なデータフォーマットとストレー
はじめに procfsのエントリを作成する処理はカーネルやデバイスドライバのコードによく現れます。その際によく見かけるのは、以下のようにプレフィックスが「seq_」となっている関数名です。 static const struct file_operations proc_schedstat_operations = { .open = schedstat_open, .read = seq_read, .llseek = seq_lseek, .release = seq_release, }; これはseqファイルシステムと呼ばれる仕組みで提供しているI/Fになります。seqファイルシステムとは何でしょうか。 今回いろいろな目的があり、seqファイルシステムについての文書を作成しました。 なお、今回読んだLinuxのソースコードのバージョンは4.9になります。 まずDocumentを読む
利きファイルシステムができるのかという話を見かけたので、できそうだなと思って書いたやつです。 「ここに何かのファイルシステムがあります。ファイル操作を行って、どのファイルシステムか当ててください。なおディスクイメージを見ることはできません。」という問題を解く方法について考えます。 ぱっと思いつく方法はこれでしょうからやっていきます ディレクトリのなかにファイル作っていってinode番号見ればbtrfsとext4とXFSは区別できる気がしますね— シャルロット・びーる尽き太郎の憂鬱 (@naota344) 2016年6月15日 以下のスクリプトを走らせます。512GBで各FSのイメージ作って、ディレクトリをいくつか掘ってinode番号を表示させるだけです。 #!/bin/sh FS="btrfs ext4 xfs" DIR=/mnt/test for f in $FS; do echo ${
以前、CentOS 7 にZFSをインストールする方法を紹介しましたが Yum update のたびに不具合が発生したので Btrfs(バター エフエス)に乗り換えることにしました。 ZFSほど、便利な機能やコマンドはなさそうですが私の場合はBtrfsで十分そうです。 本投稿では、CentOS 7 に Btrfs をインストールする方法と利用方法を紹介します。 目次 1.Btrfsをインストール 2.Btrfsファイルシステムを作成 3.ディスクをマウントする方法 4.使用済み・空き容量の確認方法 5.RAID機能 作業環境 OS: CentOS Linux release 7.1.1503 (Core) 仮想化: KVM(MEM 4G,CPU 2) ※物理サーバでも、本投稿で紹介する手順で動作することを確認しています。 1.Btrfsをインストール ちなみにBtrfsとは Btrfs は
If you’re a regular reader, you might have noticed that I’ve been on a quest for the perfect backup program, and ended up writing my own encryption layer over bup. While writing encbup, I wasn’t very satisfied with having to download the entire huge archive just to restore a file, and still wished that I could use EncFS together with rdiff-backup to have true remote-mountable, encrypted, deduplica
fenrir.doorkeeper.jp @okuyamaoo データベースをファイルシステムとして使うDbmFsの紹介 OSS活動は好き ウェブ共同開発部所属 Web計全般の開発運営 DbmFsってなに 仕組みと構造 機能 DbmFsってなに DbmFsってなに github.com データを保存管理するのがデータベース WinだとExplorer MacだとFinderみたいなのがファイルシステム データベースのデータはファイルなので、ファイルシステムの一種ともいえる ファイルシステムの構造 フォルダ(ディレクトリ)をつくる テーブルをフォルダにマッピングする テーブルはフォルダに似ており、関連するものを入れる レコードは、ファイルに似ている データをJSONに変換 データベースをファイルシステムとして使うシステム データベースの構造とレコードをファイルシステムのファイルとフォルダにマ
以下のテキストは、執筆時当時の情報を元に書いたものであり、 現在の情勢にそぐわないことを含む場合があるので注意されたい。 また、テキストは最終提出原稿で校正を経る前のものなので、実際にOSM 本誌に記載されたものとは異なる。誤字脱字等そのままである。 致命的な誤り以外は加筆修正等は行なわないので情報の鮮度に気をつけつつ 利用して欲しい。 →目次 ====================================================================== Part4: portalfsとFUSEで独自ファイルシステムを実装しよう ====================================================================== ■ ■独自ファイルシステムを構築しよう ■ 圧縮ファイル、リモートファイル、参照する時刻によ
FUSEは、ユーザ空間のプログラムにファイルシステムを実装するための インタフェースを提供する。FUSE導入の経緯を紹介した前回に引き続いて今回は, FUSEの構造を簡単に説明し、FAQとFUSEファイルシステムの簡単な実装例を紹介する。 FUSEの構造 FUSEは、以下に示す3つの主要な 部分から構成される。 カーネルモジュール fuse ユーザ空間ライブラリ libfuse mount/umountプログラム fusermount ファイルを操作するシステムコールをユーザ空間プロセスが発行すると、カーネル 空間においてVFSは各ファイルシステムによって定義される対応する操作関数を 呼び出す。FUSEカーネルモジュールによって定義される操作関数は、それに 対応する要求をファイルシステムを実装するユーザ空間プロセス(FUSEファイル システム・デーモン)に送り、その応答を待つ。FUSEカー
Joseph J. Pfeiffer, Jr., Ph.D. Emeritus Professor Department of Computer Science New Mexico State University pfeiffer@cs.nmsu.edu Version of 2018-02-04 One of the real contributions of Unix has been the view that "everything is a file". A tremendous number of radically different sorts of objects, from data storage to file format conversions to internal operating system data structures, have been m
以前、新入社員に、「tarファイルシステム」の試作モジュールを使って、「tarファイル」を通常のデバイスのようにマウントし、tarファイル内のファイルをLinuxコマンドで快適にアクセスするデモを見せたところ、 「tarファイルにどんな魔法をかけたのですか?」 と、非常にうれしい反応を返してくれました。 この魔法の仕掛けは、連載第3回「ファイルシステムってそんなに簡単に作れるの?」で、一通り説明しましたが、ポイントは“tarファイルの終端にメタデータを配置する”という、大胆ですがチャレンジングな方法を採用した点にあります。 そこで、今回と次回の2回にわたって、「tarfsのデータ構造」と「ファイルシステムとしてマウントするまでの処理の流れ」について解説していきます。 まず今回は、tarfsのデータ構造について見ていきましょう。tarfsのメタデータとしては、基本的に、連載第2回「素晴らしき
Linux独特の/usrとか/etcのディレクトリ構造ってどういったルールになっているんだろうと疑問を持ってググってたら辿り着いたのがFHS(Filesystem Hierarchy Standard)という仕様。 http://www.pathname.com/fhs/ 2012年9月現在のバージョンは2004年1月にアナウンスされた2.3が最新。PDFにして45ページの軽量なドキュメントだったので、ざっと読んだ内容をメモ。 FHSに書いてあること トップディレクトリ以下階層にあるべきディレクトリ/ファイルとオプショナルで存在するディレクトリ/ファイルの定義 それぞれのディレクトリ毎の用途/利用目的 これを理解すれば、例えばあるソフトウェアの設定ファイルはこのディレクトリにインストールされログファイルはこのディレクトリ以下に出力される、といったことが理解しやすくなる。具体的にはrpmでイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く