monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] mtndumb & public cert_id


From: Zbigniew Zagórski
Subject: [Monotone-devel] mtndumb & public cert_id
Date: Wed, 17 Dec 2008 09:42:43 +0100

Hello,

I'm slowly hacking monotone dumb transport for my personal
use (i don't have time to polish it to publishable state)
and found that it's very slow in creating merkle tree of
revisions and certs. It's because there is no access to
cert_id (it's SHA1 of all cert values joined with colon).

For dumb protocol and any other tool that could simulate
monotone server it's a must to have possibility to query for:

- packet of specific cert
- ids of certificates for given selector (or only revision)

Currently cert packet api provids only "get all cert packets
of revision". It's usually redundant information because we
usually need only cert_id and packet is needed only if
algrorithm decides that it's to be transfered.

So my proposition is to add new public entity 'cert_id' and
commands to retrieve it. For sake of simplicity it will be the
same as database cert_id (hash field of revision_certs table).

Automate commands:

get_packet_for_cert CERTID

Get single packet for cert with given certificate id.

select_certs SELECTOR

Get certs identifiers for revisions specified by SELECTOR.
Each output line contains pair <REVID,CERTID> separated by one
space character.

That would render mtndumb as fast as netsync when it comes
to build merkle tree. I bet it would be usable also for databases
as big as monotone.ca. Only difference would be transport.

Question:
Any objections for adding these kind of commands ?
[_Draft_ of implementation attached]

PS1. I know about nuskool effort but i also realize that it's
still lot to be done to make it work so i think that mtndumb
is really feasible tool for small personal projects.

Currently it works reasonably well with database of size ~12MB
(1200 revisions) i know it's not much but it's something.

PS2. Anybody uses mtndumb ?

PS3. Monotone dumb is file/sftp/ftp/http* transport for synchronizing
montone database.

Best regards,
--
Zbigniew Zagórski
/ software developer / geek / happy daddy /

Attachment: cert_id_automate_commands.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]