[CalendarServer-users] A few questions about the functions of the server
dre at apple.com
Fri Dec 2 11:44:49 PST 2016
> On Dec 1, 2016, at 10:46 PM, 陈锋 <chenfeng at fintechina.com.cn> wrote:
> The server does not has any user interface like Google Calendar web version, right? But it can be accessed through an existing client like iCal or ThunderBird?
> By default the cal data are stored using files,
That was true in very old versions, but for quite a while CalendarServer has only supported a (postgres or oracle) database backend.
> but what if I want to save all of them using an external DB, seems like you support PostgreSQL by default? But what if I want to use mysql? Can the server support mysql?
We don't support mysql, however we do have a pretty fancy database abstraction layer in the twisted-extensions <https://github.com/apple/ccs-twistedextensions> (aka 'twext') project that sits atop the two supported backends (postgres and oracle), so adding a third is probably within the realm of possibility, although we have no plans to do so ourselves. Postgres is good.
> If I use an external DB to store the calendar data, what about the attachment of an event?
Attachments are not stored in the database. Instead they are stored in local files on the CalDAV server. For a multi-server deployment, use something like NFS to host the attachments directory for all servers to share.
> What is the recommended way to sync them in multiple server instances?
Any scheme where you have to explicitly 'sync' is not going to be good enough, because that implies the possibility of being out of sync, which opens the window to race conditions, etc. The attachments store needs to be a single source of truth. NFS works well for this.
> If I use an external DB, the server will be stateless, right? So I can deploy as many instances of it as I want to?
Yes. Of course there is runtime state, but the transactional nature of the database allows the data to stay consistent even if e.g. a CalDAV server disappears.
See also: https://github.com/apple/ccs-calendarserver/blob/master/doc/Admin/MultiServerDeployment.rst
Hope this helps,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the calendarserver-users