[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [Subclipse-dev] Revision graph and cache implementation

From: Alberto Gimeno <gimenete_at_gmail.com>
Date: Thu, 31 Jul 2008 13:50:29 +0200


I have just commited my work of this week. I have rewritten most of
the revision graph plugin.

The new cache implementation makes the following steps:
1.- store all the log messages without processing them. I'm using batch updates.
2.- given a path and revision number it finds the first revision and
path of that file (i.e. the root branch)
3.- from the root branch it iterates over the next revisions finding branches.

The first step now is faster compared to the old implementation,
because it doesn't makes any calculation and uses batch operations.

The second and third steps are very fast because they don't write to
the database. These steps just take about 8 seconds in a repository
with 4.000 revisions in my computer.

I have some things I want to think about.

a) The third step builds a graph in memory. There is no problem with
memory usage because only the required information to show the graph
is in memory. I could serializate the graph once it has been
calculated, for a future usage. If in a future the graph needs to be
updated I can deserialize it and add the new nodes.

b) With the last cache implementation I just make two reads to the
dabase, and revisions and change_paths are just stored as they came
from the repository. So, I'm thinking about storing that information
in files instead in the database. Maybe a big text file. But I don't
know how fast would be reading a text file with 100k lines. Would it
be much slower than reading a table with 100k records? I'm thinking of
that because the queries I need are very simple: "give me all
information from x revision to y revision". The only problem is
skipping all lines until the 'x' revision.
I'll need a file with the information in ascending order and other in
reverse order. Having these two files I could throw away the database.

I'm going to keep working on fixing some minor things.

On Mon, Jul 28, 2008 at 4:18 PM, Mark Phippard <markphip_at_gmail.com> wrote:
> On Mon, Jul 28, 2008 at 10:10 AM, Alberto Gimeno <gimenete_at_gmail.com> wrote:
>> I just want to say that I am at Valencia (Spain), at the Campus Party
>> 2008. Google invited me to this event. Here I'll talk about my
>> experience at the Google Summer of Code. More info:
>> http://gimenetegsoc.wordpress.com/2008/07/28/hello-from-the-campus-party-2008-valencia-spain/
>> I'm going to spend this week working in the revision graph. I'm going
>> to make some experiments with some of the ideas suggested by Stefan. I
>> hope to have a better cache implementation at the end of this week.
> That is great to hear, have fun.
> --
> Thanks
> Mark Phippard
> http://markphip.blogspot.com/
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_subclipse.tigris.org
> For additional commands, e-mail: dev-help_at_subclipse.tigris.org

Alberto Gimeno Brieba
Presidente y fundador de
Ribe Software S.L.
Contacto personal
eMail: gimenete_at_gmail.com
GTalk: gimenete_at_gmail.com
msn: gimenete_at_hotmail.com
página web: http://gimenete.net
teléfono móvil: +34 625 24 64 81
To unsubscribe, e-mail: dev-unsubscribe_at_subclipse.tigris.org
For additional commands, e-mail: dev-help_at_subclipse.tigris.org
Received on 2008-07-31 13:50:40 CEST

This is an archived mail posted to the Subclipse Dev mailing list.