Mercurial > hg > Members > shoshi > TreeCMSv2
annotate src/treecms/tree/cassandra/v1/CassandraForest.java @ 16:bb9760760744
commit
author | shoshi |
---|---|
date | Sat, 21 May 2011 04:46:00 +0900 |
parents | 17ed97ca9960 |
children |
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 | 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; |
7 | 13 import java.util.concurrent.ConcurrentHashMap; |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
14 import java.util.concurrent.ExecutorService; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
15 import java.util.concurrent.Executors; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
16 import java.util.concurrent.Future; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
17 import java.util.concurrent.ThreadFactory; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
18 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
19 import org.apache.cassandra.thrift.Cassandra; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
20 import org.apache.cassandra.thrift.ColumnOrSuperColumn; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
21 import org.apache.cassandra.thrift.ColumnParent; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
22 import org.apache.cassandra.thrift.ColumnPath; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
23 import org.apache.cassandra.thrift.ConsistencyLevel; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
24 import org.apache.cassandra.thrift.Mutation; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
25 import org.apache.cassandra.thrift.NotFoundException; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
26 import org.apache.cassandra.thrift.SlicePredicate; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
27 import org.apache.cassandra.thrift.SliceRange; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
28 import org.apache.thrift.protocol.TBinaryProtocol; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
29 import org.apache.thrift.protocol.TProtocol; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
30 import org.apache.thrift.transport.TSocket; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
31 import org.apache.thrift.transport.TTransport; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
32 import org.apache.thrift.transport.TTransportException; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
33 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
34 import treecms.api.Forest; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
35 import treecms.api.Node; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
36 import treecms.api.NodeID; |
9 | 37 import treecms.tree.cassandra.v1.util.CassandraClientThreadFactory; |
6 | 38 import treecms.tree.id.AbstractRandomNodeID; |
16 | 39 import treecms.tree.util.NodeData; |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
40 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
41 /** |
7 | 42 * Cassandra上で非破壊的木構造を実現するためのForestの実装です。 |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
43 * |
7 | 44 * TreeCMSKS.NODETABLE (table of all nodes) |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
45 * |
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 * + Key | Col1 | Col2 | Col3 | ... | |
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 * + NodeID | Children | _attr1 | _attr2 | ... | |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
50 * +---------------------------------------------+ |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
51 * |
7 | 52 * TreeCMSKS.TIPTABLE (table of tip) |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
53 * |
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 * + Key | Col1 | |
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 * + NodeID | version | |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
58 * +--------------------+ |
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 * @author shoshi |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
61 */ |
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 public class CassandraForest implements Forest |
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 ExecutorService m_service; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
66 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
67 //column families. |
7 | 68 static final String NODETABLE = "NODETABLE"; |
69 static final String TIPTABLE = "TIPTABLE"; | |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
70 |
7 | 71 //reserved column. |
72 static final byte[] TIPID = "TIPID".getBytes(); | |
73 static final byte[] CHILDREN = "CHILDREN".getBytes(); | |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
74 static final char PREFIX = '_'; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
75 |
7 | 76 //cache |
77 private ConcurrentHashMap<NodeID,CassandraNode> m_cache; | |
78 private ConcurrentHashMap<String,CassandraNode> m_tipCache; | |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
79 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
80 public CassandraForest(String _host,int _port,String _ks,int _threads) |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
81 { |
9 | 82 m_service = Executors.newFixedThreadPool(_threads,new CassandraClientThreadFactory(_host,_port)); |
8 | 83 |
7 | 84 m_cache = new ConcurrentHashMap<NodeID,CassandraNode>(); |
85 m_tipCache = new ConcurrentHashMap<String,CassandraNode>(); | |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
86 } |
8 | 87 |
88 private void loadContents() | |
89 { | |
90 } | |
4
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 @Override |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
93 public Node get(NodeID _id) |
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 return new CassandraNode(this,_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 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
98 @Override |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
99 public Node create() |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
100 { |
7 | 101 return createNode(null,null); |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
102 } |
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 public NodeData getNodeData(NodeID _id) |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
105 { |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
106 final NodeID id = _id; |
7 | 107 return null; |
4
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 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
110 public NodeID getTipID(String _uuid) |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
111 { |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
112 final String uuid = _uuid; |
7 | 113 return null; |
4
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 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
116 public Node createNode(NodeID _id,NodeData _data) |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
117 { |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
118 final NodeData data = _data; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
119 final NodeID id = (_id != null) ? _id : createID(null,null); |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
120 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
121 Callable<Boolean> task = new Callable<Boolean>(){ |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
122 @Override |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
123 public Boolean call() throws Exception |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
124 { |
7 | 125 return true; |
4
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 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
129 m_service.submit(task); |
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 return new CassandraNode(this,id); |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
132 } |
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 public NodeID createID(String _uuid,String _version) |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
135 { |
6 | 136 return new RandomNodeID(_uuid,_version); |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
137 } |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
138 |
6 | 139 class RandomNodeID extends AbstractRandomNodeID |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
140 { |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
141 String m_uuid; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
142 String m_version; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
143 |
6 | 144 public RandomNodeID(String _uuid,String _version) |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
145 { |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
146 m_uuid = (_uuid != null) ? _uuid : UUID.randomUUID().toString(); |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
147 m_version = (_version != null) ? _version : Long.toHexString((new Random()).nextLong()); |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
148 } |
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 @Override |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
151 public NodeID create() |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
152 { |
6 | 153 return new RandomNodeID(null,null); |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
154 } |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
155 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
156 @Override |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
157 public NodeID update() |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
158 { |
6 | 159 return new RandomNodeID(m_uuid,null); |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
160 } |
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 @Override |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
163 public String getUUID() |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
164 { |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
165 return m_uuid; |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
166 } |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
167 |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
168 @Override |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
169 public String getVersion() |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
170 { |
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
171 return m_version; |
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 } |
7 | 174 |
175 @Override | |
176 public Node create(NodeData data) | |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
177 { |
7 | 178 return null; |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
179 } |
7 | 180 |
181 @Override | |
182 public Node getTip(String uuid) | |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff
changeset
|
183 { |
7 | 184 return null; |
4
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 } |