Technical task
- [NCBC-225] - Docs: Recommendations for which logging level to be set during testing/staging/production and examples of messages at each level
- [NCBC-296] - Fix the test: When_Observing_A_Removed_Key_Operation_Is_Successful_With_Master_And_Replication_Persistence
- [NCBC-371] - Develop a Streaming HTTP Server Configuration Provider
- [NCBC-372] - Develop a CCCP Server Configuration Provider
- [NCBC-411] - Develop VBucket based Keymapper
- [NCBC-413] - Refactor ConfigContext so that keymapping details are contained only within the IKeyMapper impl
- [NCBC-744] - Provide implementation for positional parameters
- [NCBC-745] - Provide implemention for named parameters
- [NCBC-933] - Add support for logging interface that has no 3rd party dependencies
- [NCBC-943] - Automate cluster creation
- [NCBC-944] - Create buckets for unit tests
- [NCBC-945] - Install SSL certs
- [NCBC-946] - Create primary indexes for buckets executing N1QL queries
- [NCBC-947] - Create design document for View Queries
Sub-task
- [NCBC-1817] - Run KV tests
- [NCBC-1818] - Run Subdoc tests
- [NCBC-1819] - Run N1QL tests
- [NCBC-1820] - Run View tests
- [NCBC-1821] - Run FTS tests
- [NCBC-1822] - Run Analytics tests
- [NCBC-1823] - Configure CCCP
Bug
- [NCBC-139] - .net documentation : long values greater than 2^53 need to be stored as string
- [NCBC-260] - Improve discussion around using store versus executestore
- [NCBC-314] - Runaway worker process when cluster node shutdown - SessionState provider
- [NCBC-432] - Doc: Expand the maxPoolSize and minPoolSize description
- [NCBC-539] - ManualByteConvert.ToUInt64 returns invalid number
- [NCBC-580] - not able to openBucket after certificate uninstalled/regenerated when ClientConfiguration uses SSL, BucketConfig doesn't
- [NCBC-672] - Create LoadDocument() method to be an analog to GetDocument()
- [NCBC-803] - add raw handling of objects to the documentation
- [NCBC-813] - Add documentation for performance tuning, managing clusters and handling errors
- [NCBC-821] - Getting Couchbase .Net SDK picture is very old
- [NCBC-826] - Where is the c# beer tutorial?
- [NCBC-830] - Transcoding Dictionaries between 1.3.X and 2.X fails
- [NCBC-868] - Object disposed exception during rebound of rebalance 2 out
- [NCBC-873] - CCCP bootstrapping fails when custom ports are used
- [NCBC-910] - MemcachedBucket incorrectly uses observe cmd for Exists and ExistsAsync
- [NCBC-935] - Get from replica returns VBucketBelongsToAnotherServer error during rebalance
- [NCBC-936] - GetWithReplica returns NMV during rebalance
- [NCBC-974] - Drop in ops/s due to timeouts and unhandled exception with memcached bucket
- [NCBC-975] - unhandled object disposed exception during query workload
- [NCBC-987] - Needs a much better description of what is in 2.1
- [NCBC-1009] - Unhandled object disposed exception on the close of a worker thread
- [NCBC-1018] - Enhanced durability doesn't use the bucket's replica limit (and somehow works?)
- [NCBC-1020] - After Remove is called Exists returns true for a deleted key
- [NCBC-1028] - Bucket password and name are not being added to HTTP headers for N1QL request
- [NCBC-1029] - "creds" field not being acknowledged by server
- [NCBC-1052] - Filter NodesExt by Nodes list for active nodes during a rebalance
- [NCBC-1055] - NRE during query workload
- [NCBC-1056] - UseSsl=true throws exception with IOmultiplexing
- [NCBC-1077] - .NET Client 2.2.x does not recover from network outage (pulled cord)
- [NCBC-1088] - Synchronous get and set may return nmv back to the user
- [NCBC-1138] - CouchbaseBucket holds its own non-configurable ITypeTranscoder with a DefaultSerializer
- [NCBC-1139] - Retry for async n1ql queries
- [NCBC-1156] - Queries fail if BucketConfiguration.PoolConfiguration.ClientConfiguration is null
- [NCBC-1179] - NRE during bootstrap when using non-default ports
- [NCBC-1331] - Make ExceptionUtils.WithParams Obsolete
- [NCBC-1365] - Error with ClusterHelper - Only 'http' and 'https' schemes are allowed
- [NCBC-1372] - Couchbase dotnet SDK OSX libcurl error
- [NCBC-1395] - Opening Memcached buckets when using Nito.Async library never returns
- [NCBC-1422] - NotMyVBucket returned to application - should be a timeout
- [NCBC-1438] - Append and AppendAsync to not retry failed operations
- [NCBC-1467] - When hostname is used instead of IP in server config N1QL query fails on Docker
- [NCBC-1533] - Intermittent ServiceUnavailable when requesting unknown view
- [NCBC-1713] - Review GetFromReplica implementation
- [NCBC-1723] - Cert Auth with CouchbaseHttpClient fails with Auth Failure on .NET Full framework
- [NCBC-1769] - Async KV operations do not record decode_duration
- [NCBC-1771] - CouchbaseBucketSslTests.Test_MultiGet intermittently fails on CI
- [NCBC-1839] - Swap TimeoutException for TaskCancellationException
- [NCBC-1880] - .NET SDK fails to recover after cluster automatic failover in ASP.NET
- [NCBC-2238] - ArgumentOutOfRangeException - intermittent bug in SharedConnectionPoolTests
- [NCBC-2522] - CB Cloud: The remote name could not be resolved
- [NCBC-2649] - Bootstrapping with SDK2 and Couchbase Server 6.5 or greater fails intermittedly
- [NCBC-3074] - NRE GetDocumentFromReplicaAsync when EndPoint is null v2.7.X
Epic
- [NCBC-419] - A Linq implementation for N1QL
Story
- [NCBC-363] - Implement Client Configuration Management
- [NCBC-410] - Subclass KeyMapper for VBucket and Ketama based Key mapping
- [NCBC-418] - SASL Authentication
- [NCBC-420] - N1QL Support for ad-hoc queries
- [NCBC-435] - Create suite of Mocks/Fakes for running unit tests in isolation
- [NCBC-497] - Compression Support
- [NCBC-498] - Common Flags
- [NCBC-743] - Provide support for N1QL Prepared Statements
New Feature
- [NCBC-41] - As a .NET developer, I have an API that allows me to access all of the features of TAP so that I can make use of all of the powers of Couchbase.
- [NCBC-188] - Provide file based caching of config for stateless .NET apps
- [NCBC-312] - Client API documentation for the creation of Design Docs/Views
- [NCBC-951] - DCP support
- [NCBC-953] - Exists for Memcached buckets
- [NCBC-1068] - Native Access to 2i API
- [NCBC-1126] - Add support for binary to JSON transcoder
- [NCBC-1165] - Add support for diskless bucket
- [NCBC-1166] - Add multi-cluster capabilities
- [NCBC-1207] - Add Generic Finds Support
- [NCBC-1814] - Add LINQ support for window functions
Task
- [NCBC-13] - generating shippable artifacts
- [NCBC-350] - Develop "View Operations" component of client fir .NET 2.0 SDK
- [NCBC-367] - Design and Implement Base Operation Functionality
- [NCBC-379] - Create best practices about using .net SDK
- [NCBC-387] - Use Sandcastle (or equivalent) to Generate Auto Docs for 1.X Client
- [NCBC-402] - Data not persisted using observe when a node is removed
- [NCBC-403] - Update 2.X to use Apache Common Infrastructure Libraries for .NET
- [NCBC-422] - Check that a CCCP config's rev# is greater than the current
- [NCBC-466] - Provide a way of creating a bucket, when requested, if it doesn't exist (?)
- [NCBC-565] - Remove "verbose" logging and tracing
- [NCBC-573] - Handle case where client is in state where no node is available to handle request.
- [NCBC-628] - Create build script for 2.0 SDK
- [NCBC-771] - Add support for batch queries
- [NCBC-772] - Add support for RYOW
- [NCBC-781] - Measure and evaluate performance benefits of different implementations of multi methods
- [NCBC-812] - Logging feedback
- [NCBC-827] - Migrating to the .NET 2.x SDK
- [NCBC-841] - Refactor Connection class to use a pool of SAEA
- [NCBC-954] - Provide TimeSpan for expiry property of IDocument
- [NCBC-959] - Investigate .NET native packages for NuGet
- [NCBC-960] - Investigate changing dependencies of the SDK to DNX.
- [NCBC-996] - Add support for provisioning a cluster to ClusterManager
- [NCBC-1024] - Rename IOStrategy to ....
- [NCBC-1037] - Add a brief write up about ClusterHelper and code sample
- [NCBC-1040] - Improve bootstrapping speed by creating/initializing all nodes in parallel
- [NCBC-1043] - Add generic AddParameter method to QueryRequest
- [NCBC-1196] - Create build scripts for generating deployable packages
- [NCBC-1234] - Develop build, package, deploy scripts for .NET SDK
- [NCBC-1282] - Fix XML Comment Missing (CS1591) build warnings
- [NCBC-1296] - PlatformNotSupportedException thrown when using libcurl <= 7.29.0 and OpenSSL
- [NCBC-1431] - Implement subdoc GET_COUNT
- [NCBC-1623] - Add overload for ClusterHelper.Initialize which takes an IAuthenticator
- [NCBC-1671] - ClusterSettings is not used and empty - should it be implemented like BucketSettings?
- [NCBC-1913] - Add eviction policy to Bucket Management API
- [NCBC-2674] - LookupInBuilder fails when KEY_NOT_FOUND returned by server
- [NCBC-2695] - ListAppendAsync incorrectly confuses the timeout and expiration
- [NCBC-3051] - Default query HTTP Idle timeout to 4s
Improvement
- [NCBC-39] - Minimize key size by storing as binary array
- [NCBC-123] - Set, add, and replace should be separate methods
- [NCBC-223] - Check for SetTcpKeepAlive at runtime for Mono support
- [NCBC-258] - Improvement needed around documentation of using singleton client
- [NCBC-270] - Detailed logging information
- [NCBC-287] - workaround bad REST responses from bucket statistics
- [NCBC-297] - Documentation problem
- [NCBC-305] - Improve setup and tear down phases of unit tests
- [NCBC-385] - Multi get and touch
- [NCBC-405] - add discussion of timeout accuracy and implementation
- [NCBC-746] - Remove dependency to Json.Net in creation of ClusterInfo
- [NCBC-764] - Implement DNS-SRV
- [NCBC-815] - Investigate and improve performance of ViewClient and QueryClient HTTP requests
- [NCBC-852] - Pull redudent methods of bucket implementations into new base class: BucketBase
- [NCBC-857] - ensure error is understandable when bucket auth request fails to find a bucket
- [NCBC-858] - Make IBucket overloads that take an int expiry obsolete
- [NCBC-907] - Make retry policy pluggable/extensible - similar to Java SDK
- [NCBC-920] - Remove password/username from all logged cluster maps or configs with log levels > DEBUG
- [NCBC-921] - Refactor bootstrapping so client doesn't try CCCP by default for memcached buckets
- [NCBC-926] - Improve thoroughput when cluster node goess offline without failover
- [NCBC-937] - GitWithReplicaAsync needs retry logic similar to NCBC-934
- [NCBC-938] - Document that CRUD methods return null for the value property
- [NCBC-939] - Make the return value of CRUD operations IOperationResult (not IOperationResult<T>)
- [NCBC-942] - Automate unit test environment setup
- [NCBC-963] - Make all timeouts TimeSpan's instead of uint/int.
- [NCBC-964] - Ensure ServicePoint manager is configured w/consistent defaults wrt to other SDK's HTTP libs
- [NCBC-971] - Improve on cluster factory configuration
- [NCBC-984] - Refactor URI generation for Views, Spatial Views and N1QL queries
- [NCBC-993] - Change NuGet tags so the Couchbase SDK is first in a search for "Couchbase"
- [NCBC-995] - Improve on message returned when BootstrapException is thrown
- [NCBC-1004] - Refactor ClusterManager class so that it is DRY
- [NCBC-1023] - Implement IO multiplexing/pipelining
- [NCBC-1102] - Refactor DocumentFragment to depend upon ITypeSerializer
- [NCBC-1112] - Review and UT retry policies in IRequestExecutor impl.
- [NCBC-1123] - add timeout overloads to mutation methods
- [NCBC-1132] - OperationResult will return ClientFailure when an Auth failure
- [NCBC-1134] - Usability improvements for AtPlus
- [NCBC-1144] - override toString() on IDocumentResult and IOperationResult
- [NCBC-1145] - Improve GetFromReplica() documentation
- [NCBC-1180] - Add a non-default port option for CCCP bootstrap
- [NCBC-1231] - Consolidate SynchronizationContext usage of async in sync methods
- [NCBC-1255] - Use IDataMapper in N1QL and View streaming clients
- [NCBC-1287] - Refactor ClientConfiguration's internal implementation
- [NCBC-1338] - Investigate refactor opportunities for HTTP services (View, Query, FTS, Analytics)
- [NCBC-1401] - Add API to retrieve primary / replica hosts for given key
- [NCBC-1406] - Refactor SASL negotiation into IO service instead of config provider
- [NCBC-1519] - Enable use of MUX IO (IO multiplexing) with SSL
- [NCBC-1530] - Update CallbackFactory to use Task.Delay in async methods
- [NCBC-1534] - Investigate tuning heuristics for static pool sizes based off the minSize
- [NCBC-1537] - Allow per bucket Serializer
- [NCBC-1590] - Alternate provider type when bootstrapping
- [NCBC-1605] - Allow ICluster to be used with IoC
- [NCBC-1610] - Add common service client interface
- [NCBC-1611] - Add BucketBase class to manage common bucket behaviour
- [NCBC-1677] - Investigate FFMAP usage and if we need control setting to disable
- [NCBC-1737] - Refactor CouchbaseConfigContext
- [NCBC-1780] - Add Analytics support to Ping reports
- [NCBC-1800] - FTS client needs to support streaming results
- [NCBC-1815] - Allow Tracer implementation to be swappable via GlobalTracer
- [NCBC-1883] - Improve handling of timeouts in SDK2
- [NCBC-2172] - Nuget - need to make package use <icon> and not <iconUrl>
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.