From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 6 16:12:43 2005 Return-Path: X-Original-To: hackers@freebsd.org Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1F59016A41F; Mon, 6 Jun 2005 16:12:43 +0000 (GMT) (envelope-from ivoras@fer.hr) Received: from pinus.cc.fer.hr (pinus.cc.fer.hr [161.53.73.18]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9A13843D48; Mon, 6 Jun 2005 16:12:42 +0000 (GMT) (envelope-from ivoras@fer.hr) Received: from [161.53.72.113] (lara.cc.fer.hr [161.53.72.113]) by pinus.cc.fer.hr (8.12.2/8.12.2) with ESMTP id j56GFFpq000812; Mon, 6 Jun 2005 18:15:15 +0200 (MEST) Message-ID: <42A475AB.6020808@fer.hr> Date: Mon, 06 Jun 2005 18:11:23 +0200 From: Ivan Voras User-Agent: Mozilla Thunderbird 1.0 (X11/20041213) X-Accept-Language: en-us, en MIME-Version: 1.0 To: hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-2; format=flowed Content-Transfer-Encoding: 7bit Cc: pjd@freebsd.org Subject: Google SoC idea X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jun 2005 16:12:43 -0000 I have an idea that I could implement through Google's "Summer of Code" project, but as I have little experience with stuff it involves (kernel programming / disks / filesystem optimization), so I expect any answer from "It won't work" or "It's useless" to "It can't be done". :) The idea is this: to implement sort of GEOM-layer disk data journaling system. I imagine it to be a GEOM class using two "lower-level" devices: one for data and one for the "journal" (this way, the journal device can be on a fast and small disk). Such journaled device could be used to host any filesystem, probably mounted with synchronoues-access, and it will result in faster write access by keeping the writes sequential in the "journal" device. Journal information will be commited to the data disk periodically by a separate log-writer thread, or when it gets full. The "data disk" will be consistent so it can be used without it's "journal" part (after a clean disconnect/rebuild) if needed. At the worst case, I think this will help performance in cases when there's a burst of write activity followed by a period of IO idleness. I've made the above idea more-or-less from my head in one afternoon, so it's perfectly possible that I'm missing some vital point or that it's complete nonsense :) Does it make sense to do it this way? Is it worth applying for the SoC?