Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • 0.12.0

    v0.12.0 (kinetic-protocol 3.0.5)
    --------------------------------
    * `KineticSession` is now supplied as an opaque instance pointer from `KineticClient_CreateSession`
        * Passed `KineticClientConfig` is now deep copied and can be discarded after session creation.
    * Updated `KineticClient_Put` to allow storing an object with an empty value with a NULL data pointer supplied.
    * Added new `KineticAdminClient` API (see `include/kinetic_admin_client.h`)
        * Reloacted existing admin methods to admin API
            * `KineticClient_InstantSecureErase` => `KineticAdminClient_InstantErase`/`KineticAdminClient_SecureErase`
            * `KineticClient_GetLog` => `KineticAdminClient_GetLog`/`KineticAdminClient_GetDeviceSpecificLog`
            * `KineticClient_FreeDeviceInfo` => `KineticAdminClient_LogInfo`
    * Updated `kinetic-c-util` to support new Admin API. Still need to add support for printing info returned from `KineticAdminClient_GetLog`
    * Changed `kinetic-c-util` API to use `getopt_long` for operations in addition to parameters and added usage info via `--help`/`-?` option.
    * Fixed potential memory leak when logging protocol buffers.
    * Fixed potential imbalance in concurrent operations semaphore.
    * Status code changes
        * Changed
            * `KINETIC_STATUS_HMAC_EMPTY` => `KINETIC_STATUS_HMAC_REQUIRED`
        * Added
            * `KINETIC_STATUS_MISSING_PIN`
            * `KINETIC_STATUS_SSL_REQUIRED`
            * `KINETIC_STATUS_DEVICE_LOCKED`
            * `KINETIC_STATUS_ACL_ERROR`
            * `KINETIC_STATUS_NOT_AUTHORIZED`
            * `KINETIC_STATUS_INVALID_FILE`
            * `KINTEIC_STATUS_DEVICE_NAME_REQUIRED`
            * `KINETIC_STATUS_INVALID_LOG_TYPE`
            * `KINTEIC_STATUS_HMAC_FAILURE`
            * `KINETIC_STATUS_SESSION_TERMINATED`
    * Set larger timeouts for operations that tend to take approx. 10 seconds, to prevent non-deterministic failures.
    * API change: Eliminated KineticClientConfig.writerThreads, since sender threads are gone.
    * Changed to use stock protobuf-c 1.1.0 which also necessitated upgade to protobuf-2.6.0.
    * Added auto-generated version info which is prepended to log and can be queried via `KineticClient_Version()`
    * Added support to gracefully handle remote hangup.
        * The session will be shutdown.
        * All pending/new operations will return `KINETIC_STATUS_SESSION_TERMINATED` and termination reason can be queried on the given session via `KineticClient_GetTerminationStatus(session)`.
  • 0.11.2

    v0.11.2 (kinetic-protocol 3.0.5)
    --------------------------------
    * Changed all threads to block indefinitely and be fully event-driven.
    * Added logging of all assertions to provide debugging info in the absence of debug symbols.
    * Fixed race condition in message bus listener which could lead to data corruption.
    * Fixed race condition that could cause more than the max number of thread pool threads to be created.
    * Fixed potential buffer overrun in logger.
    * Fixed bug with mishandling of unsolicited status responses from the drive prior to drive terminating connection.
    * Removed ruby/rake as non-development build prerequisites.
    * Added make json, json_install and json_uninstall tasks for json-c.
  • 0.11.1

    v0.11.1 (kinetic-protocol 3.0.5)
    --------------------------------
    * Fixed race condition causing timeouts to not ne handled resulting in a deadlock.
    * Fixed extremely high CPU usage during loaded and idle times.
  • 0.11.0

    3e8e3971 · Merge branch 'develop' ·
    v0.11.0 (kinetic-protocol 3.0.5)
    --------------------------------
    * Changed API to use a `KineticClientConfig` struct, to keep future configuration changes from breaking the source API.
        * NOTE: KineticClientConfig and KineticSessionConfig rely on C99 struct init.
            * Unconfigured fields will be reverted to defaults if set to 0.
            * These structures must be configured via C99 struct init or memset to 0 prior to population for backwards compatibility.
    * Added options for the number of writer, reader, and max threadpool threads, with defaults.
    * Added KineticClient_FreeDeviceInfo to free the `KineticDeviceInfo` structure allocated by `KineticClient_GetLog`.
    * Added several new examples under src/examples/.
    * Added json-c library dependency which will be used for JSON-formatted ACL files for upcoming Admin API and multi-cast drive discovery tool.
  • 0.10.1

    v0.10.1 (kinetic-protocol 3.0.5)
    --------------------------------
    * Fixed regression in 0.10.0 where a GET with metadataOnly=true would result in a crash if a value field was not provided
    * Added system tests for P2P operations which are now fully validated and working on HW
    * Fixed misue of pthread_join status in thread pool which was causing shutdown issues in GCC builds
  • 0.10.0

    v0.10.0 (kinetic-protocol 3.0.5)
    -------------------------------
    * Added put_nonblocking and get_nonblocking examples
    * Added KineticSemaphore API to provide a simpler wrapper around a common use of pthread condition variables as a thread safe way to signal when an async operation has finished
    * Switched internal message infrastructure to use a threadpool. This will allow for a much higher number active connections and outstanding commands.
    * KineticClient_Init now returns a KineticClient pointer (internally, it's a handle to the threadpool) that must be passed to KineticClient_CreateConnection() in order to create new connections and must also be passed to KineticClient_Shutdown() on shutdown
    * Improved I/O examples to demonstrate client write operations for blocking/non-blocking (asynchrounous) and single/multi-threaded.
    * Added consolidated performance test which reports metrics on PUT/GET/DELETE seqeunces (test/system/test_system_async_throughput.c).
  • 0.9.2

    v0.9.2 (kinetic-protocol 3.0.5)
    -------------------------------
    * Added missing mutex lock causing a concurrency issue.
    * Added profiling to test/system/test_system_async_io.c
  • 0.8.2

    Merged in KINETIC_LIST_LOCK/UNLOCK fixes and other features prior to 0.9.0 release
  • 0.9.1

    v0.9.1 (kinetic-protocol 3.0.5)
    -------------------------------
    * Added `keys->used` to ByteBufferArray to reflect the number of buffers actually used, and updated `KineticClient_GetKeyRange()` to populate it.
    * Added `get_key_range.c` example for `KineticClient_GetKeyRange()`.
  • 0.9.0

    v0.9.0 (kinetic-protocol 3.0.5)
    -------------------------------
    * Changed API to use a `KineticSession` with a pointer to private session/connection info in place of the old `KineticSessionHandle`.
    * Added `FLUSHALLDATA` operation via `KineticClient_Flush()`
    * Added `GETPREVIOUS`/`GETNEXT` operations via `KineticClient_GetPrevious()`/`KineticClient_GetNext()`
    * Replaced `KinticClient_Connect()`/`Disconnect()` with `KineticClient_CreateConnection()`/`DestroyConnection()`, since the connection structure is dynamically allocated and populated in the provided `KineticSession`. `KineticClient_DestroyConnection()` MUST be called on the an established `KineticSession` in order to shutdown the connection and free up resources.
    * Added initial implementation of PEER2PEERPUSH which does NOT yet support chaining via KineticClient_P2POperation().
    * Fixed bug with mutex locking causing an assert failure and subsequent crash.
    * Fixed leaking of destroyed connections and they are now properly freed upon call to KineticClient_DestoryConnection().
    * Fixed bug where some unrecoverable socket errors could cause retries when unintended.
  • 0.8.1

    v0.8.1
    ------
    * Added GETLOG operation.
    * Added thread-safety to allow multiple client threads within the same session.
    * Added I/O examples to demonstrate client write operations for blocking/non-blocking (asynchrounous) and single/multi-threaded.
    * Still using Kinetic Protocol v3.0 (3.0.5)
        * NOT backwards compatible with earlier versions of Kinetic Protocol (< v3.0)
        * Kinetic device firmware must be updated to a release supporting v3.0 protocol!
  • 0.8.0

    v0.8.0
    ------
    * Added asynchronous/non-blocking execution option to all operations (GET/PUT/DELETE/GETKEYRANGE).
        * A given operation is carried out in asynchronous mode if a closure callback with optional data is supplied.
    * ByteArray and ByteBuffer types are now supplied directly in the byte_array.h public interface file.
  • 0.7.0

    Release 0.7.0 to get with new public API including encapsulation of internal structures and dynamic allocation of interrim resources for operations
  • 0.6.0

    v0.6.0 release with working Put, Get and Delete.
  • 0.5.2

    Fixed up README
  • 0.5.1

    Updated example command line API and README