Reconnection index transfer

hi,

We are currently working with a master repository synchronization and two nodes ( slave).

I can synchronize large files , so Syncthing generates a lot of indexes. Each block size is 128KiB generating many blocks in each file.

We have problems when we perform the reconnection to the calculation of indices , Syncthing has 50MB up and down every time. you can change the size of each block?

Currently no*. But,

and

are thoughts/efforts toward this.

*) You can change the block size by altering the constant, rebuilding, and not interacting with anyone else.

If you want you can compile a special version with a different block size. But it will only be compatible with the same custom version.

Thanks calmh,

In this moment I have the version of the deltas, but the problem persist. I view transfer all indexes.

thanks

How do you know? Did you add print statements in the index sender routine?

I’m using iptraf, is a program from network monitoring.

I have seen that transfers indexes remain in the same proportion 1/3500~ with all nodes synchronized.

So given you compiled that version, I suggest you actually add print staements to verify your observations. Furthermore, you’d have to usr this version on most nodes, and it might only be in effect after second startup on all nodes (after all nodes has seen each other for the first time).

If I create a new version with modified block size to (1GB) if the connection is down will start downloading that block or continue ?

thanks!

It reuses whole blocks, not part of blocks. Also, blocks are kept in memory (multiple of them), hence 1GB is too much.

Also, if 1 bit changes in a block, we will have to redownload the whole block.

In the query API ( http://192.168.241.129:8443/rest/db/status?folder=default ) , I see the version “version” : 287544554 . This number is related to the indexes?

Because version number changes on other devices when a device is offline ?

thanks!

I think its documented here:

Then the value indicated in the following figure, corresponds to maximum local version ??

thanks

I have no clue why its a sum, @calmh will have to answer that.

Basically so that the “total” version changes if either the local or remote indexes has changed. The RemoteLocalVersion is a sum of all the other devices version counters if I remember correctly.

Thanks Calmh,

I’m now again tested version of deltas. I get this in the logs :

What is "Database cache capacity 16020 KiB block "?

On the right you can see how all of the indexes are transferred .

Thanks!

So database cache capacity, is database cache capacity. I don’t think iptraf is the right tool to decide if indexes were sent as a whole or not. I’d add logging to go code to verify instead. Also, are you sure you are using code from the right pull request?

I suggest not using the delta index pull request code for the moment. It’s not merged for a reason, there’s an outstanding issue that needs resolving for it to be reliable.

Thanks AudriusButkevicius,

I used the version of deltas (https://github.com/calmh/syncthing/commit/97019f767fb0dbc94578d14c3f86e1c0c7a470fc).

I work with virtual machines, I have installed only syncthing and iptraf for network monitoring.

What software do you recommend for network traffic ?

Thanks!

Thanks Calmh and good job.

We are particularly interested in improving the deltas, we would like to know when will be available .

We 'd like to help in testing the deltas when they are available even if isn’t merged.

Thanks!

So iptraf for traffic is fine, but traffic might not always tell you wether the index stuff is working or not.