Академический Документы
Профессиональный Документы
Культура Документы
In Memory Data Grid in Action with Oracle Coherence for Paris NoSQL User Group
Cyrille Le Clerc
Speaker
Open Source
(Apache CXF, ...)
3
Wednesday, May 25, 2011
4
Wednesday, May 25, 2011
5
Wednesday, May 25, 2011
eXtreme Scale
Very fast
In memory (persistence coming), business logic inside the data
9
Wednesday, May 25, 2011
10
Wednesday, May 25, 2011
311
121 264
637 12
warehouse stocks
11
Wednesday, May 25, 2011
12
Wednesday, May 25, 2011
http://ibm.com/
IBM z11
13
Wednesday, May 25, 2011
http://ibm.com/
Mainframe
http://1userverrack.net/
Cheap Servers !
14
Wednesday, May 25, 2011
Partition Data
Partition gamma
Small servers
Partition beta
Duplicate Data
sync synchronization
16
Wednesday, May 25, 2011
17
Wednesday, May 25, 2011
This is not traditional Java EE coding style ! Can apply very complex business logic inside the
data
Stored Procedures Style
19
Wednesday, May 25, 2011
{ "train-id": "tgv-3071-20110512", "time" : 2011/05/12 12:15, "departure" : "Paris", "arrival" : "Marseille", "seats" : 3, }
Search Trains
train-id is indexed
Search Trains
Partition beta
Partition alpha
20
21
Wednesday, May 25, 2011
22
#NONE# }
23
Search Trains
{ "Paris -> Marseille : 12:15", "Paris -> Lyon -> Marseille : 12:40", "Paris -> Marseille : 13:15" }
Partition beta
24
25
Wednesday, May 25, 2011
26
Wednesday, May 25, 2011
Consistency
http://lpd.epfl.ch/sgilbert/pubs/BrewersConjecture-SigAct.pdf
27
Wednesday, May 25, 2011
Data Grids
Consistency
http://lpd.epfl.ch/sgilbert/pubs/BrewersConjecture-SigAct.pdf
28
Wednesday, May 25, 2011
West Coast
}
East Coast
Warehouse stocks
30
Wednesday, May 25, 2011
West Coast
}
propagation delay !
East Coast
31
Wednesday, May 25, 2011
West Coast
}
East Coast
32
Wednesday, May 25, 2011
West Coast
}
East Coast
Network partitioning
33
Wednesday, May 25, 2011
Data Modeling
34
Wednesday, May 25, 2011
Data Modeling
Denormalized
Due to dominant questions and CTS
35
Wednesday, May 25, 2011
Data Modeling
Booking reduction
Passenger name
36
Wednesday, May 25, 2011
Data Modeling
e Root
ntity
Booking reduction
Passenger name
od
37
Wednesday, May 25, 2011
Data Modeling
Remove unused data
Booking reduction
Passenger name
Partitioned Replicated
38
Wednesday, May 25, 2011
Data Modeling
TrainStop date
Partitioned Replicated
40
Wednesday, May 25, 2011
Account number
Account number
Account number
Account number
Split MoneyTransfer
42
Wednesday, May 25, 2011
Account number
Account number
Split MoneyTransfer
43
Wednesday, May 25, 2011
Account number
Grid Internals
45
Wednesday, May 25, 2011
Data Serialization
46
Wednesday, May 25, 2011
Data Storage
47
Wednesday, May 25, 2011
Communication Protocols
48
Wednesday, May 25, 2011
Topology
49
Wednesday, May 25, 2011
APIs
51
Wednesday, May 25, 2011
TrainStop date
52
Train
Map API
54
Wednesday, May 25, 2011
/** Find by key */ Train findByCode(String code) { return (Train) entityManager.find(Train.class, code); }
/** Query Language */ Train findByTrainName(String name) { Query q = entityManager.createQuery("select t from Train t where t.name=:name"); q.setParameter("name", name); return (Train) q.getSingleResult(); }
Creating Indexes
56
Wednesday, May 25, 2011
class Train { String name; Collection<String> getTrainStationsCodes() { return Collections2.transform(trainStops, ...); } } { ...
NamedCache trainCache = CacheFactory.getCache("train-cache"); trainCache.addIndex(new ReflectionExtractor("getName"), false, null); trainCache.addIndex(new ReflectionExtractor("getTrainStationsCodes"), false, null);
57
Wednesday, May 25, 2011
More APIs
Another Java EE versus Spring battle ? JSR 347 Data Grids vs. Spring Data
Serialization / Object to Tuple Mapping API ? Unified API ontop of NoSQL stores ?
59
Wednesday, May 25, 2011
60
Wednesday, May 25, 2011
61
Wednesday, May 25, 2011
62
Wednesday, May 25, 2011
backend DB
TrainStop date
backend DB
67
68
Wednesday, May 25, 2011
Transactions
69
Wednesday, May 25, 2011
We didnt have the time to talk about transaction. Another session is planned at Paris No SQL User Group for this.
70
Wednesday, May 25, 2011
Lets go live !
71
Wednesday, May 25, 2011
Standard packaging?
Do It Yourself (layout, scripts, etc)
Limited Management
Do It Yourself (stop/start, detecting data loss, etc)
JVM pandemia
Dozens of JVM to manage !
72
Wednesday, May 25, 2011
73
Wednesday, May 25, 2011
74
Wednesday, May 25, 2011
Quite expensive
75
Wednesday, May 25, 2011
Questions / Answers
?
76
Wednesday, May 25, 2011