Release Notes - Couchbase .NET client library - Version 2.0 Beta - HTML format

Technical task

  • [NCBC-412] - Develop Ketama based Keymapper
  • [NCBC-462] - Add support for Update operation
  • [NCBC-487] - Create Sasl Mechanism Factory
  • [NCBC-490] - support configuring the poll interval with .net client for observe persistto and replicateto performance
  • [NCBC-495] - Code Comments & Sandcastle Documentation
  • [NCBC-508] - Add Increment operation support
  • [NCBC-509] - Add Decrement operation support
  • [NCBC-510] - Only use DNS lookup when IP is not available
  • [NCBC-524] - Refactor OperationBase and other classes to not use ArraySegment
  • [NCBC-525] - Misc performance improvements and refactoring
  • [NCBC-541] - Implement Observe command
  • [NCBC-542] - Provide Observe method on IBucket
  • [NCBC-543] - Provide durability constraints for mutator methods: replace, insert, upsert
  • [NCBC-568] - Update IVBucket to support more than one replica

Bug

  • [NCBC-291] - add method to access errors array in view response
  • [NCBC-417] - Cluster.Dispose does not release all resources - config listener thread hangs in certain cases
  • [NCBC-439] - HttpStreamingProvider streaming thread hangs when Dispose is called on Cluster object
  • [NCBC-442] - BufferAllocator is being overwritten by SetBuffer(..) in SocketAsyncStrategy
  • [NCBC-505] - Ram size variable overflows when deserializing configuration
  • [NCBC-515] - .NET Client accepts port 11211 as input
  • [NCBC-522] - Make ILog instance within OperationResult(T) class static.
  • [NCBC-563] - NullReferenceException in CouchbaseConfigContext.LoadConfig
  • [NCBC-566] - System.ObjectDisposedException: CancellationTokenSource has been removed(vpn run)
  • [NCBC-567] - Couchbase.IO.Strategies.DefaultIOStrategy - Could not authenticate default using Couchbase.Authentication.SASL.CramMd5Mechanism.
  • [NCBC-570] - KeyNotFoundException in ConfigChangedHandler in Rb2Out test
  • [NCBC-574] - Collection was modified; enumeration operation may not execute in ConfigContextBase.Dispose
  • [NCBC-575] - Cannot access a disposed object in ConnectionPool`1.Finalize()
  • [NCBC-576] - System.ArgumentOutOfRangeException in CanRetryOperation in case Timed out error/network issues
  • [NCBC-587] - Cannot access a disposed object in DefaultIOStrategy.Finalize()
  • [NCBC-588] - System.InvalidOperationException: Sequence contains no matching element in Couchbase.Configuration.ConfigContextBase.GetServer() after rebalance
  • [NCBC-589] - ThrowInvalidOperationException in Couchbase.Configuration.CouchbaseConfigContext.LoadConfig during rebalance
  • [NCBC-590] - Refactor logging so that ODE are not raised when it references a disposed object
  • [NCBC-591] - NullReferenceException in Couchbase.Configuration.Server.Providers.Streaming.HttpStreamingProvider.GetBucketConfig
  • [NCBC-592] - AuthenticationException in CouchbaseBucket.SendWithRetry
  • [NCBC-597] - [vpn run] Couchbase.Configuration.Server.Serialization.BootstrapException: Could not bootstrap from configured servers list
  • [NCBC-598] - ServerUnavailableException after rebalance (in CouchbaseBucket.Get)
  • [NCBC-599] - Shuffle method changes server order resulting in NMV responses
  • [NCBC-601] - ThrowArgumentOutOfRangeException in Couchbase.Core.VBucket.LocatePrimary() after failover nodes
  • [NCBC-602] - [ssl] ArgumentOutOfRangeException in VBucket.LocatePrimary (ReAdd2-HYBRID test)
  • [NCBC-604] - NullReferenceException in OperationBase`1.HandleClientError
  • [NCBC-605] - [ssl] Seems like SsslConnection.SendCallback/ReceiveCallback should handle exceptions "Cannot access a disposed object" as EapConnection does
  • [NCBC-606] - Couchbase.ServerUnavailableException at Couchbase.Configuration.ConfigContextBase.GetServer() when some nodes failed over
  • [NCBC-607] - [ssl] NullReferenceException at Couchbase.IO.Strategies.SslConnection.Send ( first CRUD operation)
  • [NCBC-610] - [ssl] data load is very slow: 1 ops/sec(regression)
  • [NCBC-615] - [ssl] data load stuck with 'Socket Exception was unhandled'
  • [NCBC-617] - [ssl] System.NotSupportedException: The BeginRead method cannot be called when another read operation is pending. at System.Net.Security._SslStream.ProcessRead ( whith fail over nodes)
  • [NCBC-620] - compilation error CS2001: Source file 'Fakes\FauxBucket.cs' could not be found
  • [NCBC-622] - Exception < 1024 vbuckets
  • [NCBC-623] - [ssl+vpn] ArgumentOutOfRangeException when try Couchbase.Core.Serializers.TypeSerializer.Deserialize
  • [NCBC-631] - TypeSerializer swallows exceptions making it difficult to debug serialization/transcoding errors.
  • [NCBC-633] - POCO's are serialized to binary blobs (and not JSON) when stored with Insert operation
  • [NCBC-637] - When CCCP fails ensure NRE is not thrown
  • [NCBC-638] - If Server is null when sending an operation then retry operation
  • [NCBC-639] - ThrowOperationCanceledException in SendWithRetry[T](ViewQuery query) when 3 from 4 nodes restarted

