from oc_filecache to a flexible and scalable oc namespace

Post on 11-Jan-2017

290 Views

Category:

Internet

3 Downloads

Preview:

Click to see full reader

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