1

We want to use Milton WebDav to transfer files in our web application which eventually is going to be deployed on cloud environment (most likely azure) as IaaS. Now we are aware that WebDAV standard is stateless and hence it should not create any problems with cloud load balancer, but what we are not sure about Milton and have few questions:

1.) Is Milton implemented WebDAV as it is, do all the communication remains stateless? I assume that it passes Authentication token with every request but I am not sure where is the token stored at server? Does it store it in the database or some sort of cache etc.?

2.) Do locking mechanism works fine if a load balance is used and there are 5-6 servers to handle the load? Again where does Milton server store Lock Token?

Léo Léopold Hertz 준영
  • 134,464
  • 179
  • 445
  • 697
csn
  • 376
  • 7
  • 18
  • - we have just tested milton against litnus tests and it passes most of it so it seems that it implements the basic webdav standard as it is. – csn Apr 26 '12 at 12:48

2 Answers2

1

Sorry for the late comment, the two most important aspects of webdav which affect load balancing are digest authentication tokens (Nonce values) and lock tokens.

As the Resource implementor you get to control both of those. Lock tokens are typically stored in a database (you must implement the methods on LockableResource which will do the persistence) so will be shared across servers, although its not uncommon to use memory based lock tokens, in which case you need to find some way to share that information across servers.

Digest nonces are only a consideration if you've implemented DigestResource. The default NonceProvider uses a simple HashMap so this will not be shared across servers. But the interface is trivial so you can easily implement a database store. If your load-balancing solution uses sticky sessions then that won't be an issue because clients will go to the server which has their nonce.

Note that Tomcat session replication won't help with the above issues, because webdav clients typically dont support cookies, so there is no Servlet session.

brad
  • 857
  • 7
  • 8
0

I have never used Milton WebDAV before but from the looks of it, it is used to modify and edit files on a server.

However Azure's local storage is not shared. Each instance is a completely seperate server. If you modify a file on 1 server, it will not be replicated to the next.

Azure works by uploading a deployment package. When a new instance needs to come up it uses the deployment package and starts a completely new server.

From a your perspective they don't share anything in common. Because of this you will never know which server you are hitting.

If you have a shared file storage system behind, then it may be a different story. However that scenario looks odd from using Azure. Amazon EC2 with a shared EBS might do it though.

Adam
  • 16,089
  • 6
  • 66
  • 109