I make some bench writing data to simple fdb cluster ( local machine).
The idea was to test c api after good feedack using fdb in production (using python api).
I would like to test migration from sqlite3 to fdb (6.3) using c api.
After basic c benchmarks I get roughly similar performance and I wonder if this is due to :
- fdb 6.3 uses sqlite
- The way I write tests bench and the fact that I commit each transaction (this is the way how it is expected to be used for my use case)
- if moving to fdb 7.2 will bring radically best performance
Here are the bench results nb writes per second
1058 objects in 5.008398s, 211.245210 objects per second. 1052 objects in 5.004594s, 210.206848 objects per second.
1398 objects in 5.001480s, 279.517244 objects per second. 1420 objects in 5.007026s, 283.601459 objects per second.
Test code snippet:
FDBDatabase* db = NULL; fdb_create_database("/fdb.cluster", &db); FDBTransaction* tr = NULL; fdb_database_create_transaction(db, &tr); gchar *k = g_strdup_printf("%s/%s/%s", (const char *)(url->account),\ (const char *)(url->user), (const char *)(url->path)) ; uint8_t* v = (uint8_t*)"1"; long length = g_utf8_strlen(k, -1); fdb_transaction_set(tr, (uint8_t*)k, length, v, 1); FDBFuture* f = fdb_transaction_commit(tr); fdb_error_t fdb_err = waitError(f); fdb_future_destroy(f); fdb_database_destroy(db);