On Oct 30, 2016, at 1:57 AM, Karel Gardas <gard...@gmail.com> wrote:
> 
> On Fri, Oct 28, 2016 at 7:02 PM, Warren Young <w...@etr-usa.com> wrote:
>> On Oct 28, 2016, at 3:45 AM, Karel Gardas <gard...@gmail.com> wrote:
>>> 
>>> make it more scale-able and allow its real usage also for projects of
>>> bigger size.
>> 
>> How many projects are there bigger than SQLite, percentage-wise?
> 
> And does it really matter?

Sure it does.  Fossil is fast enough for SQLite, so if SQLite is “very large” 
compared to most other projects that could usefully use it, then speeding up 
Fossil amounts to spending effort on a tiny minority of users.

All of that is predicated on that first “if,” however.

>>> $ time /opt/fossil-head/bin/fossil clone
>>> http://netbsd.sonnenberger.org/ netbsd-src.fossil
>>> 
>>> It takes:
>>> 
>>> real    323m2.323s
>>> user    42m0.262s
>>> sys     13m18.003s
>> 
>> Okay, but compared to what?
> 
> For example Git, on the same source tree:
> 
> $ time git clone https://github.com/jsonn/src.git
> Cloning into 'src'...
> remote: Counting objects: 3725278, done.
> remote: Compressing objects: 100% (111/111), done.
> remote: Total 3725278 (delta 52), reused 0 (delta 0), pack-reused 3725166
> Receiving objects: 100% (3725278/3725278), 2.18 GiB | 773.00 KiB/s, done.
> Resolving deltas: 100% (2782525/2782525), done.
> Checking connectivity... done.
> Checking out files: 100% (176388/176388), done.
> 
> real    55m20.926s
> user    9m30.362s
> sys     4m50.320s

So given your other report, that rebuild takes 250 minutes of that time, then 
Fossil is within about 25% of the speed of Git, if you don’t rebuild.

>>> takes around 250 minutes on the same hardware and with the same
>>> fossil.
>> 
>> Would a --skip-rebuild option for fossil clone solve your major problem, 
>> then?
> 
> There is no such option in current fossil. Some commands (import)
> supports --no-rebuild, but clone is not among them.

I didn’t tell you to use that option, I asked if you would like that option to 
exist.

>> Rebuilding is strictly optional.  It just makes Fossil operations run faster 
>> post-clone.
> 
> That's news to me, I've thought rebuild is strictly necessary to have
> other fossil commands working

Nope.  The only reason Fossil rebuilds by default is that the clone operation 
results in a sub-optimal DB, because each cloned artifact is checked into the 
new DB separately.  You end up with a series of incremental states, none of 
which are equal to the final DB state once the clone is finished.

Rebuilding forces the SQLite instance inside Fossil to take a new look at all 
the cloned artifacts as a whole and optimize the DB for that completed 
post-clone state, rather than the series of incremental states that exist at 
each point during the clone.

> repo chksuming switching off as suggested by Nikita Borodikhin helps
> here a lot. The question is if to leave it to file-system or to fossil
> itself.

If your filesystem has strong data checksumming (as opposed to just metadata 
checksumming) then I see no reason to leave repo-cksum turned on.  Keep in mind 
that the vast majority of filesystems in common use do *not* have strong data 
checksumming, so letting repo-cksum default on is a good idea.
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to