Développeur VoltDB ici.
Il n'y a pas de pilote YCSB officiel bien que plusieurs utilisateurs aient effectué une analyse comparative en utilisant le cadre YCSB. Il y a un peu d'inadéquation d'impédance entre YCSB et VoltDB. YCSB est conçu pour fonctionner avec les magasins de colonnes à plage partagée. VoltDB est un magasin relationnel haché avec un support riche pour la logique côté serveur.
Cela se manifeste comme un problème de trois façons.
Le premier est que YCSB nécessite des balayages de plage. Vous pouvez effectuer des analyses de plages efficaces dans un magasin de hachage fragmenté si vous avez une certaine connaissance de la distribution de clés et pouvez normaliser les clés afin de les utiliser de manière utile. Voici un exemple de la façon dont vous le feriez dans Cassandra.
Ce n'est pas insurmontable, mais cela demande réflexion.
Le deuxième problème est que le modèle de magasin de colonnes ne correspond pas bien au modèle de données relationnel. Je peux gagner un peu de vitesse et d'efficacité de mémoire en emballant de petites cartes dans une seule rangée avec un blob et en le réécrivant lorsque des paires k/v sont ajoutées/mises à jour. C'est comme ça que Redis gère les petites cartes.
Pour les clés plus grandes avec plusieurs/plus grandes paires k/v, il est logique de dénormaliser et de permettre à la base de données de gérer la mémoire. Avec un peu de travail, vous pouvez créer une API de procédure stockée qui le fait de manière transparente.
Encore une fois ce n'est pas insurmontable, mais ce n'est pas trivial non plus.
Le troisième problème est que YCSB est écrit sous l'hypothèse que toute la logique existe sur le client et que le serveur devra matérialiser toutes les données pour le client. Cela signifie que votre application réelle écrite contre VoltDB pourrait être plusieurs fois plus rapide et plus efficace. Plus rapide car la logique côté serveur peut éliminer plusieurs allers-retours vers le client et plus d'espace car la prise en charge des transactions vous permet d'éviter d'écrire votre application de manière structurée. YCSB vous donnera une idée générique de la façon dont VoltDB fonctionne et évolue, mais il y a des avantages non négligeables à écrire votre application d'une manière qui convient au modèle de données relationnelles et l'accent mis par Volt sur la logique côté serveur. .
En ce qui concerne le TPC-C. VoltDB a été conçu spécifiquement pour un benchmark TPC-C. Je dis "j'aime" parce que ce n'est pas officiel et cela diffère de TPC-C de plusieurs façons. La différence la plus significative est que les transactions de nouvelle commande n'utilisent qu'un seul entrepôt (et non les entrepôts 1-10 requis pour quelques% des nouvelles commandes). Ceci est important car cela permet à l'indice de référence de se répartir parfaitement sans aucune transaction distribuée.
Le test de référence VoltDB TPC-C n'est pas fourni avec la distribution mais est disponible au github.