onode unique id versus packing id

along the lines of how reiser chooses to pack things on disk (heuristic that makes numbers of where and how to pack things).

onodes get a unique id.
– to be used in indexing (onode_index primarily, but also higher level indicies)

onodes get a packing id
– onodes with similar packing ids get put on disk together (theoretically). Numbers can overlap. i.e. non-unique. if two onodes share the same packing id, we REALLY want them to be packed together.

Tightly packing onodes

The current problem is that an onode, however much we can pack forks into a block, still takes up a minimum of one disk block. A disk block typically being 4kb, and a tendancy to want to be bigger (think large media files), and also being the unit of atomicity with disk writes.

So, how do we allow multiple onodes per block?
We could take the inode table way of doing things, and just have “an onode is X bytes, and X/block size = Y many onodes per block”, but that does have a lot to be desired – we may want variable sized forks to be stored along side onodes (e.g. what would typically go in an inode).

One way is to split each block into N “sub blocks” or “chunks” (or “insert-cool-name-here”). Basically have a block bitmap with N bits per block, and a chunk size of block size / N. This would allow us to have N onodes per block. Simple to implement (we wouldn’t even have to change the onode_index, as we could do a simple linear search for the onode, even storing them in onode_num order, enabling a binary search). But, if we had a 256kb block size, this means 32k per onode, no matter what. Annoying if the volume has both large media files (where the 256k block size helps), and small files (a unix like operating system or even a Maildir). Volumes are now big, and users like having one big file system on them – so we must be more flexible.

Do we want to (can we?) provide onodes which span blocks? My feeling is no to the latter – as in within the onode struct itself. Having an onode which has forks in other blocks seems like a quite reasonable (and indeed, needed) thing to do. So, we could have lots of onodes tightly packed into a disk block, with the forks being in other blocks. Typically though, you probably want at least one fork packed with the onode, as there aren’t many operations on the onode itself.

So, if onodes (along with some forks) can be a variable size, and we want to pack these into (quite possibly) large blocks, how are we going to do it?

I reckon we can pack them all into one block, with padding where needed (to have it so that no onode crosses atomicity borders) and rely on packing things in a block in a cache friendly manner.

“Free Trade Agreement” stuff up

We’ve got our position paper (at least a draft, going final soon), information on how to fight the nasty IP stuff and a petition.

http://www.linux.org.au/fta/

Lots of work, and community support will validate that effort!

talking at luv tomorrow

talking at LUV (Linux Users of Victoria) tomorrow night.

on:
– netfilter/iptables (a howto use it, well, some of it)
– Linux Australia update

and in the update I’ll be talking a lot about the AU-US Trade Agreement – after looking into it, i refuse to use the word free in relation to it.

the whole IP and patents things are really nasty.

no doubt i’ll try and rant about them here soon. i think i need a rant.

trade agreement

doing more work on documents related to the trade agreement, and the IP stuff within. it’s actually tricky to write something that’s good – but I think I’ve always known that.

my way of writing something seems to be to just edit and re-edit until happy. Granted, it usually works – but jeez it can be slow sometimes.

but it was good being able to talk to Rusty after the meeting today and nut through improvements to the doc.

spammers should die

I really want all spammers to die a really slow, painful and final death. I hate them. I really hate them. Especially blog spammers – you should become new armour for battle tanks.

memberdb 0.1!

Oh yes, time for me to abuse my position and spam a bunch of lists! :)

memberdb is the membership database software i’ve been hacking off and
on for a while now, and is being used by Linux Australia.

In it’s current form, it’s visually not very pretty – but the backend
database has had a huge amount of design (and redesign) work put into
it. This release is to encourage feedback, patches and volunteers.

It’s also out there so that other groups can look at it as a possible
solution to their membership database needs. Okay, realistically,
they’ll need a lot of work on it before it suits them and not us. It’s
called contributing dudes!

Yes, there are bugs. Yes, probably a security issue or something that’s
slipped me by – open source, peer review – all good.

Anyway, go have a look:
http://www.flamingspork.com/projects/memberdb/

or grab the 0.1 tarball from:
http://www.flamingspork.com/projects/memberdb/release/0.1/memberdb-0.1.tar.=
gz

even better, grab the latest sources and start hacking! esp if you’re a
XHTML and CSS guru – i need them :)

jpeg_recover.c

New junkcode addition – jpeg_recover.c
http://www.flamingspork.com/junkcode/

