On Sat, Jun 14, 2008 at 03:15:47AM +0100, Jamie Lokier (jamie@shareable.org) wrote:Noreover, that's true :) I regulary run and post various benchmarks comparing POHMELFS, NFS, XFS and Ext4, main goal of POHMELFS at this stage is to be essentially as fast as underlying local filesystem. And it is... Though there is a single place (random reading, all others reached FS speed, so it is from 10 to 300% faster than NFS in various loads :), but I'm working on it, I think it is not server's side though. Maybe it was a bit naive though :) But I checked lots of implementation, all of them use send()/recv() approach. NFSv4 uses a bit different, but it is a cryptic, and at least from its names it is not clear: like nfs_pagein_multi() -> nfs_pageio_complete() -> add_stats. Presumably we add stats when we have data handy... CIFS/SMB use synchronous approach. From those projects, which are not in kernel, like CRFS and CEPH, the former uses async receiving thread, while the latter is synchronous, but can select different servers for reading, more like NFSv4.1 leases. It covers all operations, including reading, directory listing, lookups, attribite changes and so on. Its main goal is to allow transaparent failover, so it has to be done for reading too. Oplocks and leases are essentially lock on given file, which allows one client to operate on it. POHMELFS does not have locks now, and they will be created depending on how distributed server will require them. In the simplesst case it can just lock file for writing and do not allow its updates from other clients. Lock aciquite can be done at write_begin time. Without lock and writeback cache in your case writeback for file Y can happen before writeback for file X, but if client does not only write, but also sync after its write, then yes, client will see later updates after more earlier. POHMELFS does not broadcast its interest in the file content until real writing happens, i.e. at writeback time. Although I can add a mode, when the same will be done during write_begin() time. In that case your example will work without sync. -- Evgeniy Polyakov -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Linus Torvalds | Linux 2.6.27 |
| Linus Torvalds | Linux 2.6.27-rc5 |
| Bart Van Assche | Re: Integration of SCST in the mainstream Linux kernel |
| Greg Kroah-Hartman | [PATCH 007/196] Chinese: add translation of stable_kernel_rules.txt |
git: | |
| Pierre Habouzit | Re: Decompression speed: zip vs lzo |
| Jakub Narebski | Re: VCS comparison table |
| Johannes Sixt | [PATCH 25/40] Windows: Implement a cpio emulation in git-clone.sh. |
| Jakub Narebski | Re: Git User's Survey 2007 unfinished summary continued |
| Steve B | Intel Atom and D945GCLF2 |
| Wijnand Wiersma | Almost success: OpenBSD on Xen |
| Theo de Raadt | Re: dmesg IBM x3650 OpenBSD 4.3 |
| Richard Stallman | Real men don't attack straw men |
| Hugh Dickins | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Jens Axboe | Re: [BUG] New Kernel Bugs |
| Denys Fedoryshchenko | thousands of classes, e1000 TX unit hang |
| Adrian Bunk | [RFC: 2.6 patch] remove ieee80211_tx_frame() |
| Shared swap partition | 7 hours ago | Linux general |
| high memory | 2 days ago | Linux kernel |
| semaphore access speed | 2 days ago | Applications and Utilities |
| the kernel how to power off the machine | 2 days ago | Linux kernel |
| Easter Eggs in windows XP | 2 days ago | Windows |
| Root password | 2 days ago | Linux general |
| Where/when DNOTIFY is used? | 2 days ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 2 days ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 2 days ago | Linux kernel |
| USB Driver -- Interrupt Polling -- A Little Help Please | 2 days ago | Linux general |
