SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Des objets dans le cloud, et qui y restent :
L’expérience du développement de
CRESON, support pour des objets distants
fortement cohérents dans Infinispan
Prof Etienne Rivière,
Ecole Polytechnique de Louvain, UCLouvain, Belgique
(je ne fais pas d’IA non plus, ni de Machine Learning)
OSIS: Open Source pour le Cloud
14 juin 2019, Paris
etienne.riviere@uclouvain.be
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Menu for today
• Object-oriented programming and data in the cloud
• Why ORMs/OGM are ill-suited for sharing concurrent objects
• How we can do better by keeping objects in the cloud: CRESON
• Joint work with: Pierre Sutra (now Télécom SudParis), Cristian Cotes,
Marc Sánchez Artigas, Pedro Garcia Lopez (Uni. Rovira iVirgili, Spain),
Emmanuel Bernard,William Burns and Galder Zamarreño (Red Hat)
• Published at IEEE ICDCS 2017
• Result of the LEADS FP7 EU project, with Uni. Neuchâtel and Red Hat
• With another open source FP7 EU project, CloudSpaces
• Some reflexions on the academia-open source interaction
2
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Your typical Cloud application
✓ Scalability and elasticity (pay-as-you-go model)
✓ Availability even in the presence of failures
✓ Simplicity and separation of concerns
3
Presentation
Users
Presentation
Presentation
Application
logic
Application
logic
NoSQL
Data store
➡ NoSQL database: elastic and scalable storage for application state
• But typically offering a simple key/value store interface
➡ Application data shared and accessed concurrently by many service instances
🤔 Can we make the storage and access to application data in the database transparent?
Figure 1-5. Database architecture for the taxi-hailing application.
PASSENGER
MANAGEMENT
PASSENGER
MANAGEMENT
DATABASE
DRIVER
MANAGEMENT
DATABASE
TRIP
MANAGEMENT
DATABASE
REST
API
DRIVER
MANAGEMENT
REST
API
TRIP
MANAGEMENT
REST
API
DATABASE
ADAPTER
DATABASE
ADAPTER
DATABASE
ADAPTER
On the surface, the Microservices Architecture pattern is similar to SOA. With both
approaches, the architecture consists of a set of services. However, one way to think
about the Microservices Architecture pattern is that it’s SOA without the commercialization
and perceived baggage of web service specifications (WS-*) and an Enterprise Service
Bus (ESB). Microservice-based applications favor simpler, lightweight protocols such as
REST, rather than WS-* They also very much avoid using ESBs and instead implement
ESB-like functionality in the microservices themselves. The Microservices Architecture
pattern also rejects other parts of SOA, such as the concept of a canonical schema for
data access
The Benefits of Microservices
The Microservices Architecture pattern has a number of important benefits. First, it
tackles the problem of complexity. It decomposes what would otherwise be a monstrous
monolithic application into a set of services. While the total amount of functionality is
unchanged, the application has been broken up into manageable chunks or services
Each service has a well-defined boundary in the form of a remote procedure call
(RPC)-driven or message-driven API. The Microservices Architecture pattern enforces
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Object-oriented apps with NoSQL
💡 Encapsulate application data in objects stored in some NoSQL DB
• Object-DB mapper (Hibernate OGM)
• Language integration (Java Persistence API)
☹ Object access: get serialized object, new instance in local memory
• Methods called locally
• Data structure traversal = multiple back-and-forth with DB
☹ State-based replication of entire serialized object
☹ Weak or no consistency guarantees for shared objects
• e.g. Objectify (part of Google App Engine) not thread-safe
4
mappingO
serialized objectin-memory object
net
state-based replication
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Our proposal: CRESON
💡 Efficient support for shared objects over a NoSQL database
➡ Callable distributed objects
• Objects instantiated from DB representation but remain at server side
➡ Replication at the level of operations (method calls)
• Support for arbitrary-large objects
➡ Strong consistency guarantees for concurrent accesses
• Including for composed operations accessing multiple objects
5
mappingO
serialized objectin-memory object
net
O
state-based replication
proxy
net
operation
O
O O
operation-based replication
Traditional Object-NoSQL mapping
CRESON: callable and replicated shared objects
Open Source pour le Cloud - OSIS - Paris - Juin 2019
CRESON: components
• LKVS: a novel NoSQL storage abstraction
• Listenable Key-Value Store
• Object management logic built atop the LKVS
• Handle method calls for shared objects
• Maintain multiple replicas of in-memory objects
• Implement state-machine (operation-based) replication
• Client-side integration with the Java language
• Using annotations similar to JPA
6
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Listenable Key/Value Store
• Extend classical Key/Value Store API …
• void put(key k, value v)
• value_type get(key k)
• … with two additional calls
• void regListener(key k, client_id c, handler h)
• void unregListener(key k, client_id c)
• put() call for key k call all handlers associated to k
• Handler receives new value for the key
• For handlers who return something, notify listener client
7
Open Source pour le Cloud - OSIS - Paris - Juin 2019
LKVS illustrated
8
Client application instances
C1 C3C2
Key-Value Store
v1put(k1,v1)
v1
Open Source pour le Cloud - OSIS - Paris - Juin 2019
LKVS illustrated
8
regListener(k1,c2,h2)
Client application instances
C1 C3C2
Key-Value Store
h2
v1
Open Source pour le Cloud - OSIS - Paris - Juin 2019
LKVS illustrated
8
Client application instances
C1 C3C2
Key-Value Store
h2
v1
handlers for k1
Open Source pour le Cloud - OSIS - Paris - Juin 2019
LKVS illustrated
8
Client application instances
C1 C3C2
Key-Value Store
h2
v1
handlers for k1
regListener(k1,c3,h3)
h3
Open Source pour le Cloud - OSIS - Paris - Juin 2019
LKVS illustrated
8
Client application instances
C1 C3C2
Key-Value Store
h2
v1
handlers for k1
h3
Open Source pour le Cloud - OSIS - Paris - Juin 2019
LKVS illustrated
8
Client application instances
C1 C3C2
Key-Value Store
h2
v1
handlers for k1
h3
v1’put(k1,v1’)
Open Source pour le Cloud - OSIS - Paris - Juin 2019
LKVS illustrated
8
Client application instances
C1 C3C2
Key-Value Store
h2
v1
handlers for k1
h3
v1’
v1’
false true
notification of
listener C3
success
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Object management in CRESON (1)
• Client-side proxy + a session handler
• Object handler owns actual object
• Method calls and object creation/
closing sent as operations through
regular put() calls for key k
• Intercepted by handlers registered for k
• Client calling method receives its result
in its listener notification
• Lifetime of object for key k
• First use: on server, map from serialized
object in DB, or instantiate new object
• Object closed by last client for key k: on
server, object serialized and stored in DB
9
Client
application
instance
O1
C1
Listenable
Key-Value Store
kO1
Object
handler
Session
handler
Proxy
method calls
put(kO1,op)
listener for
kO1
O1
Open Source pour le Cloud - OSIS - Paris - Juin 2019
State Machine Replication
• Objects replicated at the LKVS side
• (dormant) Copies of serialized objects
• In-memory instances of currently-used shared objects
• Fault-tolerance: survive up to f faults with f+1 servers
• In-memory copies must remain consistent under
concurrent accesses
➡ Operation-based (state machine) replication
• Copies receive the exact same stream of operations
⚠ Constraint: objects must be deterministic
✓ Applying operations in the same order to deterministic objects
ensures strong consistency (linearizability)
10
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Putting everything together
11
Client
application
instances
O1
C1 C3C2
Listenable
Key-Value Store
trigger
kO1
call
Object
handlers
Session
handlers
Proxies
1
3
4
5
listener for kO2
2
method calls
put(kO1,op)
notify
kO2
ServersClients
linearize &
replicate op
listeners for
kO1
O1 O2
O1
Open Source pour le Cloud - OSIS - Paris - Juin 2019
CRESON guarantees
✓ Strong consistency: linearizability
✓ Composition
• A shared object can call other objects
• Maintains linearizability
✓ Persistence
✓ Disjoint-access parallelism
• Accesses to distinct objects use distinct LKVS components
✓ Elasticity
• Can add/remove storage nodes without restarting the service
12
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Use case and Interface
• StackSync: open-source equivalent of Dropbox
• Synchronization of user file system with cloud-stored file system
• Sharing of folders and files between users spaces
• Trace collected from Ubuntu1 personal cloud service
• Data stored in immutable object store (OpenStack Swift)
• Metadata requires strong consistency
13
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Original metadata
management in StackSync
• PostgreSQL relational database
• Stores the association between users, files, authorized devices, etc.
• Accessed from the application using SQL directly (manual object-relational mapping)
• Storage and querying handled by a Facade object
• Performance: use of stored procedures implementing app. logic at server side
• Scalability: sharded (partitioned) database using PL/Proxy
☹ No support for elastic scaling
☹ No consistency (ACID) guarantees across shards
14
Chunk ItemVersion
Item
WorkspaceUser Device
Facade
⭑
⭑⭑
⭑
⭑
⭑
⭑
⭑⭑⭑
Open Source pour le Cloud - OSIS - Paris - Juin 2019
StackSync metadata
management with CRESON
• Logic for metadata management re-
implemented in plain Java, as methods in
StackSync’s classes
• Determining which objects to store
independently in CRESON depends on update
visibility requirements
• Embedding Item, etc. to Workspace= atomic
operations within one Workspace object
• Portage was less than a week of effort
• Code is simpler and more coherent than with SQL
15
to modify the application metadata. We depict the class schema
of the SyncService in Figure 3. At some SyncService instance,
a thread interacts with CRESON using a Facade object.
Classes including the Facade and below differ from one
persistence technology to another. Their portage is where we
spent most of our effort.
A Workspace object models a synced folder. It is
composed of files and directories (Item in Figure 3). For
each Item, the SyncService stores versioning information
as ItemVersion objects. Similarly to other personal cloud
storage services, StackSync operates at the sub-file level by
splitting files into chunks; this greatly reduces the cost of data
synchronization. A Chunk is immutable and identified with a
fingerprint. It may appear in one or more files.
Relational Approach. To scale up the original relational
implementation, we followed conventional wisdom and sharded
metadata across multiple servers. The key enabler of this pro-
cess is PL/Proxy, a stored procedure language for PostgreSQL.
PL/Proxy allows dispatching requests to several PostgreSQL
servers. It was originally developed by Skype to scale up their
services to millions of users.
Following this approach, we horizontally partition metadata
by hashing user identifiers with PostgreSQL built-in function.
As a result, all the metadata of a user is slotted into the
same shard. Any request for committing changes made by the
same user is redirected to the appropriate shard. In detail, we
accomplish this with the following PL/Proxy procedure (we
omit some parameters for readability):
1 @Entity(key = "id")
2 public class Workspace {
3
4 public UUID id;
5 private Item root;
6 private List<User> users;
7
8 /* ... */
9
10 public boolean isAllowed(User user) {
11 return users.contains(user.getId());
12 }
13 }
1 @Entity(key = "id")
2 public class Facade {
3
4 @Entity(key = "deviceIndex")
5 public static Map<UUID,Device> devices;
6
7 @Entity(key = "workspaceIndex")
8 public static Map<UUID,Workspace> workspaces;
9
10 @Entity(key = "userIndex")
11 public static Map<UUID,User> users;
12
13 public UUID id;
14
15 /* ... */
16
17 public boolean add(Device device) {
18 return deviceMap.putIfAbsent(
19 device.getId(),device) == null;
20 }
21 }
Fig. 4. Workspace and Facade classes
Chunk ItemVersion
Item
WorkspaceUser Device
Facade
⭑
⭑⭑
⭑
⭑
⭑
⭑
⭑⭑⭑
independent objects stored in CRESON
embedded objects
Open Source pour le Cloud - OSIS - Paris - Juin 2019
CRESON interface
• Integration in Java (using AspectJ)
• Similar to the Java Persistence API (Hibernate,
etc.) … but using remote calls
• @Entity(key = “id”) annotation
• Object o of this class stored in CRESON
under key (classname+”:”+o.id)
• Store static field in CRESON under key
(classname+”:”+id)
• Only applies to static fields!
• No further action required from developer
• Shared maps (e.g. deviceIndex) are
transparently stored as collections in LKVS
16
to modify the application metadata. We depict the class schema
of the SyncService in Figure 3. At some SyncService instance,
a thread interacts with CRESON using a Facade object.
Classes including the Facade and below differ from one
persistence technology to another. Their portage is where we
spent most of our effort.
A Workspace object models a synced folder. It is
composed of files and directories (Item in Figure 3). For
each Item, the SyncService stores versioning information
as ItemVersion objects. Similarly to other personal cloud
storage services, StackSync operates at the sub-file level by
splitting files into chunks; this greatly reduces the cost of data
synchronization. A Chunk is immutable and identified with a
fingerprint. It may appear in one or more files.
Relational Approach. To scale up the original relational
implementation, we followed conventional wisdom and sharded
metadata across multiple servers. The key enabler of this pro-
cess is PL/Proxy, a stored procedure language for PostgreSQL.
PL/Proxy allows dispatching requests to several PostgreSQL
servers. It was originally developed by Skype to scale up their
services to millions of users.
Following this approach, we horizontally partition metadata
by hashing user identifiers with PostgreSQL built-in function.
As a result, all the metadata of a user is slotted into the
same shard. Any request for committing changes made by the
same user is redirected to the appropriate shard. In detail, we
accomplish this with the following PL/Proxy procedure (we
omit some parameters for readability):
1 @Entity(key = "id")
2 public class Workspace {
3
4 public UUID id;
5 private Item root;
6 private List<User> users;
7
8 /* ... */
9
10 public boolean isAllowed(User user) {
11 return users.contains(user.getId());
12 }
13 }
1 @Entity(key = "id")
2 public class Facade {
3
4 @Entity(key = "deviceIndex")
5 public static Map<UUID,Device> devices;
6
7 @Entity(key = "workspaceIndex")
8 public static Map<UUID,Workspace> workspaces;
9
10 @Entity(key = "userIndex")
11 public static Map<UUID,User> users;
12
13 public UUID id;
14
15 /* ... */
16
17 public boolean add(Device device) {
18 return deviceMap.putIfAbsent(
19 device.getId(),device) == null;
20 }
21 }
Fig. 4. Workspace and Facade classes
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Implementation
• Built over the open source Infinispan NoSQL
• Basis for Red Hat JBosss Data Grid
• LKVS = 13,500 SLOC ; CRESON = 4,000 SLOC
• Along with other developments from the LEADS
EU project, CRESON was integrated to the
‘experimental’ features in Infinispan
• Red Hat developed and integrated the LKVS
• Also used for data curation and processing
• Under its previous name ‘Atomic Object Factory’
17
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Evaluation
• Experiments
• Micro-benchmarks with single and multiple objects
✓ StackSync: throughput and latency using a real trace
• Using a real trace from the “Ubuntu One” drive
✓ StackSync: replication and elasticity
• Using trace collected from Ubuntu1 personal Cloud
• Cluster of 8-core/8GB Xeon 2.5 GHz, switched 1 Gbps
• 2 to 6 Infinispan servers (default = 3)
• Replication factor is 2 by default
18
Open Source pour le Cloud - OSIS - Paris - Juin 2019
StackSync performance: throughput
• 24 StackSync clients, each with 10 threads
• Dispatch commands from trace using RabbitMQ
• PostgreSQL using 2 additional PL/Proxy nodes (out of 6)
19
0
2000
4000
6000
8000
10000
2 4 6
Throughput(operations/s)
CRESON nodes
0
2000
4000
6000
8000
10000
2 4
Throughput(operations/s)
PostgreSQL shards
(higher is better)(higher is better)
+ 2 additional PL/Proxy nodes
median performance
using 6 servers: +50%
Open Source pour le Cloud - OSIS - Paris - Juin 2019
StackSync performance: latency
• About 300 doCommit() operations per second
• Most common method: adding new files to a personal space
20
0
20
40
60
80
100
5 10 15 20 25 30 35 40
CRESON PostgreSQL
CDF(%)
Latency (ms)
(leftmost is better)
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Elasticity and replication
• Single StackSync client with synthetic workload
21
0
1000
2000
3000
4000
2 3 4 5 6
Throughput(operations/s)
CRESON nodes
no replication
replication factor of 2
(higher is better)
adding server with no
restart (elasticity)
Cost of replication
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Academia contributing
to open source
• Open source was beneficial in LEADS
• Implement ideas in a state-of-the-art KVS
• Got feedback on code and integrated staging
• Much easier IP management (often complicated in EU projects)
• But is it enough?
• Non-maintained code gets deprecated
• EU (and generally, academic) project lifecycles does not match
requirements for high impact in open source
• Lack of funding and competencies for long-term support
• Funding agencies should act?
• Movement towards reproducible research artifacts
• Benefits from and to open source
22
Open Source pour le Cloud - OSIS - Paris - Juin 2019
Conclusion
• Client-side object-NoSQL mapping: costly and inefficient
for strongly-consistent shared objects
• CRESON: a solution to host callable shared objects
directly on a NoSQL DB
• Leverage the support from a novel LKVS abstraction
implemented in the Infinispan KVS
• Simple programming model and better performance and
elasticity than a state-of-the-art PostgreSQL solution
23
Des objets dans le cloud, et qui y restent :
L’expérience du développement de
CRESON, support pour des objets distants
fortement cohérents dans Infinispan
🤔??
questions?

