File: day_212__webdav_rewrite.mdwn

package info (click to toggle)
git-annex 5.20141125
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 37,828 kB
  • ctags: 583
  • sloc: haskell: 42,582; sh: 1,080; ansic: 498; makefile: 316; perl: 125
file content (18 lines) | stat: -rw-r--r-- 927 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Today was spent reworking so much of the webdav special remote that it was
essentially rewritten from scratch.

The main improvement is that it now keeps a http connection open and uses
it to perform multiple actions. Before, one connection was made per action.
This is even done for operations on chunks. So, now storing a chunked file
in webdav makes only 2 http connections total. Before, it would take around
10 connections *per chunk*. So a big win for performance, although there is
still room for improvement: It would be possible to reduce that down to
just 1 connection, and indeed keep a persistent connection reused when
acting on multiple files.

Finished up by making uploading a large (non-chunked) file to webdav not
buffer the whole file in memory. 

I still need to make downloading a file from webdav not buffer it, and
test, and then I'll be done with webdav and can move on to making
similar changes to S3.