Lightning Talk given at OwnCloud Contributor Conference 2015 Berlin.
OwnCloud has some design constraints that limits the scalability of the product when is being used in huge deployments.
One component that limits this scalability is the oc_filecache. This talk will propose a new architecture for the handling of the metadata in OwnCloud.
7. What is a cache ?
A cache is a place to store something temporarily in a
computing environment.
A cache is controlled by a cache algorithm that provides
instructions for how the cache should be maintained (LRU,
MRU …)
9. What is a namespace ?
A namespace uniquely identifies a name so that there is
no ambiguity when files having different origins but the
same names are mixed together
16. What is oc_filecache ?
Is it a cache ?
Is it a namespace ?
So, what is oc_filecache ?
No
Not when sharing is enabled
17. What is oc_filecache ?
Is it a cache ?
Is it a namespace ?
So, what is oc_filecache ?
No
An ad-hoc component which is the foundation of
OwnCloud.
Not when sharing is enabled
19. What does oc_filecache ?
1. Provides a hierarchical structure for the files within all the
storages
20. What does oc_filecache ?
1. Provides a hierarchical structure for the files within all the
storages
2. Assigns a unique ID to all the files in all the storages
21. What does oc_filecache ?
1. Provides a hierarchical structure for the files within all the
storages
2. Assigns a unique ID to all the files in all the storages
3. Propagates changes to the top level directory
35. Benefits
Flexibility:
Namespace in different technologies
Scalability:
A namespace per user and not a global one
Take advantage of the storage (geo replication,
checksums, built-in versions and trashbin)
36. Benefits
Flexibility:
Namespace in different technologies
Avoid patching the core. Go upstream!!!
Scalability:
A namespace per user and not a global one
Take advantage of the storage (geo replication,
checksums, built-in versions and trashbin)
37. Benefits
Move responsibility from the core to NS plugin
developer
Flexibility:
Namespace in different technologies
Scalability:
A namespace per user and not a global one
Take advantage of the storage (geo replication,
checksums, built-in versions and trashbin)
Avoid patching the core. Go upstream!!!
40. Robustness and Scalability
are the most important aspects.
We would like to help improve OwnCloud by
rethinking core architecture based on a scalable
design.
We think that scalable OwnCloud architecture will
benefit all users and all market segments.
The message