annotate src/treecms/tree/cassandra/v1/CassandraForest.java @ 6:12604eb6b615

added javadoc
author shoshi
date Mon, 14 Mar 2011 23:24:38 +0900
parents f5ed85be5640
children fc19e38b669b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
1 package treecms.tree.cassandra.v1;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
2
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
3 import java.util.HashMap;
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
4
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
5 import java.util.Iterator;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
6 import java.util.LinkedList;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
7 import java.util.List;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
8 import java.util.Map;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
9 import java.util.Random;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
10 import java.util.StringTokenizer;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
11 import java.util.UUID;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
12 import java.util.concurrent.Callable;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
13 import java.util.concurrent.ExecutorService;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
14 import java.util.concurrent.Executors;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
15 import java.util.concurrent.Future;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
16 import java.util.concurrent.ThreadFactory;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
17
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
18 import org.apache.cassandra.thrift.Cassandra;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
19 import org.apache.cassandra.thrift.ColumnOrSuperColumn;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
20 import org.apache.cassandra.thrift.ColumnParent;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
21 import org.apache.cassandra.thrift.ColumnPath;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
22 import org.apache.cassandra.thrift.ConsistencyLevel;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
23 import org.apache.cassandra.thrift.Mutation;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
24 import org.apache.cassandra.thrift.NotFoundException;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
25 import org.apache.cassandra.thrift.SlicePredicate;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
26 import org.apache.cassandra.thrift.SliceRange;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
27 import org.apache.thrift.protocol.TBinaryProtocol;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
28 import org.apache.thrift.protocol.TProtocol;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
29 import org.apache.thrift.transport.TSocket;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
30 import org.apache.thrift.transport.TTransport;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
31 import org.apache.thrift.transport.TTransportException;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
32
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
33 import treecms.api.Forest;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
34 import treecms.api.Node;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
35 import treecms.api.NodeData;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
36 import treecms.api.NodeID;
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
37 import treecms.tree.id.AbstractRandomNodeID;
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
38
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
39 /**
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
40 * implementation of TreeCMS with Cassandra backend.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
41 *
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
42 * TreeCMSKS.NodeTable (table of all nodes)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
43 *
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
44 * +---------------------------------------------+
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
45 * + Key | Col1 | Col2 | Col3 | ... |
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
46 * +---------------------------------------------+
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
47 * + NodeID | Children | _attr1 | _attr2 | ... |
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
48 * +---------------------------------------------+
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
49 *
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
50 * TreeCMSKS.TipTable (table of tip)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
51 *
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
52 * +--------------------+
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
53 * + Key | Col1 |
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
54 * +--------------------+
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
55 * + NodeID | version |
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
56 * +--------------------+
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
57 *
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
58 * @author shoshi
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
59 */
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
60
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
61 public class CassandraForest implements Forest
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
62 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
63 ExecutorService m_service;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
64
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
65 //column families.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
66 static final String NODETABLE = "NodeTable";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
67 static final String TIPTABLE = "TipTable";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
68
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
69 //reserved word.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
70 static final String NODE = "Node";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
71 static final String CHILDREN = "Children";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
72 static final char PREFIX = '_';
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
73
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
74 //id table reserved
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
75 static final String TIPID = "TipID";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
76
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
77 public CassandraForest(String _host,int _port,String _ks,int _threads)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
78 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
79 m_service = Executors.newFixedThreadPool(_threads,new RequestSenderFactory(_host,_port,_ks));
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
80 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
81
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
82 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
83 public Node get(NodeID _id)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
84 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
85
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
86 return new CassandraNode(this,_id);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
87 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
88
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
89 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
90 public Node create()
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
91 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
92 return createNode(null,null); //create new node
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
93 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
94
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
95 public NodeData getNodeData(NodeID _id)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
96 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
97 final NodeID id = _id;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
98
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
99 //create future task.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
100 Callable<List<ColumnOrSuperColumn>> task = new Callable<List<ColumnOrSuperColumn>>(){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
101 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
102 public List<ColumnOrSuperColumn> call() throws Exception
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
103 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
104 RequestSender sender = (RequestSender)Thread.currentThread();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
105 List<ColumnOrSuperColumn> res = sender.get_slice(NODETABLE,id.toString(),ConsistencyLevel.ONE);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
106 return res;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
107 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
108 };
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
109 Future<List<ColumnOrSuperColumn>> future = m_service.submit(task);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
110
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
111 NodeData data = new NodeData();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
112 try{
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
113 List<ColumnOrSuperColumn> slice = future.get();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
114
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
115 //iterate column
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
116 for(ColumnOrSuperColumn column : slice){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
117 String name = new String(column.column.name);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
118
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
119 //if column name matches CHILDREN , deserialize value to child list.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
120 if(name.equals(CHILDREN)){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
121 List<Node> tmp = deserialize(new String(column.column.value));
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
122 data.add(tmp);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
123 }else{
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
124 String key = name.substring(1); //size of prefix
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
125 data.set(key.getBytes(),column.column.value);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
126 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
127 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
128 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
129 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
130 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
131
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
132 return data;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
133 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
134
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
135 public List<CassandraNode> multiCreateNode(List<CassandraNode> _list)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
136 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
137 final Map<String,Map<String,List<Mutation>>> mutationMap = new HashMap<String,Map<String,List<Mutation>>>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
138
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
139 Map<String,List<Mutation>> nodeTable = new HashMap<String,List<Mutation>>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
140 Map<String,List<Mutation>> tipTable = new HashMap<String,List<Mutation>>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
141 for(CassandraNode node : _list){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
142 LinkedList<Mutation> list = new LinkedList<Mutation>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
143 Mutation mut = new Mutation();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
144 ColumnOrSuperColumn column = new ColumnOrSuperColumn();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
145 mut.column_or_supercolumn = column;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
146 column.column.name = CHILDREN.getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
147 column.column.value = serialize(node.getData().list()).getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
148 list.add(mut);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
149
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
150 for(byte[] key : node.getData().keys()){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
151 mut = new Mutation();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
152 column = new ColumnOrSuperColumn();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
153 mut.column_or_supercolumn = column;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
154 column.column.name = key;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
155 column.column.value = node.getData().get(key);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
156
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
157 list.add(mut);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
158 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
159
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
160 nodeTable.put(node.getID().toString(),list);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
161
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
162 mut = new Mutation();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
163 column = new ColumnOrSuperColumn();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
164 column.column.name = TIPID.getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
165 column.column.value = node.getID().getVersion().getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
166 list = new LinkedList<Mutation>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
167 list.add(mut);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
168 tipTable.put(node.getID().getUUID(),list);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
169 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
170 mutationMap.put(NODETABLE,nodeTable);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
171 mutationMap.put(TIPTABLE,tipTable);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
172
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
173 Runnable task = new Runnable(){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
174 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
175 public void run()
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
176 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
177 RequestSender sender = (RequestSender)Thread.currentThread();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
178 sender.batch_mutate(mutationMap,ConsistencyLevel.ONE);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
179 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
180 };
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
181
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
182 m_service.execute(task);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
183
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
184 return _list;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
185 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
186
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
187 /**
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
188 * list serializer.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
189 * ex. list{"hoge","fuga"} -> "hoge,fuga"
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
190 * @param _list
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
191 * @return selialized string
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
192 */
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
193 public String serialize(List<Node> _list)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
194 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
195 String prefix = "";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
196 StringBuffer buf = new StringBuffer();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
197 for(Node child : _list){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
198 buf.append(prefix+child.getID().toString());
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
199 prefix = ",";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
200 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
201
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
202 return buf.toString();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
203 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
204
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
205 /**
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
206 * string deserializer.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
207 * ex. "hoge,fuga" -> list{"hoge","fuga"}
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
208 * @param _selialized
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
209 * @return list
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
210 */
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
211 public LinkedList<Node> deserialize(String _serialized) throws IllegalArgumentException
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
212 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
213 StringTokenizer tokens = new StringTokenizer(_serialized,",");
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
214 LinkedList<Node> res = new LinkedList<Node>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
215
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
216 while(tokens.hasMoreElements()){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
217 String tmp = tokens.nextToken();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
218 StringTokenizer uuidAndVer = new StringTokenizer(tmp,"@");
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
219
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
220 try{
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
221 NodeID id = createID(uuidAndVer.nextToken(),uuidAndVer.nextToken());
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
222 res.add(get(id));
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
223 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
224 throw new IllegalArgumentException("unable to deserialize string ["+_serialized+"]",_e);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
225 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
226 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
227
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
228 return res;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
229 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
230
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
231 public NodeID getTipID(String _uuid)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
232 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
233 final String uuid = _uuid;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
234 Callable<byte[]> task = new Callable<byte[]>(){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
235 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
236 public byte[] call() throws Exception
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
237 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
238 RequestSender sender = (RequestSender)Thread.currentThread();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
239 byte[] value = sender.get(NODETABLE,uuid,TIPID.getBytes(),ConsistencyLevel.ONE);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
240 return value;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
241 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
242 };
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
243
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
244 Future<byte[]> future = m_service.submit(task);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
245
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
246 try {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
247 byte[] value = future.get();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
248 String id = new String(value);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
249 StringTokenizer token = new StringTokenizer(id,"@");
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
250 NodeID nodeID = createID(token.nextToken(),token.nextToken());
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
251 return nodeID;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
252 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
253 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
254 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
255
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
256 return null; //not found.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
257 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
258
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
259 public Node createNode(NodeID _id,NodeData _data)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
260 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
261 final NodeData data = _data;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
262 final NodeID id = (_id != null) ? _id : createID(null,null);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
263
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
264 Callable<Boolean> task = new Callable<Boolean>(){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
265 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
266 public Boolean call() throws Exception
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
267 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
268 RequestSender sender = (RequestSender)Thread.currentThread();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
269
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
270 //mutation map
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
271 HashMap<String,Map<String,List<Mutation>>> map = new HashMap<String,Map<String,List<Mutation>>>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
272
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
273 /*
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
274 * create mutation map for NODETABLE
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
275 */
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
276 if(data != null){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
277 LinkedList<Mutation> list = new LinkedList<Mutation>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
278 HashMap<String,List<Mutation>> info = new HashMap<String,List<Mutation>>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
279 Iterator<Node> itr = data.list().iterator();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
280
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
281 /*
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
282 * create CSV from child list.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
283 */
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
284 StringBuffer buffer = new StringBuffer();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
285 for(String prefix = "";itr.hasNext();prefix = ","){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
286 buffer.append(String.format("%s%s",prefix,itr.next().getID().toString()));
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
287 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
288 Mutation mutChildren = new Mutation();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
289 ColumnOrSuperColumn children = new ColumnOrSuperColumn();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
290 children.column.name = CHILDREN.getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
291 children.column.value = buffer.toString().getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
292 mutChildren.column_or_supercolumn = children;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
293 list.add(mutChildren);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
294
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
295 /*
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
296 *
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
297 */
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
298 for(byte[] key : data.keys()){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
299 Mutation mut = new Mutation();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
300 ColumnOrSuperColumn column = new ColumnOrSuperColumn();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
301 column.column.name = key;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
302 column.column.value = data.get(key);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
303 mut.column_or_supercolumn = column;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
304 list.add(mut);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
305 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
306 info.put(id.toString(),list);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
307
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
308 map.put(NODETABLE,info);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
309 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
310
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
311 /*
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
312 * create mutation map for NODEIDTABLE
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
313 */
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
314 HashMap<String,List<Mutation>> idtable_mutations = new HashMap<String,List<Mutation>>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
315 LinkedList<Mutation> list = new LinkedList<Mutation>();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
316
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
317 Mutation mutTipID = new Mutation();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
318 ColumnOrSuperColumn tipID = new ColumnOrSuperColumn();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
319 tipID.column.name = TIPID.getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
320 tipID.column.value = id.getVersion().getBytes();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
321 mutTipID.column_or_supercolumn = tipID;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
322
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
323 list.add(mutTipID);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
324 idtable_mutations.put(TIPTABLE,list);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
325
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
326 return sender.batch_mutate(map,ConsistencyLevel.ONE);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
327 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
328 };
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
329
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
330 m_service.submit(task);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
331
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
332 return new CassandraNode(this,id);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
333 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
334
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
335 public NodeID createID(String _uuid,String _version)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
336 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
337 return new RandomNodeID(_uuid,_version);
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
338 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
339
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
340 class RandomNodeID extends AbstractRandomNodeID
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
341 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
342 String m_uuid;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
343 String m_version;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
344
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
345 public RandomNodeID(String _uuid,String _version)
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
346 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
347 m_uuid = (_uuid != null) ? _uuid : UUID.randomUUID().toString();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
348 m_version = (_version != null) ? _version : Long.toHexString((new Random()).nextLong());
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
349 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
350
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
351 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
352 public NodeID create()
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
353 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
354 return new RandomNodeID(null,null);
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
355 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
356
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
357 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
358 public NodeID update()
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
359 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
360 return new RandomNodeID(m_uuid,null);
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
361 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
362
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
363 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
364 public String getUUID()
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
365 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
366 return m_uuid;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
367 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
368
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
369 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
370 public String getVersion()
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
371 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
372 return m_version;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
373 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
374 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
375
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
376 private static class RequestSender extends Thread
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
377 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
378 private int m_port;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
379 private String m_host,m_ks;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
380 private Cassandra.Client m_client;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
381
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
382 public RequestSender(Runnable _runnable,String _host,int _port,String _ks) throws TTransportException
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
383 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
384 super(_runnable);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
385 m_port = _port;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
386 m_host = _host;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
387 m_ks = _ks;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
388
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
389 connect();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
390 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
391
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
392 public void connect() throws TTransportException
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
393 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
394 TTransport tr = new TSocket(m_host,m_port);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
395 TProtocol proto = new TBinaryProtocol(tr);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
396 m_client = new Cassandra.Client(proto);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
397
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
398 tr.open();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
399 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
400
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
401 public static RequestSender newInstance(Runnable _runnable,String _host,int _port,String _ks)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
402 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
403 RequestSender sender = null;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
404 try {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
405 sender = new RequestSender(_runnable,_host,_port,_ks);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
406 } catch (TTransportException _e) {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
407 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
408 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
409
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
410 return sender;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
411 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
412
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
413 public byte[] get(String _cf,String _key,byte[] _name,ConsistencyLevel _lv)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
414 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
415 byte[] ret = null;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
416
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
417 ColumnPath path = new ColumnPath();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
418 path.column_family = _cf;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
419 path.column = _name;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
420 try {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
421 ColumnOrSuperColumn cors = m_client.get(m_ks,_key,path,_lv);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
422 ret = cors.column.value;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
423 }catch(NotFoundException _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
424 System.out.println(String.format("column not found [%s][%s][%s]",_cf,_key,new String(_name)));
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
425 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
426 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
427 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
428
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
429 return ret;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
430 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
431
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
432 public boolean insert(String _cf,String _key,byte[] _name,byte[] _value,ConsistencyLevel _lv)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
433 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
434 ColumnPath path = new ColumnPath();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
435 path.column_family = _cf;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
436 path.column = _name;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
437
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
438 try{
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
439 m_client.insert(m_ks,_key,path,_value,System.currentTimeMillis()/1000,_lv);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
440 return true;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
441 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
442 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
443 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
444
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
445 return false;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
446 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
447
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
448 public List<ColumnOrSuperColumn> get_slice(String _cf,String _key,ConsistencyLevel _lv)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
449 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
450 List<ColumnOrSuperColumn> ret = null;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
451 SliceRange sr = new SliceRange(new byte[0],new byte[0],false,-1);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
452 SlicePredicate sp = new SlicePredicate();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
453 sp.slice_range = sr;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
454
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
455 try {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
456 ret = m_client.get_slice(m_ks,_key,new ColumnParent(_cf),sp,_lv);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
457 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
458 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
459 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
460
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
461 return ret;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
462 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
463
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
464 public boolean batch_insert(String _cf,Map<String,List<ColumnOrSuperColumn>> _map,ConsistencyLevel _lv)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
465 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
466 try{
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
467 m_client.batch_insert(m_ks,_cf,_map,_lv);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
468 return true;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
469 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
470 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
471 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
472
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
473 return false;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
474 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
475
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
476 public boolean batch_mutate(Map<String,Map<String,List<Mutation>>> _mutateMap,ConsistencyLevel _lv)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
477 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
478 try {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
479 m_client.batch_mutate(m_ks,_mutateMap,_lv);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
480 return true;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
481 }catch(Exception _e){
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
482 _e.printStackTrace();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
483 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
484
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
485 return false;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
486 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
487
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
488 public String toString()
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
489 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
490 return "[thread="+this.getName()+",host="+m_host+",port="+m_port+",ks="+m_ks+"]";
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
491 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
492 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
493
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
494 private class RequestSenderFactory implements ThreadFactory
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
495 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
496 private int m_port;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
497 private String m_host,m_ks;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
498
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
499 public RequestSenderFactory(String _host,int _port,String _ks)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
500 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
501 m_host = _host;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
502 m_port = _port;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
503 m_ks = _ks;
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
504 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
505
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
506 @Override
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
507 public Thread newThread(Runnable _runnable)
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
508 {
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
509 return RequestSender.newInstance(_runnable,m_host,m_port,m_ks);
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
510 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
511 }
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
512 }