Contenu connexe

Tendances

Kubera Launch Webinar: Kubernetes native management of Kubernetes native data
Kubera Launch Webinar: Kubernetes native management of Kubernetes native dataKubera Launch Webinar: Kubernetes native management of Kubernetes native data
Kubera Launch Webinar: Kubernetes native management of Kubernetes native dataMayaData Inc
 
Speed up Digital Transformation with Openstack Cloud & Software Defined Storage
Speed up Digital Transformation with Openstack Cloud & Software Defined StorageSpeed up Digital Transformation with Openstack Cloud & Software Defined Storage
Speed up Digital Transformation with Openstack Cloud & Software Defined StorageMatthew Sheppard
 
Natalie Godec - AirFlow and GCP: tomorrow's health service data platform
Natalie Godec - AirFlow and GCP: tomorrow's health service data platformNatalie Godec - AirFlow and GCP: tomorrow's health service data platform
Natalie Godec - AirFlow and GCP: tomorrow's health service data platformmatteo mazzeri
 
Integrating Globus into LRZ's Data Science Storage Service
Integrating Globus into LRZ's Data Science Storage ServiceIntegrating Globus into LRZ's Data Science Storage Service
Integrating Globus into LRZ's Data Science Storage ServiceGlobus
 
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...HostedbyConfluent
 
