This commit updates the Elasticsearch 5 binding docs to include
references for starting Elasticsearch 5, how to configure the transport
client, and how to use the low-level REST client binding.
This commit fixes a bug in the Elasticsearch 5 transport client
binding. Namely, the update method was not indexing using the ID of the
read document, but instead the provided key. As auto-generated IDs are
used, this is a mistake as this is not the ID of the document. This
commit fixes this issue.
Additionally, the type is passed to the search method and used in
searches. While this is not a correctness issue per se, we fix it for
clarity.
This commit refactors the indexing of documents in the Elasticsearch 5
binding to use auto-generated IDs, instead indexing the key field as a
dedicated field rather than using it as the ID. This enables us to
implement scan functionality which we add in this commit as well.
Since Elasticsearch 5, Elasticsearch is now strict about settings. This
means that if you pass it a setting that it does not recognize,
Elasticsearch will throw an exception whereas previously it was lenient
in such situations. This commit removes passing all properties as
settings to Elasticsearch in favor of a special prefix es.setting for
which properties prefixed with this will be passed as settings to
Elasticsearch.
If path.home is not set we should not add it to the settings object used
to construct the transport client otherwise we will hit a null pointer
exception due to the null value being dereferenced in the internals of
Elasticsearch.
* master:
[core] Fixing squid:S1319 - Declarations should use Java collection interfaces such as "List" rather than specific implementation classes such as "LinkedList". (manolama - updated bindings added since the PR)
[core] Use longs instead of ints to support larger key spaces. Changed int to long in Measurements code to support large scale workloads. (manolama - fixed checkstyle errors)
[core] Export totalHistogram for HdrHistogram measurement
[core] Add an operation enum to the Workload class. This can eventually be used to replace the strings.
[core] Add a Fisher-Yates array shuffle to the Utils class.
[core] Fix an issue where the threadid and threadCount were not passed to the workload client threads. Had to use setters to get around the checkstyle complaint of having too many parameters.
Upgrading googlebigtable to the latest version. The API used by googlebigtable has had quite a bit of churn. This is the minimal set of changes required for the upgrade.
[geode] Update to apache-geode 1.2.0 release
[core] Update to use newer version of Google Cloud Spanner client and associated required change
[core] Add a reset() method to the ByteIterator abstract and implementations for each of the children. This lets us re-use byte iterators if we need to access the values again (when applicable).
[hbase12] Add HBase 1.2+ specific client that relies on the shaded client artifact provided by those versions. (#970)
[distro] Refresh Apache licence text (#969)
[memcached] support binary protocol (#965)
[accumulo] A general "refresh" to the Accumulo binding (#947)
[cloudspanner] Add binding for Google's Cloud Spanner. (#939)
[aerospike] Change the write policy to REPLACE_ONLY (#937)
Changed int to long in Measurements code to support large scale workloads.
(manolama - fixed checkstyle errors)
Signed-off-by: Chris Larsen <clarsen@yahoo-inc.com>
The API used by googlebigtable has had quite a bit of churn. This is the minimal set of changes required for the upgrade.
Signed-off-by: Chris Larsen <clarsen@yahoo-inc.com>
Adding support for memcached binary protocol as described in
https://github.com/memcached/memcached/blob/master/doc/protocol.txt.
Protocol can be set via memcached.protocol property of YCSB memcached workload. if specified
protocol must be "binary" or "text". If unspecified text version is used.
* Expand on the README, covering table creation and best-practices for table config
* Avoid unnecessary Text object creations (in loops and instead of byte[] usage)
* Use a ConcurrentHashMap to better match the DB API
* Fix error messages and always call printStackTrace() on exceptions
* Use BATCHED_OK instead of OK in insert() (more correct)
The original Aerospike interface layer was created when the REPLACE_ONLY option was not available. This provides a policy more in line with the policies that other databases have implemented their interface layers.