-
Notifications
You must be signed in to change notification settings - Fork 437
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define what's in Radicale 2.0 #364
Comments
Personally I'd like Radicale to focus on only one storage mechanism to make this goal easier. Otherwise I think each of those points should have its own issue to facilitate on-topic discussion. |
Yes, I agree, I think that one file per event is the best solution. When we finally get a thread-safe solution, there will be no discussion about databases, right? |
Well, using a database might be easier than manually acquiring locks. |
I always liked Radicale using plain vCard/vCalendar files that can be modified by any text editor if necessary and merged/split/diffed/etc. however one likes.
For small (likely private) installations the current |
Do you actually directly modify Radicale's data backend for any practical purpose? |
Sure, I used it a lot for debugging purposes (to emulate changes from another client) Also it's really helpful if you happen to have to merge vCards / vCalendars from sources/devices that for whatever reason can not directly sync with Radicale. In general I always like to be able to "repair" any potential issues by hand (just in case). |
I suppose a storage model like For larger calendars I don't think you really want to load the entire textfile into your editor anyway. And for searching, I've often used |
Well, personally, I'd be all in favor for improving the database support. Maybe even support new backend like mongo. That one seems especially well suited for Radicale. @Ede123 I'm quite sure this kind of fixes would be just as doable with databases, but yeah, you'll need to use the database client. It won't be quite as "user" friendly, but it'll still be a sys-admin job... One last point, even if I'm in favor of supporting more databases backend, I have to admit that extending support to a new backends may create a lot of bugs and user feedback / bugs, it might not be the direction you want for the project. |
The difference between "being race-condition proof" and "using a database" is discussed in #14. TL;DR using a DB doesn't magically make Radicale thread-safe (even if it can help) and using files in not blocking to eradicate race conditions. The locking issues we experience in #266 (and many other previous bugs) are caused by the HTTP server, not the storage. I don't know any locks caused by the storage in Radicale.
I disagree. The current implementation of the database storage is as stupid (even worse?) as the filesystem storage, and the "garbage in garbage out" strategy used by Radicale is not fixed by using databases. A missing closing tag would have lead to incoherent data in the database, and it would have been way more difficult to fix than editing a file. The way to fix the problem is to (1) fix race conditions, and (2) really read and understand ics and vcf formats (believe it or not, Radicale currently doesn't really understand what an event is!).
You're right. Supporting other storages actually created more problems than they helped users. The bug tracker is filled by tickets related to the multifilesystem and database backends. Thanks for your comment. Even if I disagree, I hear that you prefer databases, and you're not the only one. I think that the wonderful confidence given by databases to users is related to good reasons, mainly speed and concurrency. But these reasons cannot be applied to Radicale: it's currently "slow" because of the way data are stored, not because of the file storage, and the race conditions can be fixed without requiring a database. |
The performance issue is not in any particular storage implementation (well EDIT: #130 Also I don't think Radicale would have to start to know what a calendar is if it doesn't have to merge/split them into/from a large .ics file. |
Right! #130 +
Splitting and merging is the easy part, and Radicale is already able to do so: it can GET and PUT both collections and event with |
My point is that this knowledge shouldn't be in Radicale, but only in the implementation of AFAICT Radicale doesn't currently implement filters at all, and I don't think it's a critical feature to have. |
It's not critical, but it would be really useful to:
|
I've added some proposals and links to open tickets in the ticket description. |
Things have been explained here: http://librelist.com/browser//radicale/2015/8/21/radicale-1-0-is-coming-what-s-next/
I think that Radicale 2.0 should:
with
HTTP and iCal for example),
part
from the server part, and by adding use cases),
I'd also secretly love to drop the Python 2.x support.
Edited on 2016-03-14.
I've got some time to work on Radicale during the 3 next months (except 2 weeks of holidays in April), so expect big changes!
Here are the main goals of Radicale 2.0, after reading the comments and the open tickets:
It's easy, isn't it? Well, we must now decide what to do to reach these
goals. Here are my current choices:
I know that the storage is a difficult question, but I like
Comments welcome!
The text was updated successfully, but these errors were encountered: