1 package org.apache.helix.controller.stages;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.helix.HelixDataAccessor;
23 import org.apache.helix.HelixManager;
24 import org.apache.helix.controller.pipeline.AbstractBaseStage;
25 import org.apache.helix.controller.pipeline.StageException;
26 import org.apache.log4j.Logger;
27
28
29 public class ReadHealthDataStage extends AbstractBaseStage
30 {
31 private static final Logger LOG = Logger.getLogger(ReadHealthDataStage.class.getName());
32 HealthDataCache _cache;
33
34 public ReadHealthDataStage()
35 {
36 _cache = new HealthDataCache();
37 }
38
39 @Override
40 public void process(ClusterEvent event) throws Exception
41 {
42 long startTime = System.currentTimeMillis();
43
44 HelixManager manager = event.getAttribute("helixmanager");
45 if (manager == null)
46 {
47 throw new StageException("HelixManager attribute value is null");
48 }
49
50 HelixDataAccessor accessor = manager.getHelixDataAccessor();
51 _cache.refresh(accessor);
52
53 event.addAttribute("HealthDataCache", _cache);
54
55 long processLatency = System.currentTimeMillis() - startTime;
56 addLatencyToMonitor(event, processLatency);
57 }
58 }
59