The Future of Computing is Distributed
The Future of Computing is DistributedThe Future of Computing is Distributed
The Future of Computing is DistributedAlluxio, Inc.
 
NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...
NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...
NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...Felix Gessert
 
CloudLab Overview
CloudLab OverviewCloudLab Overview
CloudLab OverviewEd Dodds
 
Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...
Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...
Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...Aditya Yadav
 
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...HostedbyConfluent
 
Intellias CQRS Framework
Intellias CQRS FrameworkIntellias CQRS Framework
Intellias CQRS FrameworkSergey Seletsky
 
d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...
d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...
d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...MayaData Inc
 
Using MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryUsing MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryNuxeo
 
Enterprise container platform verrazzano
Enterprise container platform verrazzanoEnterprise container platform verrazzano
Enterprise container platform verrazzanoMichel Schildmeijer
 
ZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsGokhan Boranalp
 
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...OpenStack
 
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red HatThe Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red HatOpenStack
 

Tendances (20)

Kubera Launch Webinar: Kubernetes native management of Kubernetes native data
Kubera Launch Webinar: Kubernetes native management of Kubernetes native dataKubera Launch Webinar: Kubernetes native management of Kubernetes native data
Kubera Launch Webinar: Kubernetes native management of Kubernetes native data
 
Speed up Digital Transformation with Openstack Cloud & Software Defined Storage
Speed up Digital Transformation with Openstack Cloud & Software Defined StorageSpeed up Digital Transformation with Openstack Cloud & Software Defined Storage
Speed up Digital Transformation with Openstack Cloud & Software Defined Storage
 
