Mercurial > hg > Database > Alice
annotate src/main/java/alice/datasegment/CompressedLocalDataSegmentManager.java @ 574:ea21af9a4762 dispose
delete serializeFlag, fix MessagePack pack&unpack
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Dec 2015 11:49:07 +0900 |
parents | 8c17a9e66cc7 |
children |
rev | line source |
---|---|
529 | 1 package alice.datasegment; |
2 | |
3 import java.io.IOException; | |
4 import java.util.concurrent.ConcurrentHashMap; | |
5 import java.util.concurrent.LinkedBlockingQueue; | |
6 import java.util.concurrent.ThreadPoolExecutor; | |
7 import java.util.concurrent.TimeUnit; | |
8 | |
9 import org.apache.log4j.Logger; | |
10 | |
11 import alice.codesegment.CodeSegment; | |
12 | |
13 public class CompressedLocalDataSegmentManager extends DataSegmentManager { | |
14 | |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
15 LocalDataSegmentManager manager; |
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
16 private String reverseKey = "compressedlocal"; |
529 | 17 |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
18 public CompressedLocalDataSegmentManager(LocalDataSegmentManager manager) { |
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
19 this.manager = manager; |
529 | 20 } |
21 | |
22 public void setReverseKey(String s){ | |
23 reverseKey = s; | |
24 } | |
25 | |
26 public void submitCommand(DataSegmentKey key, Command cmd) { | |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
27 manager.submitCommand(key, cmd); |
529 | 28 } |
29 | |
30 public DataSegmentKey getDataSegmentKey(String key) { | |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
31 return manager.getDataSegmentKey(key); |
529 | 32 } |
33 | |
34 public void removeDataSegmentKey(String key) { | |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
35 manager.removeDataSegmentKey(key); |
529 | 36 } |
37 | |
38 @Override | |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
39 public void put(String key, ReceiveData rData, boolean quickFlag) { |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
40 if (!rData.compressed()){ |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
41 try { |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
42 rData.zip(); |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
43 } catch (IOException e) { |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
44 e.printStackTrace(); |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
45 } |
529 | 46 } |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
47 |
529 | 48 Command cmd = new Command(CommandType.PUT, null, key, rData, 0, 0, null, null, reverseKey); |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
49 cmd.setCompressFlag(true); |
529 | 50 |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
51 manager.put1(key, cmd); |
529 | 52 } |
53 | |
54 /** | |
55 * Enqueue update command to the queue of each DataSegment key | |
56 */ | |
57 | |
58 @Override | |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
59 public void update(String key, ReceiveData rData, boolean quickFlag) { |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
60 |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
61 if (!rData.compressed()){ |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
62 try { |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
63 rData.zip(); |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
64 } catch (IOException e) { |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
65 e.printStackTrace(); |
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
66 } |
529 | 67 } |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
68 |
529 | 69 Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, 0, null, null, reverseKey); |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
70 cmd.setCompressFlag(true); |
529 | 71 |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
72 manager.put1(key, cmd); |
529 | 73 } |
74 | |
75 @Override | |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
76 public void take(Receiver receiver, CodeSegment cs, boolean quickFlag) { |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
77 Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null); |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
78 cmd.setCompressFlag(true); |
530 | 79 |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
80 manager.take1(receiver, cmd); |
529 | 81 } |
82 | |
83 @Override | |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
84 public void peek(Receiver receiver, CodeSegment cs, boolean quickFlag) { |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
85 Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null); |
533
b3c9554ccb1b
change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
530
diff
changeset
|
86 cmd.setCompressFlag(true); |
530 | 87 |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
88 manager.take1(receiver, cmd); |
529 | 89 } |
90 | |
91 @Override | |
92 public void remove(String key) { | |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
93 manager.remove(key); |
529 | 94 } |
95 | |
96 @Override public void finish() { | |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
97 manager.finish(); |
529 | 98 } |
99 | |
100 @Override | |
101 public void close() { | |
102 | |
103 } | |
104 | |
105 public void recommand(Receiver receiver, CodeSegment cs) { | |
538
8c17a9e66cc7
Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
533
diff
changeset
|
106 manager.recommand(receiver, cs); |
529 | 107 } |
108 | |
109 @Override | |
110 public void ping(String returnKey) { | |
111 | |
112 } | |
113 | |
114 @Override | |
115 public void response(String returnKey) { | |
116 | |
117 } | |
118 | |
119 @Override | |
120 public void shutdown() { | |
121 | |
122 } | |
123 | |
124 @Override | |
125 public void setSendError(boolean b) { | |
126 | |
127 } | |
128 } |