Class ConcurrentSpaceCache<S extends Space>

Type Parameters:
S - The type which will represent the cache for a given type of adapter.
All Implemented Interfaces:
NBComponent, NBComponentAdvisors, NBComponentEvents, NBComponentMetrics, NBComponentProps, NBComponentServices, NBComponentTimeline, NBProviderSearch, NBTokenWords, NBLabeledElement, AutoCloseable, Iterable<S>

public class ConcurrentSpaceCache<S extends Space> extends NBBaseComponent implements Iterable<S>

Native driver state in NoSQLBench is stored in a context called a Space, with each driver adapter providing its own implementation. The easiest way to create one of these is to derive from BaseSpace The generic type parameters for the DriverAdapter API propogate through all the related interfaces so that op mappers, dispensers, and spaces are familiar to each other. This makes it easy, for example, to use support functions from a special adapter implementation in a type-safe and convenient way.

A Driver Space Cache is simply a place to hold something like a client instance and all associated objects for quick and easy access. Each space cache is simply a named and separate cache of objects. This is provided as a convenient way to keep object state around which may be needed during the course of executing operations with a driver or API. By naming each space, it becomes possible for tests to create and use separate logical instances of a client API for advanced testing. The default instance should simply be named default

Most native drivers use some combination of fluent, functional, and declarative patterns. These usually require you to keep access to a set of core state-holding objects in order to construct new elements to drive operations with. An example of this would be creating an executable operation from a session object. It is necessary to keep the session around in for when you create new statements. Maintaining the session object is considered an essential part of idiomatic and efficient use of the API. Further, you may have builders or factories that are created from the session which should be cached as well. Keeping all these objects together requires attaching them to a cohesive owning object -- That is the space cache.

  • Constructor Details

  • Method Details