from oc_filecache to a flexible and scalable oc namespace
Post on 11-Jan-2017
290 Views
Preview:
TRANSCRIPT
From oc_filecache to a flexible and scalable
OC namespace
OCC 2015 Hugo González Labrador IT-DSS-FDO
About me
About meTechnical student
About meTechnical student
CERNBox project
About meTechnical student
CERNBox project
Integration (OC with EOS) Scalability (DAS, HASD)
What is a cache ?
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 …)
What is a namespace ?
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
What is oc_filecache ?
What is oc_filecache ?
Is it a cache ?
What is oc_filecache ?
Is it a cache ? No
What is oc_filecache ?
Is it a cache ? No
Is it a namespace ?
What is oc_filecache ?
Is it a cache ? No
Is it a namespace ? Not when sharing is enabled
No user namespace when sharing is enabled
What is oc_filecache ?
Is it a cache ?
Is it a namespace ?
So, what is oc_filecache ?
No
Not when sharing is enabled
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
What does oc_filecache ?
What does oc_filecache ?1. Provides a hierarchical structure for the files within all the storages
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
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
What components are using oc_filecache directly?
What components are using oc_filecache directly?
1. Core apps Files, Files External, Files Sharing …
What components are using oc_filecache directly?
1. Core apps
2. Core library
Files, Files External, Files Sharing …
Cache, Storage, Share, Repair …
What components are using oc_filecache directly?
1. Core apps
2. Core library
Files, Files External, Files Sharing …
Cache, Storage, Share, Repair …
3. Probably 3rd apps
SCALING OWNCLOUD:A suggestion
1stLet’s call things by their name
Cache Namespace
2nd\OC\Files\Cache
to
\OC\Files\NSDispatcher
3rdCreate public interface
\OCP\Files\NS\INamespace
4thImplement
different namespaces plugins
OC\Files\NS\LocalNS OC\Files\NS\EosNS OC\Files\NS\SwiftNS
5thReplace
direct calls to oc_filecache
with
\OCP\Files\NSDispatcher
ArchitectureEos
Swift
Local
NSDispatcher
EosNS
SwiftNS
LocalNS
Requests
Benefits
BenefitsFlexibility:
Namespace in different technologies
BenefitsFlexibility:
Namespace in different technologiesScalability:
A namespace per user and not a global one
Take advantage of the storage (geo replication, checksums, built-in versions and trashbin)
BenefitsFlexibility:
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)
Benefits
Move responsibility from the core to NS plugin developer
Flexibility:
Namespace in different technologiesScalability:
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!!!
Drawbacks
Might (it shouldn’t) break backward compatibility
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
Danke!
top related