Natalie Godec - AirFlow and GCP: tomorrow's health service data platform
Natalie Godec - AirFlow and GCP: tomorrow's health service data platformNatalie Godec - AirFlow and GCP: tomorrow's health service data platform
Natalie Godec - AirFlow and GCP: tomorrow's health service data platform
 
Integrating Globus into LRZ's Data Science Storage Service
Integrating Globus into LRZ's Data Science Storage ServiceIntegrating Globus into LRZ's Data Science Storage Service
Integrating Globus into LRZ's Data Science Storage Service
 
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
 
The Future of Computing is Distributed
The Future of Computing is DistributedThe Future of Computing is Distributed
The Future of Computing is Distributed
 
NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...
NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...
NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial - Extended Ve...
 
Welcome to icehouse
Welcome to icehouseWelcome to icehouse
Welcome to icehouse
 
CloudLab Overview
CloudLab OverviewCloudLab Overview
CloudLab Overview
 
Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...
Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...
Automatski - RSA-2048 Cryptography Cracked using Shor's Algorithm on a Quantu...
 
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
 
Intellias CQRS Framework
Intellias CQRS FrameworkIntellias CQRS Framework
Intellias CQRS Framework
 
Autopilot : Securing Cloud Native Storage
Autopilot : Securing Cloud Native StorageAutopilot : Securing Cloud Native Storage
Autopilot : Securing Cloud Native Storage
 
d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...
d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...
d2iq, d2iq konvoy, day 2 operations, lifecycle management, mayadata, mayadata...
 
Using MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryUsing MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content Repository
 
Enterprise container platform verrazzano
Enterprise container platform verrazzanoEnterprise container platform verrazzano
Enterprise container platform verrazzano
 
Pci multitenancy exalogic at AMIS25
Pci multitenancy exalogic at AMIS25Pci multitenancy exalogic at AMIS25
Pci multitenancy exalogic at AMIS25
 
ZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed Systems
 
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
 
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red HatThe Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
 

Similaire à OSIS19_Cloud : Des objets dans le cloud, et qui y restent -- L'expérience du développement de CRESON, support pour des objets distants fortement cohérents dans Infinispan

Federated Cloud Computing
Federated Cloud ComputingFederated Cloud Computing
Federated Cloud ComputingDavid Wallom
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018Krishna-Kumar
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSSteve Wong
 
{code} and Containers - Open Source Infrastructure within Dell Technologies
{code} and Containers - Open Source Infrastructure within Dell Technologies{code} and Containers - Open Source Infrastructure within Dell Technologies
{code} and Containers - Open Source Infrastructure within Dell TechnologiesThe {code} Team
 
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSOpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSDaniel Krook
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
 
Introducing the Open Container Project
Introducing the Open Container ProjectIntroducing the Open Container Project
Introducing the Open Container ProjectAndrew Kennedy
 
