annotate src/main/java/alice/codesegment/OutputDataSegment.java @ 538:8c17a9e66cc7 dispose work-compressedDSM

Compressed LDSM refactoring & flip refactoring
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Fri, 19 Jun 2015 14:06:10 +0900
parents b3c9554ccb1b
children 0832af83583f ef3dc954eb43 3284428f525e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.codesegment;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
386
aae8e515b0d9 add CommandType arguments flip method
sugi
parents: 350
diff changeset
3 import alice.datasegment.CommandType;
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import alice.datasegment.DataSegment;
458
bcf6f4a6fcd0 need set Meta DataSegment PUT API
sugi
parents: 455
diff changeset
5 import alice.datasegment.ReceiveData;
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6 import alice.datasegment.Receiver;
455
b004f62b83e5 refactor (remove quick method from DataSegmentManager and use flag)
sugi
parents: 419
diff changeset
7 import alice.datasegment.SendOption;
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
8
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9 public class OutputDataSegment {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
11 /**
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
12 * for local
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
13 */
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
14
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 521
diff changeset
15 /**
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 521
diff changeset
16 * input→ds変更→outputのときコピーを防ぐ
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 521
diff changeset
17 */
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
18 public void flip(Receiver receiver) {
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
19 if (receiver.isCompressed()){
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
20 DataSegment.getCompressedLocal().put(receiver.key, receiver.getReceiveData(), false);
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
21 } else {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
22 DataSegment.getLocal().put(receiver.key, receiver.getReceiveData(), false);
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
23 }
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
24 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
25
538
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
26 public void flip(String managerKey, String key, Receiver receiver){
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
27 if (receiver.isCompressed()){
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
28 DataSegment.get("compressed" + managerKey).put(key, receiver.getReceiveData(), false);
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
29 } else {
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
30 DataSegment.get(managerKey).put(key, receiver.getReceiveData(), false);
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
31 }
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
32
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
33 }
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
34
8c17a9e66cc7 Compressed LDSM refactoring & flip refactoring
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 533
diff changeset
35 public void flip(Receiver receiver, CommandType type) {
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
36 switch (type) {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
37 case PUT:
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
38 if (receiver.isCompressed()){
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
39 DataSegment.getCompressedLocal().put(receiver.key, receiver.getReceiveData(), false);//localなら全部false。
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
40 } else {
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
41 DataSegment.getLocal().put(receiver.key, receiver.getReceiveData(), false);
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
42 }
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
43 break;
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
44 case UPDATE:
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
45 if (receiver.isCompressed()){
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
46 DataSegment.getCompressedLocal().update(receiver.key, receiver.getReceiveData(), false);
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
47 } else {
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
48 DataSegment.getLocal().update(receiver.key, receiver.getReceiveData(), false);
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
49 }
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
50
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
51 break;
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
52 default:
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
53 break;
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
54 }
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
55 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
56
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
57 public void put(String key, ReceiveData rData) {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
58 DataSegment.getLocal().put(key, rData, false);
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
59 }
467
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
60
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
61 public void put(String key, Object val) {
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
62 ReceiveData rData = new ReceiveData(val);
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
63 DataSegment.getLocal().put(key, rData, false);
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
64 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
65
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
66 public void update(String key, Object val) {
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
67 ReceiveData rData = new ReceiveData(val);
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
68 DataSegment.getLocal().update(key, rData, false);
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
69 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
70
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
71 /**
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
72 * for remote
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
73 */
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
74 public void put(String managerKey, String key, ReceiveData rData) {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
75 DataSegment.get(managerKey).put(key, rData, false);
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
76 }
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
77
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
78 public void put(String managerKey, String key, Object val) {//追加
526
928907206d21 remove CompressedRDSM & CompressedLDSM class
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 525
diff changeset
79 ReceiveData rData = new ReceiveData(val);
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
80 DataSegment.get(managerKey).put(key, rData, false);
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
81 }
467
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
82
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
83 public void quickPut(String managerKey, String key, ReceiveData rData) {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
84 DataSegment.get(managerKey).put(key, rData, true);
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
85 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
86
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
87 public void quickPut(String managerKey, String key, Object val) {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
88 ReceiveData rData = new ReceiveData(val);
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
89 DataSegment.get(managerKey).put(key, rData, true);
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
90 }
467
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
91
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
92 public void update(String managerKey, String key, ReceiveData rData) {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
93 DataSegment.get(managerKey).update(key, rData, false);
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
94 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
95
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
96 public void update(String managerKey, String key, Object val) {
527
bfec2c3ff1b8 change unzip
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 526
diff changeset
97 ReceiveData rData = new ReceiveData(val);
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
98 DataSegment.get(managerKey).update(key, rData, false);
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
99 }
467
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
100
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
101 public void quickUpdate(String managerKey, String key, ReceiveData rData) {
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
102 DataSegment.get(managerKey).update(key, rData, true);
459
4419a2415661 can use compress option
sugi
parents: 458
diff changeset
103 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
104
533
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
105 public void quickUpdate(String managerKey, String key, Object val, boolean cFlag) {
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
106 ReceiveData rData = new ReceiveData(val);
b3c9554ccb1b change compressed API to set data specified DSM name
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 530
diff changeset
107 DataSegment.get(managerKey).update(key, rData, true);
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
108 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
109
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
110 /**
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
111 * kill the Alice process after send other messages.
467
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
112 *
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
113 * @param managerKey
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
114 */
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
115
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
116 public void finish(String managerKey) {
471
be0b61986ff7 checking having DataSegmentManger before get DataSegmentManager
sugi
parents: 467
diff changeset
117 if (DataSegment.contains(managerKey))
be0b61986ff7 checking having DataSegmentManger before get DataSegmentManager
sugi
parents: 467
diff changeset
118 DataSegment.get(managerKey).finish();
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
119 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
120
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
121 /**
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
122 * close socket for RemoteDataSegment after send other messages.
467
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
123 *
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
124 * @param managerKey
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
125 */
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
126
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
127 public void close(String managerKey) {
471
be0b61986ff7 checking having DataSegmentManger before get DataSegmentManager
sugi
parents: 467
diff changeset
128 if (DataSegment.contains(managerKey))
be0b61986ff7 checking having DataSegmentManger before get DataSegmentManager
sugi
parents: 467
diff changeset
129 DataSegment.get(managerKey).close();
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
130 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
131
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
132 /**
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
133 * "key" is not remote DataSegment's key.
467
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
134 * "Ping Response" return in this "key"
6e304a7a60e7 remove white space
sugi
parents: 459
diff changeset
135 *
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
136 * @param managerKey
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 521
diff changeset
137 * @param returnKey
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
138 */
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
139 public void ping(String managerKey, String returnKey) {
471
be0b61986ff7 checking having DataSegmentManger before get DataSegmentManager
sugi
parents: 467
diff changeset
140 if (DataSegment.contains(managerKey))
be0b61986ff7 checking having DataSegmentManger before get DataSegmentManager
sugi
parents: 467
diff changeset
141 DataSegment.get(managerKey).ping(returnKey);
419
aefbe41fcf12 change tab to space
sugi
parents: 386
diff changeset
142 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
143
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
144 }