Multi-Server Support
From iFolder
Master Slave model
The new iFolder will implement the master slave model, so that multiple
servers can participate in a domain. The User provisioning is done at the
master,so that it can replicate to the slaves. User provisioning is confined to
a single server, so that multiple servers do not synchronize with each other.
This method will save the bandwidth used by the server process.
If a user has the data in one of the slave server and has shared his iFolder,
then the slave updates the catalog to the Master server, while the Master server
syncs the data back to all other Slaves, this way the master can be independent
of the number of slaves present.
Each server will have three collections like Domain, Catalog, Report. The
Domain collection is always updated at the master server and is synced to all
slaves. The catalog and Report are updated by the users to that specific
server(slave) and the slave syncs the data to Master and Master inturn will sync
it back to all other slaves.
The Domain collection has the member list, which has the list of Provisioned
users and the list of servers participating in the Domain. This collection
always get updated at the server side and master syncs the data to slave. The
slave doesn't sync the information back to master.
The hosts present in the members list has additional attributes like Public IP,
Private IP and the Public/Private key pair.
The Public IP is used by the User to communicate to the server while the
Private IP is used by the host to communicate with the master.
The Public/Private key pair is used by the hosts to perform a secure communication between the master/slave.
The catalog collection has the list of ifolder the provisioned user has rights
like, owner, Readonly, Read-Write.
The authentication is done at the server level, which means the master will not
be involved in the authentication unless the user is provisioned at the master
host. The slave host authenticates the users if the users are provisioned at
that host. Any changes done to the slave will sync with the master and the
master replicates these changes to other slaves, so that all are in sync.
The other collection in the server is the report collection which holds the
list of reports generated. This information is replicated across the servers so
that shared users have the information about the reports generated by other
trusted users.
