@@ -115,6 +115,8 @@ public class CassandraBlobStore extends AbstractComponent implements BlobStore {
115
115
116
116
private final ESLogger logger = Loggers .getLogger (getClass ());
117
117
118
+ private final CassandraClientFactory cassandraClientFactory ;
119
+
118
120
private final Executor executor ;
119
121
120
122
private final int bufferSizeInBytes ; // XXX
@@ -123,11 +125,16 @@ public class CassandraBlobStore extends AbstractComponent implements BlobStore {
123
125
public CassandraBlobStore (Settings settings , Executor executor ) {
124
126
super (settings );
125
127
128
+ String host = settings .get ("host" , "localhost" );
129
+ int port = settings .getAsInt ("port" , 9160 );
130
+ cassandraClientFactory = new CassandraClientFactory (host , port );
131
+
126
132
this .executor = executor ;
127
133
128
134
this .bufferSizeInBytes = (int ) settings .getAsBytesSize ("buffer_size" , new ByteSizeValue (100 , ByteSizeUnit .KB )).bytes ();
129
135
130
- logger .debug ("CassandraBlobStore executor: {} bufferSizeInBytes: {}" , executor , bufferSizeInBytes );
136
+ logger .debug ("CassandraBlobStore {}:{} executor: {} bufferSizeInBytes: {}" ,
137
+ host , port , executor , bufferSizeInBytes );
131
138
}
132
139
133
140
@ Override public String toString () {
@@ -168,7 +175,7 @@ boolean blobExists(String blobPath, String blobName) {
168
175
logger .debug ("TODO blobExists {}" , blobKey );
169
176
try {
170
177
Cassandra .Client client =
171
- CassandraClientFactory .getCassandraClient ();
178
+ cassandraClientFactory .getCassandraClient ();
172
179
try {
173
180
return client .get_count (
174
181
keySpace ,
@@ -177,7 +184,7 @@ boolean blobExists(String blobPath, String blobName) {
177
184
ConsistencyLevel .QUORUM ) != 0 ;
178
185
}
179
186
finally {
180
- CassandraClientFactory .closeCassandraClient (client );
187
+ cassandraClientFactory .closeCassandraClient (client );
181
188
}
182
189
} catch (Exception e ) {
183
190
return false ;
@@ -224,7 +231,7 @@ private boolean deleteBlobs(String blobPath, String... blobNames)
224
231
225
232
Cassandra .Client client = null ;
226
233
try {
227
- client = CassandraClientFactory .getCassandraClient ();
234
+ client = cassandraClientFactory .getCassandraClient ();
228
235
client .batch_mutate (
229
236
keySpace , mutationMap , ConsistencyLevel .QUORUM );
230
237
return true ;
@@ -236,7 +243,7 @@ private boolean deleteBlobs(String blobPath, String... blobNames)
236
243
}
237
244
finally {
238
245
if (client != null ) {
239
- CassandraClientFactory .closeCassandraClient (client );
246
+ cassandraClientFactory .closeCassandraClient (client );
240
247
}
241
248
}
242
249
}
@@ -258,15 +265,15 @@ void readBlob(String blobPath, String blobName, final BlobContainer.ReadBlobList
258
265
@ Override public void run () {
259
266
Cassandra .Client client = null ;
260
267
try {
261
- client = CassandraClientFactory .getCassandraClient ();
268
+ client = cassandraClientFactory .getCassandraClient ();
262
269
readBlob (client , blobKey , listener );
263
270
}
264
271
catch (Exception ex ) {
265
272
listener .onFailure (ex );
266
273
}
267
274
finally {
268
275
if (client != null ) {
269
- CassandraClientFactory .closeCassandraClient (client );
276
+ cassandraClientFactory .closeCassandraClient (client );
270
277
}
271
278
}
272
279
}
@@ -291,7 +298,7 @@ private void readBlob(Cassandra.Client client, String blobKey, BlobContainer.Rea
291
298
ImmutableMap <String , BlobMetaData > listBlobsByPrefix (String blobPath , @ Nullable String blobNamePrefix ) throws IOException {
292
299
logger .debug ("listBlobsByPrefix {}" , blobKey (blobPath , blobNamePrefix ));
293
300
List <ColumnOrSuperColumn > columns ;
294
- Cassandra .Client client = CassandraClientFactory .getCassandraClient ();
301
+ Cassandra .Client client = cassandraClientFactory .getCassandraClient ();
295
302
try {
296
303
columns = client .get_slice (
297
304
keySpace ,
@@ -317,7 +324,7 @@ ImmutableMap<String, BlobMetaData> listBlobsByPrefix(String blobPath, @Nullable
317
324
throw new IOException ("Cassandra get_slice on ???:??? failed" , ex );
318
325
}
319
326
finally {
320
- CassandraClientFactory .closeCassandraClient (client );
327
+ cassandraClientFactory .closeCassandraClient (client );
321
328
}
322
329
323
330
ImmutableMap .Builder <String , BlobMetaData > blobsBuilder = ImmutableMap .builder ();
@@ -341,13 +348,13 @@ void writeBlob(final String blobPath, final String blobName, final InputStream i
341
348
@ Override public void run () {
342
349
try {
343
350
Cassandra .Client client =
344
- CassandraClientFactory .getCassandraClient ();
351
+ cassandraClientFactory .getCassandraClient ();
345
352
try {
346
353
writeBlob (client , blobPath , blobName , is , sizeInBytes );
347
354
listener .onCompleted ();
348
355
}
349
356
finally {
350
- CassandraClientFactory .closeCassandraClient (client );
357
+ cassandraClientFactory .closeCassandraClient (client );
351
358
}
352
359
} catch (Exception e ) {
353
360
listener .onFailure (e );
0 commit comments