[CalendarServer-dev] Some questions
Wilfredo Sánchez Vega
wsanchez at apple.com
Tue Sep 5 19:04:42 PDT 2006
The server is written in Python, yes. Though one should note that
not all of the code being executed is python. For example, SSL
processing is done by OpenSSL via a Python shim (PyOpenSSL). So SSL
stream processing is all in C code.
So while the CalDAV server logic is Python, it is not a pure Python
Anyway, as to performance. First off, we are not writing the
server to scale to a million users. This isn't an implementation for
the Google or Yahoo! servers of the world to deploy; it's meant for
business use, and thousands, not millions, or users. Not that we'd
mind scaling to millions, but it's not a priority for this code today.
One of the pros of using Python is that it's easy. It's easy to
write, it's easy to read, and it's easy to maintain. We hope that
this means less bugs over time, and more flexibility to add the
features that people want in the future.
It is a single process, though we think it'll be straightforward
(and important) to ensure that multiple servers can run concurrently
against a shared data store. You could then run multiple instances on
one host, or on several hosts using a a storage area network/network
CalDAV doesn't yet have a server-to-server protocol to enable
clusters with disjoint storage, but there is work going into that area
in CalConnect. That's not strictly necessary if we wanted to do
clustering, but we haven't started any such work yet.
I don't know what you mean by reminders, but CalDAV and iCalendar
do allow for alarms. How alarms get passed on to users is up to
clients, though. The server doesn't take any specific action when
alarms fire; it simply stores them.
All of our documentation is on our web site. I know it's limited
right now, but we'll be adding to it over time.
On Aug 29, 2006, at 12:01 PM, Ciny Joy wrote:
> We have recently started thinking about impleenting a calendar server
> with CalDAV support. To get a better idea, I have been looking at the
> Open source implementations out there. It was exciting to hear the
> announcement of a CalDAV server with even scheduling implementation.
> I briefly browsed through the code and I had some questions. Am I
> in understanding that the entire server is written in Python? What are
> the pros and cons of doing so? Just wondering if there will be any
> performance impacts if you had say, a million users.
> Is it one single process that handles everything from the http
> to db operations?
> On a different note, as far as I could see "reminders" are not defined
> in the CalDAV spec. Do you do server side reminders? Is there a
> process taking care of this?
> Do you have an architecture overview spec I could look at?
> calendarserver-dev mailing list
> calendarserver-dev at lists.macosforge.org
More information about the calendarserver-dev