Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
DE LA RECHERCHE À L’INDUSTRIE
Commissariat à l’énergie atomique et aux énergies alternatives – www.cea.fr
RobinHood-v4 progress report
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 2/53
What is RobinHood?
RobinHood
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 3/53
RobinHood mirrors a filesystem’s metadata,and makes it queryable
RobinHood
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 4/53
● Mirror– Read Replica– Snapshot– Disaster Recovery
● Query– Expressiveness– Performance– Efficiency
RobinHood
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 5/53
Architecture
Backend
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 6/53
Architecture
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 7/53
Architecture
?
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 8/53
Architecture
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 9/53
Architecture
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 10/53
Architecture
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 11/53
Architecture
* *
**
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 12/53
Architecture
C-API
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 13/53
Architecture
C-API
Backend
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 14/53
Architecture
C-API
Backend
FSEvents
FSEntries
IN OUT
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 15/53
Architecture
C-API
Backend
16/5322/09/19 Commissariat à l’énergie atomique et aux énergies alternatives
Applications
17/5322/09/19 Commissariat à l’énergie atomique et aux énergies alternatives
rbh-sync
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 18/53
rbh-sync
rbh-sync synchronizes two RobinHood backends
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 19/53
rbh-sync: usage
rbh-sync SRC DEST
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 20/53
rbh-sync: example
rbh-sync rbh:posix:/mnt/scratch rbh:mongo:scratch
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 21/53
rbh-sync: URIs
● Uniform Resource Identifier● RFC 3986:
scheme:[//[userinfo@]host[:port]]path
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 22/53
rbh-sync: URIs
https://example.com/test
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 23/53
rbh-sync: URIs
https://example.com/test
scheme hostname path
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 24/53
rbh-sync: URIs
rbh:mongo:scratch
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 25/53
rbh-sync: URIs
rbh:mongo:scratch
scheme path
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 26/53
rbh-sync: URIs
rbh:mongo:scratch
scheme backend-type fsname
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 27/53
rbh-sync: URIs
rbh:mongo:scratch#/path/to/dir
scheme backend-type fsname
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 28/53
rbh-sync: URIs
rbh:mongo:scratch#/path/to/dir
scheme backend-type fsname fragment
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 29/53
rbh-sync: URIs
rbh:mongo:scratch#path/to/dir
rbh:mongo:scratch
path
to
dir
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 30/53
rbh-sync: another example
rbh-sync rbh:posix:/mnt/scratch#dir-0 \rbh:mongo:scratch
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 31/53
rbh-sync: another example
dir-0
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 32/53
rbh-sync: parallelism
cd /mnt/scratch
for dir in *; do
rbh-sync posix:/mnt/scratch#”$dir” mongo:scratch &
done
wait
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 33/53
rbh-sync: another example
process-0 process-1 process-2
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 34/53
rbh-sync: performance
● 1 node:– 16 cores
● Lustre on RAM:– 1 MDT– 8 OSTs– Cold cache
● Filetree structure:– 4 levels of dirs– Branching factor of 16– 5th level: ~1M files of 1KiB
each 0
50
100
150
200
250
300
350
303.09
120.63107.76
Scan performance
v3v4find -ls
Tim
e in
sec
ond
s
35/5322/09/19 Commissariat à l’énergie atomique et aux énergies alternatives
rbh-find
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 36/53
rbh-find
A clone of (gnu-)find that queries RobinHood
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 37/53
rbh-find: usage
rbh-find [URI …] [[predicates] [actions] ...]
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 38/53
rbh-find: examples
rbh-find rbh:mongo:scratch -name ‘a*’ -print0
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 39/53
rbh-find: performance
● 1 node:– 16 cores
● Lustre on RAM:– 1 MDT– 8 OSTs– Cold cache
● Filetree structure:– 4 levels of dirs– Branching factor of 16– 5th level: ~1M files of 1KiB
each 0
2000
4000
6000
8000
10000
12000
10302.74
10.55 131.97
Find performance
v3v4find
Tim
e in
sec
ond
s
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 40/53
rbh-find: performance
● 1 node:– 16 cores
● Lustre on RAM:– 1 MDT– 8 OSTs– Cold cache
● Filetree structure:– 4 levels of dirs– Branching factor of 16– 5th level: ~1M files of 1KiB
each 0
50
100
150
200
250
197.85
10.55
131.97
Find performance
v3-patchedv4find
Tim
e in
sec
ond
s
41/5322/09/19 Commissariat à l’énergie atomique et aux énergies alternatives
rbh-fsevent
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 42/53
rbh-fsevent
Apply filesystem events on a RobinHood backend
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 43/53
rbh-fsevent: usage
TODO
44/5322/09/19 Commissariat à l’énergie atomique et aux énergies alternatives
Changelog processing
45/5322/09/19 Commissariat à l’énergie atomique et aux énergies alternatives
Before
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 46/53
Before
MDT Lustre Client
RobinHood Client MySQL DB
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 47/53
Before: overload
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 48/53
Before: imbalance
49/5322/09/19 Commissariat à l’énergie atomique et aux énergies alternatives
After
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 50/53
After: with kafka
MDT
Lustre Client
Lustre Clients that run stat()
RobinHood Backend
Members of a Kafka cluster
RobinHood Clients
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 51/53
After: with kafka
22/09/19Commissariat à l’énergie atomique et aux énergies alternatives 52/53
After: with kafka
Commissariat à l’énergie atomique et aux énergies alternatives – www.cea.fr
Thank you