|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Mon, 11 Feb 2008
Climbing evening.
That was bloody excellent training, but since it was only third
one this year, I hardly can find a piece of body which is not aching right
now. Maybe ears though...
I started to climb high without usual warming traverses today, so knees were
damaged first (not counting couple of strikes by the wall and holds). Then
fair number of various attempts to finish new (quite complex though) trace
over blue holds in the right central section, which moves over the new
balcony in that area. Eventually I found the solution (although I think there
is another one, which requires a bit more power, but a bit less technique),
but damaged arms, rubbed all 20 fingers, and made arms very tired. Also tried
some interesting old traces, but since I tried them only second time, I failed.
That was ok, legs and back were not aching that time, but then I found a trace,
which made the day! Excellent complex and quite short trace in the right
vertical corner of the climbing area.
Trace requires very interesting technique almost without heavy powerlifting
movements, but good balance and stretching.
I spent more than a half of a hour there, damaged shoulders and fingers,
stretched everything which was not broken before, but completed the trace
(although only piece-by-piece, will finish it cleanly next time), and finally
moved to the shower (even sauna did not work today) as a number of separate pieces
of crap connected to each other essentially by virtue of the mind.
Excellent day, excellent time!
/life :: Link / Comments (0)
Initial implementation of the offline and cache coherency algorithms.
It is rather dumb and even does not have state machine handling
in the usual meaning.
Existing pohmelfs implementation has only two places where content of the inode
is 'globaly' modified, by 'gloabaly' I mean some changes, which have to be seen
by other clients if they will access given inode.
First one is directory reading, when inode in question gets information about
other inodes in given one, another one is object creation. Object removal is local
operation, and there are no collisions if multiple clients delete the same object
simultaneously.
When directory is being read first time, pohmelfs just syncs its content from the server,
all subsequent reads happen from cache, since all creations and removals happen locally.
This case is simple.
When pohmelfs is about to create an object, it marks parent inode as dirty,
if parent inode was not marked dirty previously, this ends up sending a single
message to the server. Server in turn can return content of the directory in question,
if that inode was already modified by different client. If there are objects with the same
name as local ones, local objects are 'renamed' to the 'oldname-synctime', so that
user could later run diff or whatever and merge changes. That is how offline
pohmelfs clients work.
Object is always created in the local cache only with local inode number. So far
it is never being sent to server (although code which does it and changes the inode
content exists), even writeback does not work right now (since server does not know
about object with local inode numbers). This part is a bit more complex: pohmelfs
has to sync inode (i.e. to send current inode info, wait until server creates object,
then receive real inode info and change local cache) either in writeback (when
system forces to writeback a page(s), appropriate inode will be synced first)
or in cache coherency algo. For that purpose each network state locking first checks if there
are messages in the queue from the server, which have to be processed first,
so far only server content receiving is supported, forcing to send own content on request
from server is a base of the cache coherency nad this is not yet turned on. Here
major race lives, which can lead to the full resync of the idea actually. After we locked
own network state and checked that there are no requests from the server, client can start
sending own commands, but before they came to the server, it can start CC resync
(and send messages into the same pipe as clients command) initiated
by different client, which will break protocol state machine. This is main idea to think about.
Oh, and to implement the same logic on server :)
/devel/fs :: Link / Comments (0)
kernelplanet.org
Someone good placed my rss feed to kernelplanet.org,
which is a kernel hackers place of shame glory :)
Well, one who did that probably saw that frequently I write quite a lot
of notes for a day, that I have no political/hacker/whatever ethic in
the blog, that I made too many english errors (especially when I have
no access to the dictionary) and so on, hope it is not that bad.
So, couple of words about what it is. This blog is fully devoted to how
I spend the days: hacking, having a rest, sleep and move to the toilet...
Blog has comments (with a bit not user friendly captcha), and number of them
one can find at the end of the message. When new comment is added, entry is updated,
so stream-based aggregators will see it as a new one. Usually there are 1-3 entries
per day, sometimes more, sometimes no entries.
That's it. Stay tuned.
/devel/other :: Link / Comments (2)
|