Borne out of weirdness going wrong with a friend’s compact flash card while we were on holiday – suddenly a bunch of photos went missing. It didn’t seem to be easy to recover them using conventional manipulations of the FAT filesystem, so instead (without an internet connection, but with lots of beer) hacked up a program that searches through a file (given as the command line parameter) extracts things that look like jpeg files and dumps them in the current directory. It can produce a number of false-positives, which is probably due to the fact that I didn’t have access to any jpeg specs, so this is all from looking at some jpeg files and working out something simple, quickly. But hey, we got a fair few of the photos back.

strangely accurate

You're an Espresso.
You’re an Espresso

What Kind of Coffee are You?
brought to you by Quizilla

cheerleaders

I think I now understand them, at least for american football. The game is so bloody slow and mostly boring that you’ve got to have *something* to look at that actually *does* something while at the game.

Hell, I’d wish they’d televise them now.

superbowl

well, after a 13 hour length american national anthem, much like one i saw on some show where it was so long you’d start falling asleep – they’re actually playing “football”.

What a pack of wimps. Stacking on 40 pounds of padding and a helmet to play a game with less contact than Rugby.

really, they should get a proper sport.

Mozilla rocks the world

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/2003110

top browser accessing flamingspork.com atm – w00t! MSIE6 had edged it out of the top position for a little while – but all these people checking out LCA2004 photos seem to like using a decent browser.

rock on.

photos from the 16th (penguin dinner night)

Okay, finally got around to posting these photos up, so here they are for your enjoyment.

The night was good, and the pub after great too.

Check out my Photos from the other day! (16 Jan)

about to leave st marks

yeas, i’m about to finish those last four things in packing and leave the room.

ahh… been fine place to come back to and crash. oh, and the network port was nice :)

oh, i just convinced myself to pull my mail :)

all is good fun, great conf, and sad it’s over really. It’s a *big* and *long* week – but ALL in a GOOD way! :)

but will be nice to get home, where i seem to spend a lot less money on beer.

dude – dunking machine

Talk about freakin funny. Bid for the balls to dunk your favourite Open Source luminary.

Check out my Photos from today! (17 Jan)

some are *real* funny.

GNOME.conf.au

it rocked so hard i’m real sleepy now.

more LA members confirmed,
more talking to people about stuff,
too many cool things to hack on.

Check out my Photos from today! (12 Jan)

got a good movie today too, but haven’t been bothered to put it up in a format that isn’t pure bloat.

miniconf day 1

funky, funky. Saw some Debian, saw some audio, hung out with people, grabbed some lunch with tridge and andrew bartlett (and someone else who SORRY, i’ve forgotten your name),

ran into Linus, said hi, minded each others laptops while running errands and heard a *very* funny story about why he got here late. Basically, he ended up sitting in a plane, for an hour and a half, while it wouldn’t start. It so wouldn’t start that the lights were out. Not only the lights, but the emergency lights as well. Funny, very funny.

grabbed coffee with andrew cowie instead of some of the later day sessions, and had some good chatting.

then came back, chatted, joked and found out that our theories about rusty running for LA ctte were pretty much spot on (although he would be great, he could also have time constraints), then he went in search of a local (instead of finding himself, who although left here 7 years ago, knew more than anyone else of us standing around). Then headed down to a pub’s ‘beer garden’ – otherwise probably known as the beer green house (it was noticably warmer than anywhere else, and a place i would *not* want to be when it was actuallly hot) and had a few drinks.

large table of us, had fun, exchanged funny stories and discussions about file systems (including hearing the permissions on linux and linus dialling his hard disk story from the man himself), discussions on phase trees and why they may be rather cool (and possibly not patent encumbered), reiser, success/failure stories and all sorts of other things.

then, went got thai food. nice, more chatting, and all was good. then a significantly smaller group of us headed to the pub (again). Bdale promises to join later in the week, when not jetlagged. :)

back in room now, blogging. hrrrm… probably not making much sense – should blog at times other than after midnight and after many beers.

Check out my Photos from today! (12 Jan). Not only that, but there’s photos from somebody else as well! wow.

What I’ve seen of Adelaide so far.

Just got back from the pub (well, the second one) – we’ve been to two.

Met Kim Oldfield (LUV dude) on the plane (was a few seats ahead of me) and had a chat on the way over – funky.

Got picked up from the airport (and fsck the airport is close to city, have heard planes all day – i would really love to try and get close to the runway :)

then headed into the accommodation – which is quite spacious actually.

Check out my Photos from today! (11 Jan)

linux.conf.au tomorrow!

well, the conf doesn’t actually *start* tomorrow (well, today) – okay SUNDAY – but that’s when i’m flying in.

in adelaide at about 12:30.

Fun, hacking, beer and food. rock!