Skip to content

Introduce Airport Workload #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1,311 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1311 commits
Select commit Hold shift + click to select a range
74b5080
Add db.flavor to capture syntax differences among JDBC implementations.
enis May 20, 2016
5dc57b7
[jdbc] Separate use of JDBC batch update APIs from autoCommit
joshelser Jun 9, 2016
4823a07
[core] Treat BATCHED_OK as an acceptable status for insert()
joshelser Sep 19, 2016
5f0e9ef
Merge pull request #776 from jixuan1989/cassandra-tracing-function
risdenk Sep 29, 2016
1db823a
[cassandra] Increase Cassandra test timeout and add logging
risdenk Sep 29, 2016
bceba81
Merge pull request #850 from risdenk/ycsb-495
risdenk Sep 29, 2016
dfe0c64
Merge pull request #842 from joshelser/jdbc-fixes
risdenk Sep 30, 2016
bb9aead
Merge pull request #837 from xiangcong/azure
risdenk Sep 30, 2016
c9d70ba
[build, core, accumulo, couchbase2, hbase10, orientdb, asynchbase] fi…
busbey Sep 30, 2016
d47d4d8
[jdbc] Fix JDBC checkstyle errors.
risdenk Sep 30, 2016
d56953c
[solr] Skip Solr 5.x tests with JDK 9
risdenk Sep 30, 2016
001b64d
Merge pull request #854 from risdenk/ycsb-705
risdenk Sep 30, 2016
0acb763
Merge pull request #847 from risdenk/ycsb-846
risdenk Oct 20, 2016
933f5f6
[solr,solr6] Add Solr 6 binding
risdenk Sep 27, 2016
43d5633
Merge pull request #849 from risdenk/ycsb-715
risdenk Oct 20, 2016
ef8c9f1
[rest] Added rest-binding for benchmarking RESTFull Web Services.
shivam-maharshi May 28, 2016
1afb9af
Merge pull request #756 from shivam-maharshi/master
risdenk Oct 25, 2016
70f4362
[orientdb] OrientDB was updated to 2.2.10 and multithreading bugs fix…
andrii0lomakin Oct 31, 2016
1b8ebe4
[jdbc] Update README and sample config file for jdbc binding (#872)
gitanuj Nov 15, 2016
1d37be1
[core] Support for configurable fractional percentile metrics in outp…
jschmieg Nov 18, 2016
b83dd7e
[version] update master to 0.13.0-SNAPSHOT.
risdenk Nov 18, 2016
70590bb
[kudu] Update bindings (#879)
danburkert Dec 2, 2016
0367bd0
Updated README.md for release of YCSB 0.12.0 (#883)
risdenk Dec 12, 2016
a37bc78
[azuredocumentdb] Added support for Azure DocumentDB (#838)
Dec 16, 2016
8b0548a
[solr,solr6] Add support for Kerberized Solr (#887)
risdenk Jan 11, 2017
87d398f
[core] Fix checkstyle for Core miscellaneous (#901)
risdenk Jan 30, 2017
ca14c7f
[core] Fix checkstyle for Utils (#900)
risdenk Jan 30, 2017
ea91731
[core] Fix checkstyle for ConstantOccupancyWorkload (#899)
risdenk Jan 30, 2017
e79d9b4
[checkstyle] Make .editorconfig match checkstyle continuation indent …
risdenk Jan 30, 2017
3e28ed6
[core] Fix checkstyle for RestWorkload (#896)
risdenk Jan 30, 2017
bf2ae13
[hypertable] Enforce checkstyle for Hypertable binding (#907)
risdenk Jan 31, 2017
231611b
[tarantool] Enforce checkstyle for Tarantool binding (#905)
risdenk Jan 31, 2017
9cba207
[infinispan] Enforce checkstyle for Infinispan binding (#906)
risdenk Jan 31, 2017
7fa8331
[dynamodb] Enforce checkstyle for DynamoDB binding (#904)
risdenk Jan 31, 2017
a564c4c
[core] Fix checkstyle for CoreWorkload (#897)
risdenk Jan 31, 2017
9336c2c
[arangodb3] added ArangoDB3 binding (ArangoDB 3.1, Java driver 4.1.7)…
mpv1989 Feb 2, 2017
2dc43a9
[geode] Enforce checkstyle for geode binding (#919)
risdenk Feb 2, 2017
b1ce58f
[rest] Disable tests for Rest binding under JDK 9 (#921)
risdenk Feb 2, 2017
29e05b0
[core] Fix checkstyle for CommandLine (#917)
risdenk Feb 3, 2017
b60d267
[core] Fix checkstyle for generator package (#915)
risdenk Feb 3, 2017
51ea29e
[core] Fix checkstyle for Client (#918)
risdenk Feb 3, 2017
bfafcf1
[core] Fix checkstyle for measurements package (#916)
risdenk Feb 3, 2017
5311642
[core] Enforce checkstyle for core (#920)
risdenk Feb 3, 2017
3c47f98
[hbase098] Fix checkstyle for HBase 0.98.x binding (#902)
risdenk Feb 3, 2017
68fbbb0
[solr,solr6] Update Solr versions (#924)
risdenk Feb 6, 2017
c3cfc98
[elasticsearch,elasticsearch5] Add Elasticsearch 5.x binding
risdenk Feb 7, 2017
c52c438
Start REST integration tests
risdenk Feb 8, 2017
1c4c310
[aerospike] Change the write policy to REPLACE_ONLY (#937)
tiboratAS Mar 14, 2017
78c3cfa
[cloudspanner] Add binding for Google's Cloud Spanner. (#939)
siamaktz Mar 17, 2017
ddde8e3
[accumulo] A general "refresh" to the Accumulo binding (#947)
joshelser Apr 6, 2017
b0ff727
[memcached] support binary protocol (#965)
solganik May 12, 2017
57c2260
[distro] Refresh Apache licence text (#969)
memmerto May 12, 2017
6c20ca6
[hbase12] Add HBase 1.2+ specific client that relies on the shaded cl…
busbey May 19, 2017
a56a00e
[core] Add a reset() method to the ByteIterator abstract and implemen…
manolama Aug 3, 2017
9135cc1
[core] Update to use newer version of Google Cloud Spanner client and…
samizuh Jul 25, 2017
73802a5
[geode] Update to apache-geode 1.2.0 release
metatype Jul 21, 2017
eaff913
Upgrading googlebigtable to the latest version.
sduskis Jun 6, 2017
169150b
Merge pull request #999 from manolama/iterators_reset
manolama Aug 5, 2017
a12928e
[core] Fix an issue where the threadid and threadCount were not passed
manolama Aug 3, 2017
e4aecc1
[core] Add a Fisher-Yates array shuffle to the Utils class.
manolama Aug 3, 2017
d04d932
[core] Add an operation enum to the Workload class. This can eventually
manolama Aug 3, 2017
2c66bc6
[core] Export totalHistogram for HdrHistogram measurement
liujiongxin Jun 26, 2017
59bc986
[core] Use longs instead of ints to support larger key spaces.
Jan 24, 2017
cf5d2ca
[core] Fixing squid:S1319 - Declarations should use Java collection …
kirill-vlasov Dec 24, 2015
4c84ffa
Merge branch 'master' into initial-es5
jasontedor Aug 7, 2017
b1e1d48
Elasticsearch 5: Set dependency to version 5.5.1
jasontedor Aug 7, 2017
a3ba64d
Elasticsearch 5: Avoid adding path.home if not set
jasontedor Aug 7, 2017
23163cc
Elasticsearch 5: Fix handling of settings
jasontedor Aug 7, 2017
d66e856
Elasticsearch 5: Remove support for embedded node
jasontedor Aug 7, 2017
e47e90e
Elasticsearch 5: Use auto-IDs and implements scan
jasontedor Aug 8, 2017
db8674a
Elasticsearch 5: Remove path.home setting
jasontedor Aug 8, 2017
0eb22d1
Elasticsearch 5: Fix unreleased bugs in client
jasontedor Aug 8, 2017
bc69e7e
Elasticsearch 5: Complete REST implementation
jasontedor Aug 8, 2017
f1eed61
Elasticsearch 5: Code cleanup
jasontedor Aug 8, 2017
42bb148
Elasticsearch 5: Fix issues for tests to pass
jasontedor Aug 9, 2017
382bdc7
Elasticsearch 5: Update docs
jasontedor Aug 9, 2017
6d14ff4
Elasticsearch 5: Only activate plugin on JDK 8
jasontedor Aug 9, 2017
1774d62
Elasticsearch 5: Format transport client logs
jasontedor Aug 9, 2017
6ae7050
Elasticsearch 5: Revert unrelated changes
jasontedor Aug 10, 2017
a65dcb7
Elasticsearch 5: Log transport client on stderr
jasontedor Aug 10, 2017
e30441c
Elasticsearch 5: Remove unneeded output statements
jasontedor Aug 10, 2017
d791ae6
Elasticsearch 5: Change es.newdb to es.new_index
jasontedor Aug 10, 2017
9267038
Elasticsearch 5: Close content builder
jasontedor Aug 10, 2017
2250903
Elasticsearch 5: Remove core POM change
jasontedor Aug 10, 2017
5d840ef
Elasticsearch 5: Fix Javadocs in REST client tests
jasontedor Aug 10, 2017
ec14aae
Update Spanner Version to 0.21.1-beta
hostirosti Aug 9, 2017
3e8cf86
[core] Add the NumericByteIterator to store byte encoded longs or dou…
manolama Aug 6, 2017
b1d4ac6
[core] Add 'basicdb.count' as a config option to track and print
manolama Aug 3, 2017
b945c66
[core] Add the RandomDiscreteTimestampGenerator to generate a range of
manolama Aug 6, 2017
b9f8539
Elasticsearch 5: Collapse tests to one class
jasontedor Aug 10, 2017
38d45b0
Elasticsearch 5: Mark constant as final
jasontedor Aug 10, 2017
082dc30
Elasticsearch 5: Use provided constants for status codes
jasontedor Aug 10, 2017
033ff88
Elasticsearch 5: Remove extraneous newline
jasontedor Aug 10, 2017
385a389
Merge pull request #925 from risdenk/initial-es5
jasontedor Aug 10, 2017
a9f5c04
[s3] S3Client could not estimate read perfomance correctly (#1010)
bosher Sep 7, 2017
d69345f
[travis] get travis back to happy (#1022)
busbey Sep 9, 2017
0350c37
[s3] Use AWS IOUtils to read object data (#1021)
risdenk Sep 10, 2017
0d17403
[travis] Travis CI add oraclejdk9 (#1023)
risdenk Sep 16, 2017
db2e3df
[googledatastore] Google Datastore to use default credentials. (#984)
haihuang-ml Sep 16, 2017
035310c
[core] Add the TimeSeriesWorkload class, a new type of workload that …
manolama Sep 17, 2017
d6e57c3
[jdbc] Use `TEXT` for fields instead of VARCHAR (#910)
risdenk Sep 17, 2017
4e84b76
[core] Change the RemainingFormatter to reflect non-plural times, fix…
manolama Sep 19, 2017
71a9ee5
Merge pull request #1029 from manolama/i825
manolama Sep 20, 2017
5fbded7
[core] add some missing DBs to the YCSB help script.
manolama Sep 19, 2017
259c965
[hbase098] Fix #923 by interrupting the current thread.
manolama Sep 19, 2017
942a317
[core] Add a CONTRIBUTING.md file to fix #245.
manolama Sep 19, 2017
1a3c8cb
[hbase10] Address #701 by mimicking the same locks from the HBase 0.9…
manolama Sep 21, 2017
28b924b
[scripts, core] cleanup bindings (#1031)
busbey Sep 22, 2017
af424b0
[version] update master branch to 0.14
busbey Sep 17, 2017
278b522
[hbase094] remove the hbase 0.94 binding. (#1032)
busbey Sep 22, 2017
600703c
Merge remote-tracking branch 'mdrob/master'
busbey Sep 22, 2017
f31b233
[accumulo, accumulo1.6, accumulo1.7, accumulo1.8] switch Accumulo to …
busbey Sep 22, 2017
c53318c
[cloudspanner] Update Cloud Spanner Client version to 0.24.0-beta (#1…
hostirosti Oct 2, 2017
8603c10
Merge pull request #1034 from busbey/accumulo-modules
busbey Oct 8, 2017
3d6ed69
[accumulo] README was incorrectly referencing aerospike-binding (#1056)
hinchliff Dec 2, 2017
ca25820
When the TimeSeriesWorkload was run with fieldcount=1 and tagcount=1 …
asicoe Feb 6, 2018
2218649
[core] changes to enable folding YCSB-TS back into YCSB (#1095)
Vogel612 Mar 19, 2018
a1f9d35
[hbase098, hbase10, scripts] deprecate bindings for EOM HBase versions.
busbey Mar 22, 2018
25ab00d
[hbase14] Add HBase 1.4 binding.
busbey Mar 22, 2018
326c244
[hbase20] Add HBase 2.0 binding.
busbey Mar 22, 2018
2a7a77f
Merge pull request #1113 from busbey/hbase-client-updates
busbey Mar 23, 2018
f8b1b9c
[core] replace custom ThreadLocalRandom with standard one (#1110)
isopov Mar 23, 2018
9d0af87
[accumulo1.6, scripts] deprecate Accumulo 1.6 client, since Accumulo …
busbey Mar 23, 2018
f886c1e
[geode] Ensure geode client will work with v1.3 by removing reference…
upthewaterspout Mar 28, 2018
3f07715
[hbase10] Remove use of guava
busbey Apr 19, 2018
efab905
[mongodb] update mongodb-java-driver to latest 3.6.3 (#1138)
stutiredboy May 11, 2018
fb85b59
[maprdb maprjsondb] Added clients for MapR-DB and MapR-JSONDB (#1063)
rohanjayaraj May 11, 2018
682be7f
[bigtable] update bigtable to 1.0 (#1070)
igorbernstein2 May 11, 2018
3b6059b
[core] Fix ycsb.sh and ycsb.bat missing core dependencies (#908)
risdenk May 18, 2018
336a173
[kudu] Kudu binding update (#1098)
toddlipcon May 18, 2018
7273f15
[bigtable] Update Bigtable client version to 1.3.0 (latest). (#1147)
mbrukman May 18, 2018
c4807a9
[redis] Redis cluster support (#1072)
j3ns May 19, 2018
842459e
[code] update slf4j-api to 1.7.25
busbey May 19, 2018
e3d7b0d
Merge pull request #1149 from busbey/slf4j-update
allanbank May 20, 2018
3805288
[cassandra] Update CassandraCQLClient to use PreparedStatement for be…
robertpang May 21, 2018
542b7e9
[hbase20] update hbase 2 version to 2.0.0 GA
busbey May 19, 2018
b7704ce
[licensing] add missing headers called out by the RAT plugin.
busbey May 21, 2018
a85b827
[s3] Remove unnecessary getObjectMetadata() from getS3ObjectAndMetada…
xinglin Dec 2, 2017
7ecbbc3
[core] Address another issue from #981 by adding "measurement.histogr…
manolama Feb 12, 2018
9d428b6
[core] Fix an issue in #981 where the newline was missing after print…
manolama Feb 12, 2018
0c26933
[version] update master to 0.15.0-SNAPSHOT
busbey May 24, 2018
e94a11e
[build] Add missing version to rat plugin (#1168)
ctubbsii Jun 14, 2018
3e01449
[accumulo] Use latest versions of Accumulo (#1167)
ctubbsii Jun 14, 2018
f479f15
[release] Update README for the release of YCSB 0.14.0 (#1174)
busbey Jun 14, 2018
d2d9a3f
[core] Add options for user-specified min field length (#1177)
helenchw Jun 25, 2018
563925e
[rocksdb] Added support for RocksDB Java API (#1052)
adamretter Jul 7, 2018
f513f5b
[ignite, ignite-sql] Add Apache Ignite clients 'ignite' and 'ignite-s…
isuntsov-gridgain Oct 3, 2017
a9ad5b6
[arangodb, arangodb3] updated ArangoDB binding (Java driver 4.4.1) (#…
mpv1989 Jul 9, 2018
dab5f20
Test against JDK 9, 10, 11 (#1186)
risdenk Jul 15, 2018
e636963
[foundationdb] add a new client for FoundationDB (#1162)
dbjoa Jul 15, 2018
7e19b75
[ignite, ignite-sql] clean up for apache ignite clients
isuntsov-gridgain Jul 14, 2018
aedf6ef
[ignite, ignite-sql] clean up for apache ignite clients Fixes for Apa…
busbey Jul 27, 2018
c506ef9
[version] update master to 0.16.0-SNAPSHOT
busbey Jul 29, 2018
5132047
[ignite, ignite-sql] update to Apache Ignite (incubating) version 2.6.0
busbey Jul 29, 2018
8f57b1a
[ignite] fix Ignite README.md. (#1215)
isuntsov-gridgain Aug 13, 2018
668d5a8
form MongoDB 4.0: update mongodb-java-driver to 3.8
Aug 16, 2018
47cb407
[release] Update README for the release of YCSB 0.15.0
busbey Aug 15, 2018
d1a8a69
Merge pull request #1217 from stutiredboy/master
allanbank Aug 20, 2018
f79a40e
[jdbc] support JDBC option to rewrite batch statement to multi-row in…
robert-s-lee Aug 27, 2018
b31a568
[basicdb] Modifty the example for basicdb in order to adapt to the cu…
liukun4515 Sep 3, 2018
c99a7e4
Merge pull request #117 from gelin/fieldnameprefix
busbey Sep 5, 2018
5f5ad6f
[core] bring client bindings up to date for configurable field names.
busbey Sep 8, 2018
3f39cac
[elasticsearch5-rest] add forgotten elasticsearch5-rest binding.
dfquaresma Sep 11, 2018
bcd492d
[travis] drop deprecated oracle JDKs, add openjdk versions for jdk8 a…
busbey Nov 8, 2018
4bff631
Render two classes public for reuse in applications.
Oct 29, 2018
e5f436c
Merge pull request #1224 from busbey/pr-117-amend
busbey Nov 20, 2018
d4538ca
[hbase20] fix package in bindings
timoha Nov 10, 2018
5bef82d
[orientdb] fixed issue #1045, updated to orientdb version 2.2.37, add…
FloBWer Nov 11, 2018
e6bd739
[memcached] Fixes issue where fields are skipped when readallfields i…
calin-iorgulescu Nov 23, 2018
2f03a2f
Azure Cosmos [DB] (#1264)
voellm Nov 27, 2018
acc4300
Adding the ability to connect to Cassandra using SSL connections. (#1…
voellm Apr 19, 2019
a90a5a7
Removing deprecated driver. (#1295)
voellm Apr 19, 2019
0397cb6
Optimizing the driver to remove unneeded work and (#1298)
voellm Apr 20, 2019
ac13d7f
Updating to the latest driver and removing flag that are no longer ne…
voellm Apr 23, 2019
f3a7549
[hbase098] document the client side buffering config. (#1283)
busbey Apr 25, 2019
e47de41
[ignite] Apache Ignite version updated (#1270)
isuntsov-gridgain Apr 25, 2019
60f4d5d
[cloudspanner bigtable] Update client library versions (#1293)
flint-dominic Apr 26, 2019
d953a5c
[asynchbase] update to 1.8.2 (#1255)
timoha Apr 26, 2019
29f254d
[PostgreNoSQL] Added NoSQL support for PostgreSQL. (#1242)
Apr 26, 2019
8b9bb8f
[core] Optimize toArray of all ByteIterators except RandomByteIterato…
isopov Apr 26, 2019
50c6dc1
[rest] set default url.prefix to specified at readme file (#1309)
dfquaresma Jun 1, 2019
266d19b
[geode] Remove 'incubating' from references to Apache Geode (#1308)
alb3rtobr Jun 1, 2019
1b6e858
[crail] Added support for Apache Crail (Incubating) (#1266)
patrickstuedi Jun 1, 2019
9566b70
[core] Enabling exponential distribution in the core worklaod (#1260)
2121159i Jun 1, 2019
4c07fe4
[travis] drop unsupported oracle JDK8 (#1312)
busbey Jun 3, 2019
d55ac2b
[tablestore] Add binding for Alibaba Cloud's TableStore (#1286)
HoboChen Jun 4, 2019
c695486
[griddb] add GridDB binding (#1258)
knonomura Jun 4, 2019
bafc4de
[core] add missing license headers. (#1313)
busbey Jun 4, 2019
bcf9ee3
[version] update master branch to 0.17.0-SNAPSHOT
busbey Jun 4, 2019
06e47bf
[hbase10] Use Admin.tableExists instead of Table.getTableDescriptor t…
Apache9 Jun 14, 2019
e075edc
[jdbc] Fix README formatting of example connection strings (#1335)
robert-s-lee Aug 19, 2019
d1ad3ec
[hbase12] fix README instructions for skipping WAL (#1324)
adally Sep 7, 2019
2ff658c
[core] limit number of client threads based on op count. (#1323)
adally Sep 7, 2019
fc9f1a2
[jdbc] Add mssql support for scan operation (#1350)
KowsarAtz Sep 8, 2019
77080a3
[jdbc] Changed sharded url delimiter to semicolon (#1233)
Sep 8, 2019
178e4e5
[documentation] Update README for ycsb.site (#1351)
busbey Sep 9, 2019
cc165f2
[db voltdb] Add VoltDB client (#1319)
srmadscience Sep 17, 2019
fd29cda
[build] update group id to site.ycsb (#1352)
busbey Sep 19, 2019
cd1589c
Move all packages from com.yahoo.ycsb to site.ycsb. (#1354)
busbey Sep 19, 2019
12ce3a8
[version] update master branch to 0.18.0-SNAPSHOT
busbey Sep 21, 2019
3e8dd3f
[release] update README for 0.17.0 release. (#1363)
busbey Oct 11, 2019
53f0b17
[release] configuration needed for publishing to maven central. (#1361)
busbey Oct 11, 2019
4a99009
[rocksdb] update version and add options (#1353)
Oct 17, 2019
6c8c7fc
[jdbc] only check for sqlserver when we have a driver (#1372)
JulyChen728 Nov 12, 2019
25724e8
[jdbc] Add support for SQL:2008 FETCH FIRST n ROWS ONLY for Scans (#1…
FranckPachot Nov 13, 2019
26f1668
[accumulo] remove EOM Accumulo versions (1.6, 1.7) and rename 1.8 bin…
busbey Nov 13, 2019
650eee2
[core] make it possible to use zero operation count again. (#1384)
symat Jan 31, 2020
940e6a5
[ignite] Fixes configuration file path in README (#1388)
scriptnull Jan 31, 2020
cf40f40
[ignite] Updates ignite to latest version (#1389)
scriptnull Jan 31, 2020
961a3dd
[mongodb] upgraded to latest driver, allow SRV style mongodb URI, fix…
asya999 Jan 31, 2020
96eb2c4
[travis] Updates Travis Maven and enforces Maven version (#1392)
risdenk Feb 1, 2020
b3a091c
[kudu] Close clients on cleanup (#1394)
granthenke Feb 3, 2020
cd71191
[mapkeeper] remove defunct mapkeeper binding. (#1398)
busbey Feb 4, 2020
780aec9
[hbase] update HBase bindings for eom (#1396)
busbey Feb 5, 2020
af47d64
[solr7] Add support for Apache Solr 7
Mar 17, 2020
0a43104
[redis] add ability to specify jedis timeout on the command line (#1455)
harshanavkis Sep 16, 2020
c28cab4
[core] correct a function name in Measurements
naivewong Apr 22, 2020
cd163d3
[build] Use HTTPS instead of HTTP to resolve dependencies
JLLeitschuh Feb 11, 2020
a903e18
[core] Support readallfieldsbyname (#1427)
justinuang May 28, 2020
4847896
[build] Use HTTPS instead of HTTP to resolve depdencies ADDENDUM (#1406)
busbey Nov 27, 2020
5a12972
[dynamodb] Improve endpoint and region config
ahachete Jul 5, 2020
e6d551c
[cloudspanner] updates spanner client lib to 2.0.1 (#1464)
thiagotnunes Nov 27, 2020
989b930
[seaweedfs] add seaweedfs (#1443)
chrislusf Nov 27, 2020
49ce12a
[rocksdb] change README to build just rocksdb binding (#1447)
xinglin Nov 27, 2020
bee93f2
[postgrenosql] Read ResultSet was not iterated correctly. (#1376)
Nov 29, 2020
e31b503
[core] don't print dbwrapper err log msg many times (#1481)
sitano Nov 29, 2020
c4082f4
[kudu] Support range partitioning (#1331)
zhangyifan27 Nov 30, 2020
c9ea9a5
[solr, solr6] remove EOL solr versions. (#1484)
busbey Nov 30, 2020
46d5d35
[voltdb] update to latest voltdb release. (#1402)
busbey Nov 30, 2020
f7e8090
[hypertable] remove the hypertable binding. (#1483)
busbey Nov 30, 2020
deca729
[voldemort] Remove the voldemort binding. (#1482)
busbey Nov 30, 2020
5dccbb0
[core] print data integrity status is enabled (#1488)
sitano Dec 5, 2020
261cc78
[cosmosdb] Upgrade SDK to v4 (#1449)
armaansood Dec 5, 2020
7ddc8fe
[zookeeper]: add the zk binding (#1327)
maoling Dec 7, 2020
6720467
[cassandra] replace consistency ONE with QUORUM (#1487)
sitano Dec 7, 2020
ff4ecbd
[scylla] native Scylla support with token aware balancing policy and …
sitano Dec 7, 2020
a2d5127
[hbase2] HBase server side value filtering for long SCAN operations (…
bea0113 Dec 7, 2020
ce3eb9c
[scylla] enable token aware LB by default, improve the docs (#1507)
sitano Feb 16, 2021
346bd80
Removed the scope from the slf4j-simple dependency
Feb 3, 2023
190af9c
Merge pull request #4 from benchANT/409-extend-ycsb-cassandra-binding…
Feb 3, 2023
14ff26c
fixed recordcount parsing from int to long, see also https://github.c…
May 27, 2023
bc764c1
fixed recordcount parsing from int to long, see also https://github.c…
May 27, 2023
d4922ad
fixed recordcount parsing from int to long
May 27, 2023
ee6f88a
Updated Driver for MongoDB
Sep 7, 2023
f5707bc
update Aerospike driver to latest version (7.2.0)
jodoma Nov 23, 2023
9fa2815
add airport workload
jodoma Feb 9, 2024
37ad7bb
Merge remote-tracking branch 'origin/airport-workload-2'
jodoma Feb 9, 2024
34b85a7
update mongodb driver to 5.1.3
jodoma Aug 28, 2024
95be0c1
Add support for MySQL via JDBC to airport workload. This requires ref…
jodoma Sep 6, 2024
5ee875f
Merge pull request #1 from benchANT/airport-workload-3
jodoma Sep 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright (c) 2015, 2017 YCSB contributors.
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you
# may not use this file except in compliance with the License. You
# may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License. See accompanying
# LICENSE file.
# For more info, see: http://EditorConfig.org
root = true

[*.java]
indent_style = space
indent_size = 2
continuation_indent_size = 4

[*.md]
indent_style = space
indent_size = 2
continuation_indent_size = 4

[*.xml]
indent_style = space
indent_size = 2
continuation_indent_size = 4
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# ignore compiled byte code
target

# ignore output files from testing
output*

# ignore standard Eclipse files
.project
.classpath
.settings
.checkstyle

# ignore standard IntelliJ files
.idea/
*.iml
*.ipr
*.iws

# ignore standard Vim and Emacs temp files
*.swp
*~

# ignore standard Mac OS X files/dirs
.DS_Store
/differentbin/
53 changes: 53 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Copyright (c) 2010 Yahoo! Inc., 2012 - 2015 YCSB contributors.
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you
# may not use this file except in compliance with the License. You
# may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License. See accompanying
# LICENSE file.

# more info here about TravisCI and Java projects
# http://docs.travis-ci.com/user/languages/java/

language: java

jdk:
- openjdk8
- openjdk11
- oraclejdk11

addons:
hosts:
- myshorthost
hostname: myshorthost
postgresql: "9.5"

install:
- mvn -N io.takari:maven:0.7.7:wrapper -Dmaven=3.6.3
- ./mvnw install -q -DskipTests=true

script: ./mvnw test -q

before_script:
- psql -c 'CREATE database test;' -U postgres
- psql -c 'CREATE TABLE usertable (YCSB_KEY VARCHAR(255) PRIMARY KEY not NULL, YCSB_VALUE JSONB not NULL);' -U postgres -d test
- psql -c 'GRANT ALL PRIVILEGES ON DATABASE test to postgres;' -U postgres

# Services to start for tests.
services:
- ignite
- mongodb
- postgresql
# temporarily disable riak. failing, docs offline.
# - riak

# Can't use container based infra because of hosts/hostname
sudo: true
133 changes: 133 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
<!--
Copyright (c) 2017 YCSB contributors.
All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you
may not use this file except in compliance with the License. You
may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License. See accompanying
LICENSE file.
-->
## How To Contribute

As more and more databases are created to handle distributed or "cloud" workloads, YCSB needs contributors to write clients to test them. And of course we always need bug fixes, updates for existing databases and new features to keep YCSB going. Here are some guidelines to follow when digging into the code.

## Project Source

YCSB is located in a Git repository hosted on GitHub at [https://github.com/brianfrankcooper/YCSB](https://github.com/brianfrankcooper/YCSB). To modify the code, fork the main repo into your own GitHub account or organization and commit changes there.

YCSB is written in Java (as most of the new cloud data stores at beginning of the project were written in Java) and is laid out as a multi-module Maven project. You should be able to import the project into your favorite IDE or environment easily. For more details about the Maven layout see the [Guide to Working with Multiple Modules](https://maven.apache.org/guides/mini/guide-multiple-modules.html).

## Licensing

YCSB is licensed under the Apache License, Version 2.0 (APL2). Every file included in the project must include the APL header. For example, each Java source file must have a header similar to the following:

```java
/**
* Copyright (c) 2015-2017 YCSB contributors. All rights reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License. See accompanying
* LICENSE file.
*/
```

When modifying files that already have a license header, please update the year when you made your edits. E.g. change ``Copyright (c) 2010 Yahoo! Inc., 2012 - 2016 YCSB contributors.`` to ``Copyright (c) 2010 Yahoo! Inc., 2012 - 2017 YCSB contributors.`` If the file only has ``Copyright (c) 2010 Yahoo! Inc.``, append the current year as in ``Copyright (c) 2010 Yahoo! Inc., 2017 YCSB contributors.``.

**WARNING**: It should go without saying, but don't copy and paste code from outside authors or sources. If you are a database author and want to copy some example code, it must be APL2 compatible.

Client bindings to non-APL databases are perfectly acceptable, as data stores are meant to be used from all kinds of projects. Just make sure not to copy any code or commit libraries or binaries into the YCSB code base. Link to them in the Maven pom file.

## Issues and Support

To track bugs, feature requests and releases we use GitHub's integrated [Issues](https://github.com/brianfrankcooper/YCSB/issues). If you find a bug or problem, open an issue with a descriptive title and as many details as you can give us in the body (stack traces, log files, etc). Then if you can create a fix, follow the PR guidelines below.

**Note** Before embarking on a code change or DB, search through the existing issues and pull requests to see if anyone is already working on it. Reach out to them if so.

For general support, please use the mailing list hosted (of course) with Yahoo groups at [http://groups.yahoo.com/group/ycsb-users](http://groups.yahoo.com/group/ycsb-users).

## Code Style

A Java coding style guide is enforced via the Maven CheckStyle plugin. We try not to be too draconian with enforcement but the biggies include:

* Whitespaces instead of tabs.
* Proper Javadocs for methods and classes.
* Camel case member names.
* Upper camel case classes and method names.
* Line length.

CheckStyle will run for pull requests or if you create a package locally so if you just compile and push a commit, you may be surprised when the build fails with a style issue. Just execute ``mvn checkstyle:checkstyle `` before you open a PR and you should avoid any suprises.

## Platforms

Since most data bases aim to support multiple platforms, YCSB aims to run on as many as possible as well. Besides **Linux** and **macOS**, YCSB must compile and run for **Windows**. While not all DBs will run under every platform, the YCSB tool itself must be able to execute on all of these systems and hopefully be able to communicate with remote data stores.

Additionally, YCSB is targeting Java 7 (1.7.0) as its build version as some users are glacially slow moving to Java 8. So please avoid those Lambdas and Streams for now.

## Pull Requests

You've written some amazing code and are excited to share it with the community! It's time to open a PR! Here's what you should do.

* Checkout YCSB's ``master`` branch in your own fork and create a new branch based off of it with a name that is reflective of your work. E.g. ``i123`` for fixing an issue or ``db_xyz`` when working on a binding.
* Add your changes to the branch.
* Commit the code and start the commit message with the component you are working on in square braces. E.g. ``[core] Add another format for exporting histograms.`` or ``[hbase12] Fix interrupted exception bug.``.
* Push to your fork and click the ``Create Pull Request`` button.
* Wait for the build to complete in the CI pipeline. If it fails with a red X, click through the logs for details and fix any issues and commit your changes.
* If you have made changes, please flatten the commits so that the commit logs are nice and clean. Just run a ``git rebase -i <hash before your first commit>``.

After you have opened your PR, a YCSB maintainer will review it and offer constructive feedback via the GitHub review feature. If no one has responded to your PR, please bump the thread by adding comments.

**NOTE**: For maintainers, please get another maintainer to sign off on your changes before merging a PR. And if you're writing code, please do create a PR from your fork, don't just push code directly to the master branch.

## Core, Bindings and Workloads

The main components of the code base include the core library and benchmarking utility, various database client bindings and workload classes and definitions.

### Core
When working on the core classes, keep in mind the following:

* Do not change the core behavior or operation of the main benchmarking classes (Particularly the Client and Workload classes). YCSB is used all over the place because it's a consistent standard that allows different users to compare results with the same workloads. If you find a way to drastically improve throughput, that's great! But please check with the rest of the maintainers to see if we can add the tweaks without invalidating years of benchmarks.
* Do not remove or modify measurements. Users may have tooling to parse the outputs so if you take something out, they'll be a wee bit unhappy. Extending or adding measurements is fine (so if you do have tooling, expect additions.)
* Do not modify existing generators. Again we don't want to invalidate years of benchmarks. Instead, create a new generator or option that can be enabled explicitly (not implicitly!) for users to try out.
* Utility classes and methods are welcome. But if they're only ever used by a specific database binding, co-locate the code with that binding.
* Don't change the DB interface if at all possible. Implementations can squeeze all kinds of workloads through the existing interface and while it may be easy to change the bindings included with the source code, some users may have private clients they can't share with the community.

### Bindings and Clients

When a new database is released a *binding* can be created that implements a client communicating with the given data store that will execute YCSB workloads. Details about writing a DB binding can be found on our [GitHub Wiki page](https://github.com/brianfrankcooper/YCSB/wiki/Adding-a-Database). Some development guidelines to follow include:

* Create a new Maven module for your binding. Follow the existing bindings as examples.
* The module *must* include a README.md file with details such as:
* Database setup with links to documentation so that the YCSB benchmarks will execute properly.
* Example command line executions (workload selection, etc).
* Required and optional properties (e.g. connection strings, behavior settings, etc) along with the default values.
* Versions of the database the binding supports.
* Javadoc the binding and all of the methods. Tell us what it does and how it works.

Because YCSB is a utility to compare multiple data stores, we need each binding to behave similarly by default. That means each data store should enforce the strictest consistency guarantees available and avoid client side buffering or optimizations. This allows users to evaluate different DBs with a common baseline and tough standards.

However you *should* include parameters to tune and improve performance as much as possible to reach those flashy marketing numbers. Just be honest and document what the settings do and what trade-offs are made. (e.g. client side buffering reduces I/O but a crash can lead to data loss).

### Workloads

YCSB began comparing various key/value data stores with simple CRUD operations. However as DBs have become more specialized we've added more workloads for various tasks and would love to have more in the future. Keep the following in mind:

* Make sure more than one publicly available database can handle your workload. It's no fun if only one player is in the game.
* Use the existing DB interface to pass your data around. If you really need another API, discuss with the maintainers to see if there isn't a workaround.
* Provide real-world use cases for the workload, not just theoretical idealizations.
Loading