BDE SC3.3 Workshop - BDE Platform: Technical overview
 BDE SC3.3 Workshop -  BDE Platform: Technical overview BDE SC3.3 Workshop -  BDE Platform: Technical overview
BDE SC3.3 Workshop - BDE Platform: Technical overviewBigData_Europe
 
Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529VMUG IT
 
Technical integration of data repositories status and challenges
Technical integration of data repositories status and challengesTechnical integration of data repositories status and challenges
Technical integration of data repositories status and challengesvty
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle Developers
 
Cloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open CloudCloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open CloudMark Hinkle
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Daniel Krook
 
Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...David Wallom
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightabhijit2511
 
'Cloud-Native' Ecosystem - Aug 2015
'Cloud-Native' Ecosystem - Aug 2015'Cloud-Native' Ecosystem - Aug 2015
'Cloud-Native' Ecosystem - Aug 2015Lenny Pruss
 
Cluster Management _ kubernetes MADIHA HARIFI
Cluster Management _ kubernetes MADIHA HARIFICluster Management _ kubernetes MADIHA HARIFI
Cluster Management _ kubernetes MADIHA HARIFIHarifi Madiha
 

Similaire à OSIS19_Cloud : Des objets dans le cloud, et qui y restent -- L'expérience du développement de CRESON, support pour des objets distants fortement cohérents dans Infinispan (20)

Federated Cloud Computing
Federated Cloud ComputingFederated Cloud Computing
Federated Cloud Computing
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
{code} and containers
{code} and containers{code} and containers
{code} and containers
 
{code} and Containers - Open Source Infrastructure within Dell Technologies
{code} and Containers - Open Source Infrastructure within Dell Technologies{code} and Containers - Open Source Infrastructure within Dell Technologies
{code} and Containers - Open Source Infrastructure within Dell Technologies
 
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSOpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
Introducing the Open Container Project
Introducing the Open Container ProjectIntroducing the Open Container Project
Introducing the Open Container Project
 
Self-Service Supercomputing
Self-Service SupercomputingSelf-Service Supercomputing
Self-Service Supercomputing
 
BDE SC3.3 Workshop - BDE Platform: Technical overview
 BDE SC3.3 Workshop -  BDE Platform: Technical overview BDE SC3.3 Workshop -  BDE Platform: Technical overview
BDE SC3.3 Workshop - BDE Platform: Technical overview
 
Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529
 
Technical integration of data repositories status and challenges
Technical integration of data repositories status and challengesTechnical integration of data repositories status and challenges
Technical integration of data repositories status and challenges
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018
 
Cloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open CloudCloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!
 
Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
 
'Cloud-Native' Ecosystem - Aug 2015
'Cloud-Native' Ecosystem - Aug 2015'Cloud-Native' Ecosystem - Aug 2015
'Cloud-Native' Ecosystem - Aug 2015
 
Cluster Management _ kubernetes MADIHA HARIFI
Cluster Management _ kubernetes MADIHA HARIFICluster Management _ kubernetes MADIHA HARIFI
Cluster Management _ kubernetes MADIHA HARIFI
 

Plus de Pôle Systematic Paris-Region

OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...Pôle Systematic Paris-Region
 
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...Pôle Systematic Paris-Region
 
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...Pôle Systematic Paris-Region
 
OSIS19_Cloud : Performance and power management in virtualized data centers, ...
OSIS19_Cloud : Performance and power management in virtualized data centers, ...OSIS19_Cloud : Performance and power management in virtualized data centers, ...
OSIS19_Cloud : Performance and power management in virtualized data centers, ...Pôle Systematic Paris-Region
 
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...Pôle Systematic Paris-Region
 
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...Pôle Systematic Paris-Region
 
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick MoyOsis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick MoyPôle Systematic Paris-Region
 
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAPôle Systematic Paris-Region
 
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur BittorrentOsis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur BittorrentPôle Systematic Paris-Region
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...Pôle Systematic Paris-Region
 
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riotOSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riotPôle Systematic Paris-Region
 
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...Pôle Systematic Paris-Region
 
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...Pôle Systematic Paris-Region
 
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...Pôle Systematic Paris-Region
 
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)Pôle Systematic Paris-Region
 
PyParis 2017 / Un mooc python, by thierry parmentelat
PyParis 2017 / Un mooc python, by thierry parmentelatPyParis 2017 / Un mooc python, by thierry parmentelat
PyParis 2017 / Un mooc python, by thierry parmentelatPôle Systematic Paris-Region
 
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...Pôle Systematic Paris-Region
 

Plus de Pôle Systematic Paris-Region (20)

OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
 
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
 
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
 
OSIS19_Cloud : Performance and power management in virtualized data centers, ...
OSIS19_Cloud : Performance and power management in virtualized data centers, ...OSIS19_Cloud : Performance and power management in virtualized data centers, ...
OSIS19_Cloud : Performance and power management in virtualized data centers, ...
 
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
 
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
 
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick MoyOsis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
 
Osis18_Cloud : Pas de commun sans communauté ?
Osis18_Cloud : Pas de commun sans communauté ?Osis18_Cloud : Pas de commun sans communauté ?
Osis18_Cloud : Pas de commun sans communauté ?
 
Osis18_Cloud : Projet Wolphin
Osis18_Cloud : Projet Wolphin Osis18_Cloud : Projet Wolphin
Osis18_Cloud : Projet Wolphin
 
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
 
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur BittorrentOsis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
 
Osis18_Cloud : Software-heritage
Osis18_Cloud : Software-heritageOsis18_Cloud : Software-heritage
Osis18_Cloud : Software-heritage
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riotOSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
 
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
 
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
 
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
 
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
 
PyParis 2017 / Un mooc python, by thierry parmentelat
PyParis 2017 / Un mooc python, by thierry parmentelatPyParis 2017 / Un mooc python, by thierry parmentelat
PyParis 2017 / Un mooc python, by thierry parmentelat
 
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
 

