Releases: xqrzd/kudu-client-net
0.2.0
Bugfixes and minor API improvements.
Optimizations and refactors:
- Use gRPC tools to generate C# code from proto files #233
- Scan builder API adjustments #234
- Make ExclusiveUpperBoundRaw private
- Add SetFullProjection method
- Fix issue where setting projected column indexes wouldn't apply if projected names were already set
- Small memory optimization #226
Bug fixes:
- Fix a scan bug which will read repetitive rows #229
- Update lastPropagatedTimestamp in subsequent scans #230
- Fix a rare race condition where a faulted RPC could remove a newly discovered leader master. #235
Misc:
- Update dependencies
Testing:
- Test against Kudu 1.16 #222
0.1.0
First non-preview version!
New features:
- Enable source link and deterministic builds #202
- Add simple object mapper #208
- Add scanner CountAsync() extension method #210
- Add ability to require authn/encryption #212
Optimizations and refactors:
- Remove special NaN encoding #204
- Minor cleanup and optimization in SSE key encoder #205
- Improve getting raw/binary values from ResultSet #209
- Rename GetRawFixed() to GetSpan(), which now works for all data types
- GetBinary() now returns a byte[]
- Add GetNullableBinary() for consistency
Bug fixes:
- Fix a rare race condition that could lead to a bad connection being cached indefinitely #206
Testing:
- Various minicluster improvements #217
Preview 5
Contains incremental improvements towards the first stable release.
New features:
- Support Kudu transactions #174, see https://github.com/apache/kudu/blob/master/docs/design-docs/transactions.adoc
- Add support for UPDATE_IGNORE and DELETE_IGNORE operations. This instructs the Kudu server to ignore 'row not found' errors. #163
- Expose scan projection schema on KuduScanner #161
- Expose Location and ClusterID #162
- Add support for table comments #164
- Make SASL proto name configurable #165
Optimizations and refactors:
- Scanner improvements #167, #169
- Consolidate rowwise and columnar results into a single ResultSet
- RowResult is now a
struct
instead of aref struct
, simplifying using it - Bump default scanner batch size to 8mb, improving performance
- Support serializing/deserializing scan token metadata. This reduces the load on Kudu master servers by avoiding unnecessary metadata requests #160
- Avoid overloading Kudu masters with ConnectToMaster RPCs for high-throughput applications #166
- Make KuduSessionOptions immutable and improve default session options #172, #190
Bug fixes:
- Fix GetTablesAsync() without a name filter #177
Misc:
- Add .NET 6 target and optimizations #180
- Removed unused DefaultAdminOperationTimeout configuration #159
- Improve xml comments #171
- Use compile-time logging source generation #186
- Enable nullable references #188
- Refactor Negotiator #184, #185
Testing:
Preview 4
Contains incremental improvements towards the first stable release.
New features:
Optimizations and refactors:
- Optimize key encoding #141
- Simplify and optimize
KuduPartitioner
#150 - Improve exception handling #146
Bug fixes:
Misc:
- Switch serialization library to Google.Protobuf #153
- Add .NET 5 target #140
- Use .NET threadpool scheduler #155
- Update dependencies
Testing:
- Test against Kudu 1.15
Preview 3
Contains incremental improvements towards the first stable release.
New features:
- Support columnar scan format
- Expose partitioning information through
KuduPartitioner
- Add support for scanner keep-alive
Optimizations and refactors:
- Refactor sidecar handling and scan parsing
- Add type and null checks to
RowResult.GetRawFixed()
Bug fixes:
- Make empty projection scans consistent between rowwise and columnar formats
- Fix improper use of pipelines during connection shutdown
Misc:
- Update dependencies
- Add more XML documentation comments
Testing:
- Port more tests from the Java client
Preview 2
Contains incremental improvements towards the first stable release.
New features:
- Expose stats about scan filters
- Add support for INSERT_IGNORE
- Expose callback for session exceptions
Optimizations and refactors:
KuduPredicate
type validation and performance improvements- Improve connection shutdown logic
- Add
ISecurityContext
interface, which allows testingKuduClient
without a real server - Add missing
GetBinary(name)
overload toRowResult
- Add
ToString()
toRowResult
WriteAsync()
improvements:- Throw an exception on per-row errors (eg. row already exists for inserts, doesn't exist for updates)
- Return
WriteResponse
, which contains the raw write timestamp
Bug fixes:
- Prefer tservers in the same location when multiple are local
Misc:
- Add VS Code support
- Update dependencies
Testing:
- Use Knet.Kudu.Binary for integration tests, the .NET port of the
kudu-binary
jar, https://kudu.apache.org/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html - Port more tests from the Java client (client stress test, timeout, key encoding)
Preview 1
Very first release of Knet.Kudu.Client. Get it on nuget: https://www.nuget.org/packages/Knet.Kudu.Client