from oc_filecache to a flexible and scalable oc namespace

41
From oc_filecache to a flexible and scalable OC namespace OCC 2015 Hugo González Labrador IT-DSS-FDO

Upload: hugo-gonzalez-labrador

Post on 11-Jan-2017

290 views

Category:

Internet


3 download

TRANSCRIPT

Page 1: From oc_filecache to a flexible and scalable OC namespace

From oc_filecache to a flexible and scalable

OC namespace

OCC 2015 Hugo González Labrador IT-DSS-FDO

Page 2: From oc_filecache to a flexible and scalable OC namespace

About me

Page 3: From oc_filecache to a flexible and scalable OC namespace

About meTechnical student

Page 4: From oc_filecache to a flexible and scalable OC namespace

About meTechnical student

CERNBox project

Page 5: From oc_filecache to a flexible and scalable OC namespace

About meTechnical student

CERNBox project

Integration (OC with EOS) Scalability (DAS, HASD)

Page 6: From oc_filecache to a flexible and scalable OC namespace

What is a cache ?

Page 7: From oc_filecache to a flexible and scalable OC namespace

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 …)

Page 8: From oc_filecache to a flexible and scalable OC namespace

What is a namespace ?

Page 9: From oc_filecache to a flexible and scalable OC 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

Page 10: From oc_filecache to a flexible and scalable OC namespace

What is oc_filecache ?

Page 11: From oc_filecache to a flexible and scalable OC namespace

What is oc_filecache ?

Is it a cache ?

Page 12: From oc_filecache to a flexible and scalable OC namespace

What is oc_filecache ?

Is it a cache ? No

Page 13: From oc_filecache to a flexible and scalable OC namespace

What is oc_filecache ?

Is it a cache ? No

Is it a namespace ?

Page 14: From oc_filecache to a flexible and scalable OC namespace

What is oc_filecache ?

Is it a cache ? No

Is it a namespace ? Not when sharing is enabled

Page 15: From oc_filecache to a flexible and scalable OC namespace

No user namespace when sharing is enabled

Page 16: From oc_filecache to a flexible and scalable OC namespace

What is oc_filecache ?

Is it a cache ?

Is it a namespace ?

So, what is oc_filecache ?

No

Not when sharing is enabled

Page 17: From oc_filecache to a flexible and scalable OC namespace

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

Page 18: From oc_filecache to a flexible and scalable OC namespace

What does oc_filecache ?

Page 19: From oc_filecache to a flexible and scalable OC namespace

What does oc_filecache ?1. Provides a hierarchical structure for the files within all the storages

Page 20: From oc_filecache to a flexible and scalable OC namespace

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

Page 21: From oc_filecache to a flexible and scalable OC namespace

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

Page 22: From oc_filecache to a flexible and scalable OC namespace

What components are using oc_filecache directly?

Page 23: From oc_filecache to a flexible and scalable OC namespace

What components are using oc_filecache directly?

1. Core apps Files, Files External, Files Sharing …

Page 24: From oc_filecache to a flexible and scalable OC namespace

What components are using oc_filecache directly?

1. Core apps

2. Core library

Files, Files External, Files Sharing …

Cache, Storage, Share, Repair …

Page 25: From oc_filecache to a flexible and scalable OC namespace

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

Page 26: From oc_filecache to a flexible and scalable OC namespace

SCALING OWNCLOUD:A suggestion

Page 27: From oc_filecache to a flexible and scalable OC namespace

1stLet’s call things by their name

Cache Namespace

Page 28: From oc_filecache to a flexible and scalable OC namespace

2nd\OC\Files\Cache

to

\OC\Files\NSDispatcher

Page 29: From oc_filecache to a flexible and scalable OC namespace

3rdCreate public interface

\OCP\Files\NS\INamespace

Page 30: From oc_filecache to a flexible and scalable OC namespace

4thImplement

different namespaces plugins

OC\Files\NS\LocalNS OC\Files\NS\EosNS OC\Files\NS\SwiftNS

Page 31: From oc_filecache to a flexible and scalable OC namespace

5thReplace

direct calls to oc_filecache

with

\OCP\Files\NSDispatcher

Page 32: From oc_filecache to a flexible and scalable OC namespace

ArchitectureEos

Swift

Local

NSDispatcher

EosNS

SwiftNS

LocalNS

Requests

Page 33: From oc_filecache to a flexible and scalable OC namespace

Benefits

Page 34: From oc_filecache to a flexible and scalable OC namespace

BenefitsFlexibility:

Namespace in different technologies

Page 35: From oc_filecache to a flexible and scalable OC namespace

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)

Page 36: From oc_filecache to a flexible and scalable OC namespace

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)

Page 37: From oc_filecache to a flexible and scalable OC namespace

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!!!

Page 38: From oc_filecache to a flexible and scalable OC namespace

Drawbacks

Might (it shouldn’t) break backward compatibility

Page 39: From oc_filecache to a flexible and scalable OC namespace
Page 40: From oc_filecache to a flexible and scalable OC namespace

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

Page 41: From oc_filecache to a flexible and scalable OC namespace

Danke!