Epic

  • [NCBC-516] - .NET SDK 2.0 Documentation

Story

  • [NCBC-364] - VBucket Locator Component
  • [NCBC-365] - Incoming and Outgoing Data Serialization
  • [NCBC-421] - Refactor and Improve IO layer
  • [NCBC-475] - Add durability requirements (the feature formally known as "Observe")
  • [NCBC-517] - General Developer Documentation (use TOC as template)
  • [NCBC-518] - 2.0 Sample Application

Task

  • [NCBC-428] - Refactor URI creation across all HTTP endpoints
  • [NCBC-461] - Add "meta document" support
  • [NCBC-467] - AwaitableIOStrategy need it's Dispose method to be implemented.
  • [NCBC-468] - Resolve compiler warnings
  • [NCBC-474] - Add CAS support
  • [NCBC-477] - Add support for Incr/Decr
  • [NCBC-478] - Add support for Append
  • [NCBC-479] - Add Retry logic for NMV's
  • [NCBC-481] - Sandcastle Documentation for Beta
  • [NCBC-482] - Provide hostname resolution to IP address
  • [NCBC-496] - 2.0 Sample Application
  • [NCBC-504] - Use ForwardVBucketMap when available
  • [NCBC-511] - Provide overrideable offset for body
  • [NCBC-512] - Switch from custom BinaryConverter to IByteConverter
  • [NCBC-514] - When password is set at bucket level and OpenBucket(bucketName) is called, empty password is used.
  • [NCBC-521] - Ensure one copy of ITypeSerializer is used per client instance
  • [NCBC-526] - Remove singleton from Cluster object and provide an optional singleton cluster manager object
  • [NCBC-527] - Refactor TypeSerializer
  • [NCBC-528] - Add Close() method to ClusterHelper
  • [NCBC-529] - Remove BinaryConverter and refactor dependencies
  • [NCBC-530] - Add support for Prepend
  • [NCBC-538] - Refactor Upsert,Insert, Replace, Remove and add GetDocument methods to accept IDocument
  • [NCBC-546] - ArgumentNullException: Buffer cannot be null.
  • [NCBC-562] - Provide configurable wait timeout for operations in mid-fight.
  • [NCBC-571] - When TCP error encountered while authenticating, return appropriate response (not an auth failure per se).
  • [NCBC-579] - Make unsupported memcached methods throw NotSupportedException
  • [NCBC-581] - System.InvalidOperationException when server list is empty
  • [NCBC-600] - Update Client Client Configuration When Nodes List Changes
  • [NCBC-613] - Refactor operation result classes so that they have a common inheritence chain
  • [NCBC-618] - When bootstrapping against a cluster with a node down, bootstrapping fails (cccp)
  • [NCBC-627] - Create nuspec file for 2.0 SDK
  • [NCBC-635] - Provide better failure support for N1QL Query API
  • [NCBC-636] - Make outgoing ContractResolver force camel casing

Improvement

  • [NCBC-523] - Refactor operations to use Converter
  • [NCBC-586] - AddRef and Release on IBucket must not be public
  • [NCBC-624] - Refactor View API
  • [NCBC-632] - Make JsonSerializerSettings configurable

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.