Dernier

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Dernier (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

OSIS19_Cloud : Des objets dans le cloud, et qui y restent -- L'expérience du développement de CRESON, support pour des objets distants fortement cohérents dans Infinispan

  • 1. Des objets dans le cloud, et qui y restent : L’expérience du développement de CRESON, support pour des objets distants fortement cohérents dans Infinispan Prof Etienne Rivière, Ecole Polytechnique de Louvain, UCLouvain, Belgique (je ne fais pas d’IA non plus, ni de Machine Learning) OSIS: Open Source pour le Cloud 14 juin 2019, Paris etienne.riviere@uclouvain.be
  • 2. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Menu for today • Object-oriented programming and data in the cloud • Why ORMs/OGM are ill-suited for sharing concurrent objects • How we can do better by keeping objects in the cloud: CRESON • Joint work with: Pierre Sutra (now Télécom SudParis), Cristian Cotes, Marc Sánchez Artigas, Pedro Garcia Lopez (Uni. Rovira iVirgili, Spain), Emmanuel Bernard,William Burns and Galder Zamarreño (Red Hat) • Published at IEEE ICDCS 2017 • Result of the LEADS FP7 EU project, with Uni. Neuchâtel and Red Hat • With another open source FP7 EU project, CloudSpaces • Some reflexions on the academia-open source interaction 2
  • 3. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Your typical Cloud application ✓ Scalability and elasticity (pay-as-you-go model) ✓ Availability even in the presence of failures ✓ Simplicity and separation of concerns 3 Presentation Users Presentation Presentation Application logic Application logic NoSQL Data store ➡ NoSQL database: elastic and scalable storage for application state • But typically offering a simple key/value store interface ➡ Application data shared and accessed concurrently by many service instances 🤔 Can we make the storage and access to application data in the database transparent? Figure 1-5. Database architecture for the taxi-hailing application. PASSENGER MANAGEMENT PASSENGER MANAGEMENT DATABASE DRIVER MANAGEMENT DATABASE TRIP MANAGEMENT DATABASE REST API DRIVER MANAGEMENT REST API TRIP MANAGEMENT REST API DATABASE ADAPTER DATABASE ADAPTER DATABASE ADAPTER On the surface, the Microservices Architecture pattern is similar to SOA. With both approaches, the architecture consists of a set of services. However, one way to think about the Microservices Architecture pattern is that it’s SOA without the commercialization and perceived baggage of web service specifications (WS-*) and an Enterprise Service Bus (ESB). Microservice-based applications favor simpler, lightweight protocols such as REST, rather than WS-* They also very much avoid using ESBs and instead implement ESB-like functionality in the microservices themselves. The Microservices Architecture pattern also rejects other parts of SOA, such as the concept of a canonical schema for data access The Benefits of Microservices The Microservices Architecture pattern has a number of important benefits. First, it tackles the problem of complexity. It decomposes what would otherwise be a monstrous monolithic application into a set of services. While the total amount of functionality is unchanged, the application has been broken up into manageable chunks or services Each service has a well-defined boundary in the form of a remote procedure call (RPC)-driven or message-driven API. The Microservices Architecture pattern enforces
  • 4. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Object-oriented apps with NoSQL 💡 Encapsulate application data in objects stored in some NoSQL DB • Object-DB mapper (Hibernate OGM) • Language integration (Java Persistence API) ☹ Object access: get serialized object, new instance in local memory • Methods called locally • Data structure traversal = multiple back-and-forth with DB ☹ State-based replication of entire serialized object ☹ Weak or no consistency guarantees for shared objects • e.g. Objectify (part of Google App Engine) not thread-safe 4 mappingO serialized objectin-memory object net state-based replication
  • 5. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Our proposal: CRESON 💡 Efficient support for shared objects over a NoSQL database ➡ Callable distributed objects • Objects instantiated from DB representation but remain at server side ➡ Replication at the level of operations (method calls) • Support for arbitrary-large objects ➡ Strong consistency guarantees for concurrent accesses • Including for composed operations accessing multiple objects 5 mappingO serialized objectin-memory object net O state-based replication proxy net operation O O O operation-based replication Traditional Object-NoSQL mapping CRESON: callable and replicated shared objects
  • 6. Open Source pour le Cloud - OSIS - Paris - Juin 2019 CRESON: components • LKVS: a novel NoSQL storage abstraction • Listenable Key-Value Store • Object management logic built atop the LKVS • Handle method calls for shared objects • Maintain multiple replicas of in-memory objects • Implement state-machine (operation-based) replication • Client-side integration with the Java language • Using annotations similar to JPA 6
  • 7. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Listenable Key/Value Store • Extend classical Key/Value Store API … • void put(key k, value v) • value_type get(key k) • … with two additional calls • void regListener(key k, client_id c, handler h) • void unregListener(key k, client_id c) • put() call for key k call all handlers associated to k • Handler receives new value for the key • For handlers who return something, notify listener client 7
  • 8. Open Source pour le Cloud - OSIS - Paris - Juin 2019 LKVS illustrated 8 Client application instances C1 C3C2 Key-Value Store v1put(k1,v1) v1
  • 9. Open Source pour le Cloud - OSIS - Paris - Juin 2019 LKVS illustrated 8 regListener(k1,c2,h2) Client application instances C1 C3C2 Key-Value Store h2 v1
  • 10. Open Source pour le Cloud - OSIS - Paris - Juin 2019 LKVS illustrated 8 Client application instances C1 C3C2 Key-Value Store h2 v1 handlers for k1
  • 11. Open Source pour le Cloud - OSIS - Paris - Juin 2019 LKVS illustrated 8 Client application instances C1 C3C2 Key-Value Store h2 v1 handlers for k1 regListener(k1,c3,h3) h3
  • 12. Open Source pour le Cloud - OSIS - Paris - Juin 2019 LKVS illustrated 8 Client application instances C1 C3C2 Key-Value Store h2 v1 handlers for k1 h3
  • 13. Open Source pour le Cloud - OSIS - Paris - Juin 2019 LKVS illustrated 8 Client application instances C1 C3C2 Key-Value Store h2 v1 handlers for k1 h3 v1’put(k1,v1’)
  • 14. Open Source pour le Cloud - OSIS - Paris - Juin 2019 LKVS illustrated 8 Client application instances C1 C3C2 Key-Value Store h2 v1 handlers for k1 h3 v1’ v1’ false true notification of listener C3 success
  • 15. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Object management in CRESON (1) • Client-side proxy + a session handler • Object handler owns actual object • Method calls and object creation/ closing sent as operations through regular put() calls for key k • Intercepted by handlers registered for k • Client calling method receives its result in its listener notification • Lifetime of object for key k • First use: on server, map from serialized object in DB, or instantiate new object • Object closed by last client for key k: on server, object serialized and stored in DB 9 Client application instance O1 C1 Listenable Key-Value Store kO1 Object handler Session handler Proxy method calls put(kO1,op) listener for kO1 O1
  • 16. Open Source pour le Cloud - OSIS - Paris - Juin 2019 State Machine Replication • Objects replicated at the LKVS side • (dormant) Copies of serialized objects • In-memory instances of currently-used shared objects • Fault-tolerance: survive up to f faults with f+1 servers • In-memory copies must remain consistent under concurrent accesses ➡ Operation-based (state machine) replication • Copies receive the exact same stream of operations ⚠ Constraint: objects must be deterministic ✓ Applying operations in the same order to deterministic objects ensures strong consistency (linearizability) 10
  • 17. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Putting everything together 11 Client application instances O1 C1 C3C2 Listenable Key-Value Store trigger kO1 call Object handlers Session handlers Proxies 1 3 4 5 listener for kO2 2 method calls put(kO1,op) notify kO2 ServersClients linearize & replicate op listeners for kO1 O1 O2 O1
  • 18. Open Source pour le Cloud - OSIS - Paris - Juin 2019 CRESON guarantees ✓ Strong consistency: linearizability ✓ Composition • A shared object can call other objects • Maintains linearizability ✓ Persistence ✓ Disjoint-access parallelism • Accesses to distinct objects use distinct LKVS components ✓ Elasticity • Can add/remove storage nodes without restarting the service 12
  • 19. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Use case and Interface • StackSync: open-source equivalent of Dropbox • Synchronization of user file system with cloud-stored file system • Sharing of folders and files between users spaces • Trace collected from Ubuntu1 personal cloud service • Data stored in immutable object store (OpenStack Swift) • Metadata requires strong consistency 13
  • 20. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Original metadata management in StackSync • PostgreSQL relational database • Stores the association between users, files, authorized devices, etc. • Accessed from the application using SQL directly (manual object-relational mapping) • Storage and querying handled by a Facade object • Performance: use of stored procedures implementing app. logic at server side • Scalability: sharded (partitioned) database using PL/Proxy ☹ No support for elastic scaling ☹ No consistency (ACID) guarantees across shards 14 Chunk ItemVersion Item WorkspaceUser Device Facade ⭑ ⭑⭑ ⭑ ⭑ ⭑ ⭑ ⭑⭑⭑
  • 21. Open Source pour le Cloud - OSIS - Paris - Juin 2019 StackSync metadata management with CRESON • Logic for metadata management re- implemented in plain Java, as methods in StackSync’s classes • Determining which objects to store independently in CRESON depends on update visibility requirements • Embedding Item, etc. to Workspace= atomic operations within one Workspace object • Portage was less than a week of effort • Code is simpler and more coherent than with SQL 15 to modify the application metadata. We depict the class schema of the SyncService in Figure 3. At some SyncService instance, a thread interacts with CRESON using a Facade object. Classes including the Facade and below differ from one persistence technology to another. Their portage is where we spent most of our effort. A Workspace object models a synced folder. It is composed of files and directories (Item in Figure 3). For each Item, the SyncService stores versioning information as ItemVersion objects. Similarly to other personal cloud storage services, StackSync operates at the sub-file level by splitting files into chunks; this greatly reduces the cost of data synchronization. A Chunk is immutable and identified with a fingerprint. It may appear in one or more files. Relational Approach. To scale up the original relational implementation, we followed conventional wisdom and sharded metadata across multiple servers. The key enabler of this pro- cess is PL/Proxy, a stored procedure language for PostgreSQL. PL/Proxy allows dispatching requests to several PostgreSQL servers. It was originally developed by Skype to scale up their services to millions of users. Following this approach, we horizontally partition metadata by hashing user identifiers with PostgreSQL built-in function. As a result, all the metadata of a user is slotted into the same shard. Any request for committing changes made by the same user is redirected to the appropriate shard. In detail, we accomplish this with the following PL/Proxy procedure (we omit some parameters for readability): 1 @Entity(key = "id") 2 public class Workspace { 3 4 public UUID id; 5 private Item root; 6 private List<User> users; 7 8 /* ... */ 9 10 public boolean isAllowed(User user) { 11 return users.contains(user.getId()); 12 } 13 } 1 @Entity(key = "id") 2 public class Facade { 3 4 @Entity(key = "deviceIndex") 5 public static Map<UUID,Device> devices; 6 7 @Entity(key = "workspaceIndex") 8 public static Map<UUID,Workspace> workspaces; 9 10 @Entity(key = "userIndex") 11 public static Map<UUID,User> users; 12 13 public UUID id; 14 15 /* ... */ 16 17 public boolean add(Device device) { 18 return deviceMap.putIfAbsent( 19 device.getId(),device) == null; 20 } 21 } Fig. 4. Workspace and Facade classes Chunk ItemVersion Item WorkspaceUser Device Facade ⭑ ⭑⭑ ⭑ ⭑ ⭑ ⭑ ⭑⭑⭑ independent objects stored in CRESON embedded objects
  • 22. Open Source pour le Cloud - OSIS - Paris - Juin 2019 CRESON interface • Integration in Java (using AspectJ) • Similar to the Java Persistence API (Hibernate, etc.) … but using remote calls • @Entity(key = “id”) annotation • Object o of this class stored in CRESON under key (classname+”:”+o.id) • Store static field in CRESON under key (classname+”:”+id) • Only applies to static fields! • No further action required from developer • Shared maps (e.g. deviceIndex) are transparently stored as collections in LKVS 16 to modify the application metadata. We depict the class schema of the SyncService in Figure 3. At some SyncService instance, a thread interacts with CRESON using a Facade object. Classes including the Facade and below differ from one persistence technology to another. Their portage is where we spent most of our effort. A Workspace object models a synced folder. It is composed of files and directories (Item in Figure 3). For each Item, the SyncService stores versioning information as ItemVersion objects. Similarly to other personal cloud storage services, StackSync operates at the sub-file level by splitting files into chunks; this greatly reduces the cost of data synchronization. A Chunk is immutable and identified with a fingerprint. It may appear in one or more files. Relational Approach. To scale up the original relational implementation, we followed conventional wisdom and sharded metadata across multiple servers. The key enabler of this pro- cess is PL/Proxy, a stored procedure language for PostgreSQL. PL/Proxy allows dispatching requests to several PostgreSQL servers. It was originally developed by Skype to scale up their services to millions of users. Following this approach, we horizontally partition metadata by hashing user identifiers with PostgreSQL built-in function. As a result, all the metadata of a user is slotted into the same shard. Any request for committing changes made by the same user is redirected to the appropriate shard. In detail, we accomplish this with the following PL/Proxy procedure (we omit some parameters for readability): 1 @Entity(key = "id") 2 public class Workspace { 3 4 public UUID id; 5 private Item root; 6 private List<User> users; 7 8 /* ... */ 9 10 public boolean isAllowed(User user) { 11 return users.contains(user.getId()); 12 } 13 } 1 @Entity(key = "id") 2 public class Facade { 3 4 @Entity(key = "deviceIndex") 5 public static Map<UUID,Device> devices; 6 7 @Entity(key = "workspaceIndex") 8 public static Map<UUID,Workspace> workspaces; 9 10 @Entity(key = "userIndex") 11 public static Map<UUID,User> users; 12 13 public UUID id; 14 15 /* ... */ 16 17 public boolean add(Device device) { 18 return deviceMap.putIfAbsent( 19 device.getId(),device) == null; 20 } 21 } Fig. 4. Workspace and Facade classes
  • 23. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Implementation • Built over the open source Infinispan NoSQL • Basis for Red Hat JBosss Data Grid • LKVS = 13,500 SLOC ; CRESON = 4,000 SLOC • Along with other developments from the LEADS EU project, CRESON was integrated to the ‘experimental’ features in Infinispan • Red Hat developed and integrated the LKVS • Also used for data curation and processing • Under its previous name ‘Atomic Object Factory’ 17
  • 24. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Evaluation • Experiments • Micro-benchmarks with single and multiple objects ✓ StackSync: throughput and latency using a real trace • Using a real trace from the “Ubuntu One” drive ✓ StackSync: replication and elasticity • Using trace collected from Ubuntu1 personal Cloud • Cluster of 8-core/8GB Xeon 2.5 GHz, switched 1 Gbps • 2 to 6 Infinispan servers (default = 3) • Replication factor is 2 by default 18
  • 25. Open Source pour le Cloud - OSIS - Paris - Juin 2019 StackSync performance: throughput • 24 StackSync clients, each with 10 threads • Dispatch commands from trace using RabbitMQ • PostgreSQL using 2 additional PL/Proxy nodes (out of 6) 19 0 2000 4000 6000 8000 10000 2 4 6 Throughput(operations/s) CRESON nodes 0 2000 4000 6000 8000 10000 2 4 Throughput(operations/s) PostgreSQL shards (higher is better)(higher is better) + 2 additional PL/Proxy nodes median performance using 6 servers: +50%
  • 26. Open Source pour le Cloud - OSIS - Paris - Juin 2019 StackSync performance: latency • About 300 doCommit() operations per second • Most common method: adding new files to a personal space 20 0 20 40 60 80 100 5 10 15 20 25 30 35 40 CRESON PostgreSQL CDF(%) Latency (ms) (leftmost is better)
  • 27. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Elasticity and replication • Single StackSync client with synthetic workload 21 0 1000 2000 3000 4000 2 3 4 5 6 Throughput(operations/s) CRESON nodes no replication replication factor of 2 (higher is better) adding server with no restart (elasticity) Cost of replication
  • 28. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Academia contributing to open source • Open source was beneficial in LEADS • Implement ideas in a state-of-the-art KVS • Got feedback on code and integrated staging • Much easier IP management (often complicated in EU projects) • But is it enough? • Non-maintained code gets deprecated • EU (and generally, academic) project lifecycles does not match requirements for high impact in open source • Lack of funding and competencies for long-term support • Funding agencies should act? • Movement towards reproducible research artifacts • Benefits from and to open source 22
  • 29. Open Source pour le Cloud - OSIS - Paris - Juin 2019 Conclusion • Client-side object-NoSQL mapping: costly and inefficient for strongly-consistent shared objects • CRESON: a solution to host callable shared objects directly on a NoSQL DB • Leverage the support from a novel LKVS abstraction implemented in the Infinispan KVS • Simple programming model and better performance and elasticity than a state-of-the-art PostgreSQL solution 23
  • 30. Des objets dans le cloud, et qui y restent : L’expérience du développement de CRESON, support pour des objets distants fortement cohérents dans Infinispan 🤔?? questions?