Details
-
Task
-
Resolution: Incomplete
-
Major
-
3.0.1
-
None
Description
Here are some options I tried implementing collections in YCSB
Option 1 :
Initiate multiple threads per client and each thread open's exactly once collection
or multiple threads on connects/opens single collection
https://github.com/couchbaselabs/YCSB/tree/couchbase3-collection
(still needs some consmetic changes ... but works fine as expected)
Drawback : Cannot have single thread mutate on multiple collections
Option2 :
Initiate multiple threads with static variables and open cluster connection in read/update/insert method onto random collection and close environment/cluster connection at the end of READ/UPDATE/INSERT operation .
Drawback : Severe performance overhead of initiating multiple connection & close connections . Resulting in timeouts .
Option3:
Initiate multiple threads with static variables and cluster option . mutate on random collections in db.Read/update method by initiatialising collections
This resulted in nullpointerExceptions .
Is there a better way of implementing it ?
Also from SDK perspective.. I was wondering is having an option to pass collection as part of Bucket config a better way as compared to have Collection class in terms of application design and usability for developers/end users ??
Appreciate your feedback .
Base ycsb Branch - https://github.com/couchbaselabs/YCSB/commits/couchbase3-new-durability