YCSB and MongoDB 6

Hi,

Has anyone used ycsb with MongoDB 6.x? The latest ycsb failed to make connection to the database with the following error. It seems like the mongodb java driver bundled in ycsb is not updated to the version 6? Has anyone run into it and how do you resolve this? I’m thinking I can just install the latest mongodb java driver but have no experience in java development and I’m looking for some guidance/suggestions.

com.allanbank.mongodb.error.ReplyException: Unsupported OP_QUERY command: insert. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removal
	at com.allanbank.mongodb.util.FutureUtils.unwrap(FutureUtils.java:57)
	at com.allanbank.mongodb.client.SynchronousMongoCollectionImpl.insert(SynchronousMongoCollectionImpl.java:687)
	at com.allanbank.mongodb.client.SynchronousMongoCollectionImpl.insert(SynchronousMongoCollectionImpl.java:722)
	at site.ycsb.db.AsyncMongoDbClient.insert(AsyncMongoDbClient.java:272)
	at site.ycsb.DBWrapper.insert(DBWrapper.java:221)
	at site.ycsb.workloads.CoreWorkload.doInsert(CoreWorkload.java:601)
	at site.ycsb.ClientThread.run(ClientThread.java:135)
	at java.lang.Thread.run(Thread.java:750)

Thanks

1 Like

Which YCSB repository/branch are you using? The one that MongoDB employees generally use is GitHub - mongodb-labs/YCSB: This Repository is NOT a supported MongoDB product.

1 Like

OP_QUERY is a legacy opcode and was deprecated with MongoDB version 5.0 and removed at 5.1 and onward.

unfortunately, the latest commits of “brianfrankcooper/YCSB” and “mongodb-labs/YCSB” are dated long before 5.0 was out, and no activity since then.

Hello,

Is there any update on the subject? is YCSB used with mongo 6+?

@Roey_Maor YCSB is itself not active for many years now. and unfortunately, it uses even much older allanbank/mongodb-async-driver: The MongoDB Asynchronous Java Driver. (github.com)

However, if you know Java then you can edit this file in the source

mongodb/src/main/java/site/ycsb/db/AsyncMongoDbClient.java

update it to use the new MongoDB Java Reactive Streams Driver, the official MongoDB driver for asynchronous Java applications. Follow the documentation to update other parts such as maven files.

1 Like

Hi,

Thanks for your answer.
For anyone interested, using GitHub - mongodb-labs/YCSB: This Repository is NOT a supported MongoDB product worked for me. That repo is not fully updated with the original YCSB repo (for example - metrics such as 99.9/9 latencies at each interval are not included though they exist in the original) but it did work with mongodb 7.

1 Like