Граф коммитов

174 Коммитов

Автор SHA1 Сообщение Дата
David.Noble@microsoft.com 43a823e9ee Added support for RntbdTransportClient metrics using Graphite 2019-07-25 13:52:31 -07:00
David.Noble@microsoft.com 80a83198cc Added RntbdMetrics.endpoints to sample the number of endpoints in use by an RntbdTransportClient. Also: optimized imports 2019-07-23 12:00:02 -07:00
David.Noble@microsoft.com 188cd290ea We now have useful metrics for direct tcp transport clients 2019-07-22 22:25:54 -07:00
David.Noble@microsoft.com eda076012f We now have useful metrics for direct tcp transport clients. TODO: fix our two gauges, neither of which is reporting numbers as expected 2019-07-22 14:14:13 -07:00
mbhaskar 6cdbc90386 Retrieving query info using new query plan retriever (#111)
* Removing proxy execution context
Retrieving query info using new query plan retriever

* Implementing PR comments

* Returning bad request for cross partition non value aggregates

* Fixing failing aggregate tests

* Fixing failing aggregate tests

* Fixing spywirecontent test

* Adding a feedoption to allow empty pages in feedresponse

* Adding licence

* Minor refactoring

* Fixing test failures

* Fixing test failures

* Queries with partitionKeyRangeIdInternal or partitionKey are routed to appropriate partition ranges

* Fixing test failures

* Implementing PR comments
2019-07-22 10:00:41 -07:00
David.Noble@microsoft.com eefdd18954 Cleaned up metrics and updated toString methods 2019-07-21 02:19:27 -07:00
David.Noble@microsoft.com 3881e2628d Cleaned up metrics and updated toString methods 2019-07-21 02:05:02 -07:00
David.Noble@microsoft.com 1c96b30401 Cleaned up metrics and updated toString methods 2019-07-21 02:04:04 -07:00
David.Noble@microsoft.com 805261b476 Added allocator-related RntbdTransportClient.Options 2019-07-17 01:46:29 -07:00
David.Noble@microsoft.com 4ee69c0f05 Added custom ByteBuf allocators and improved logging/error handling, especially in RntbdRequestManager 2019-07-17 01:28:53 -07:00
David.Noble@microsoft.com 50d86aa0e5 Updated logger message 2019-07-13 15:29:51 -07:00
David.Noble@microsoft.com 95e147cc96 Enhanced logging 2019-07-13 10:18:04 -07:00
David.Noble@microsoft.com 9c46eaa1d4 Removed an unnecessary logger message 2019-07-13 09:17:00 -07:00
David.Noble@microsoft.com d0eb46e250 Revised RntbdClientChannelPool.AcquireListener.operationComplete which was causing an illegal state condition in the call stack of RntbdRequestManager.exceptionCaught. The condition was seen to occur quickly on fast links and slowly on slow links. 2019-07-13 09:04:58 -07:00
David.Noble@microsoft.com bf1e841b95 Corrected/added code comments 2019-07-12 12:02:43 -07:00
David.Noble@microsoft.com ad4cf3d64d Revised RntbdClinetChannelPool.AcquireListener because the ReadMyWritesConsistencyTest showed that sometimes a channel will close while we're completing this operation 2019-07-11 21:57:05 -07:00
David.Noble@microsoft.com 6c079d5822 Updated ${version} to ${project.version} because the former is deprecated 2019-07-11 17:24:34 -07:00
David.Noble@microsoft.com f864b2e23f Corrected an ommission that was causing azure-cosmosdb-direct:2.5.1 to be brought in by test code and tidied the ReadMyWriteConsistencyTest code a little 2019-07-11 16:37:51 -07:00
David.Noble@microsoft.com 1e446e79f8 Removed extraneous code (RntbdClientChannelPool1.java), updated some import statements, and corrected some code comments 2019-07-11 10:55:11 -07:00
David.Noble@microsoft.com 5e1efea21e Merge branch 'master' of https://github.com/Azure/azure-cosmosdb-java into danoble/rntbd/issue-119 2019-07-10 16:57:30 -07:00
David.Noble@microsoft.com fc8715953b Optimized imports 2019-07-09 20:06:07 -07:00
David.Noble@microsoft.com d356a54c64 Addressed a Json serialization issue and bumped the version number to 2.5.2-SNAPSHOT 2019-07-09 17:03:19 -07:00
David.Noble@microsoft.com c60e5e560a Tweaks for correctness with confirmation that read/write latency benchmarks look good on azure-based test environments: appserver-lin-1 (high-powered) and appserver-lin-2 (Standard_DS2_3) Azure VMs 2019-07-04 22:56:30 -07:00
David.Noble@microsoft.com 731d2987b8 Refinements aimed at improving logging in RntbdClientChannelHealthChecker and a rename 2019-07-04 15:45:15 -07:00
David.Noble@microsoft.com 3d79f59d6c Optimized imports 2019-07-04 01:09:58 -07:00
David.Noble@microsoft.com 30296ddd2b Improved logging and tidied code 2019-07-04 01:08:34 -07:00
David.Noble@microsoft.com 349990a5e4 Added health checker to RntbdRequestManager and revised RntbdClientChannelHandler.initChannel method to support this 2019-07-03 14:56:40 -07:00
David.Noble@microsoft.com 5fe7d6b47a Updated comments and logger messages (mostly) 2019-06-28 22:43:12 -07:00
mbhaskar 2ba84a67a3 2.5.1 (#219) 2019-06-28 11:47:19 -07:00
David.Noble@microsoft.com 3f05c85a85 Added RntbdClientChannelHealthChecker.toString and RntbdClientChannelHealthChecker.Timestamps.toString 2019-06-27 23:19:58 -07:00
David.Noble@microsoft.com f859adad6e Refined RntbdClientChannelHealthChecker.Timestampms for multithreaded access (from a channel and from the pool to which it belongs) 2019-06-27 22:47:13 -07:00
David.Noble@microsoft.com 20a0325d1b Added comments 2019-06-27 21:09:00 -07:00
David.Noble@microsoft.com fac692a945 Added copyright notice 2019-06-27 20:59:06 -07:00
David.Noble@microsoft.com baff695354 Wired up RntbdClientChannelHealthChecker 2019-06-27 20:45:15 -07:00
David.Noble@microsoft.com 282e7dbe3e We now ensure with a health check request that a newly created channel has requested an RntbdContext. Confirmed: direct and e2e test groups pass locally in Direct TCP mode. 2019-06-26 23:15:41 -07:00
David.Noble@microsoft.com 1b4983db34 We now ensure with a health check request that a newly created channel has requested an RntbdContext. Confirmed: direct and e2e test groups pass locally in Direct TCP mode. 2019-06-26 19:13:43 -07:00
David.Noble@microsoft.com 7b19b78323 Checkpoint for safe keeping 2019-06-25 20:08:39 -07:00
Christopher Anderson 217b267703
2.5.0 (#206)
* 2.5.0

* Add release prep antrun goal
2019-06-25 17:50:09 -07:00
Christopher Anderson cc5d007aa7
Fix for global strong retry (fixed merge conflicts) (#196)
* draft fix for global strong retry

* draft fix for global strong retry
* improved test setup time by doing bulk insert in parallel instead of serial

* bumped timeout values

* debugging

* cleanup

* added e2e test profile, relaxed replica counting test

* read writes test

* tune test

* retry analyzer renamed

* fixed test

* fixed test

* fix tests

* travis fix

* Removed skip exception for TCP as the test is disabled for all protocols for now

* update

* try/catch for diagnostic string

* fixed compilation error

* fixed test

* fixed test
2019-06-25 16:44:02 -07:00
David.Noble@microsoft.com d960282b5b Checkpoint for safe keeping 2019-06-25 12:27:47 -07:00
David.Noble@microsoft.com 27be82746e Checkpoint for safe keeping 2019-06-25 12:20:15 -07:00
David.Noble@microsoft.com a13b00117b Checkpoint for safe keeping 2019-06-25 11:47:35 -07:00
David.Noble@microsoft.com cd4ffe362c Checkpoint for safe keeping 2019-06-25 11:36:23 -07:00
David.Noble@microsoft.com a31e65bb0a Checkpoint for safe keeping 2019-06-24 23:16:35 -07:00
David.Noble@microsoft.com bf28547043 Checkpoint for safe keeping 2019-06-24 23:07:42 -07:00
David Noble 32767b0974 Addressed some error handling ommissions in RntbdRequestManager and verified locally that long test suite passes 2019-06-06 10:19:48 -07:00
David Noble 5b145bcd71 Direct TCP: Use transport request id instead of activity id to correlate requests with responses (#137)
* WIP (Work In Progress) Merged internal direct implementation to open source branch

* Added localhost to test configurations

* Safe Deleting collection after test case is done

* Trying smaller set of collections

* Reverting it back to normal

* Merging latest develop branch from internal code base

* Merge RNTBD work-in-progress from internal repository

* Fixed some request timer issues

* Fixed some request timer issues

* Fixed some request timer issues

* FakeEndpoint is now RntbdRequestTimer-capable

* Added a blank line and confirmed that all unit tests pass

* Renamed RntbdTransportClient.Options.maxChannels as RntbdTransportClient.Options.maxChannelsPerEndpoint and reduced its default from from 65535 to 10. Impact: Improved reliability and performance.

* Renamed RntbdRequestManager.PendingRequest as RntbdRequestRecord and improved error handling in RntbdRequestManager.write to ensure correct retry behavior in the layer above RntbdTransportClient.

* RntbdRequestRecord is now a CompletableFuture<StoreResponse>. RntbdServiceEndpoint instances now write RntbdRequestRecord instances. The result: improved encapsulation and code readability.

* Code tweaks for correctness

* Refactored RntbdTransportClient.Options for improved usability.

* Refactored for improved diagnstics, testability, and usability.

* Improved request timeout error message

* Marked some classes as final

* Improved metrics and logger.debug messages. Also: confirmed direct and simple (fast), and unit tests pass locally

* Added and updated dependencies (benchmark and direct-impl) on metrics

* Corrected merge issues

* Improved RntbdMetrics and corrected some deficiencies in RntbdClientChannelPool

* Improved RntbdMetrics and corrected some deficiencies in RntbdClientChannelPool

* We now report illegal state instead of throwing an illegal state exception in two cases which may be at the root of a failure related to Read/WriteTimeoutExceptions

* Corrected an error message

* Corrected an error message

* Addressed some error recovery/reporting issues

* Added RntbdTransportClient specification

* Tweaked error handling and removed some dead code

* Tweaked error handling and removed some dead code

* Tweaked error handling and removed some dead code

* Tweaked error handling

* Tidied top-level pom.xml

* Enabled back-pressure tests for Direct TCP and removed some test TODOs. In the process: found a ByteBuf memory leak and found and fixed a NullPointerException in RntbdClientChannelPool. Also: Improved channel load balancing algorithm a little. See the changes to RntbdClientChannelPool.

* Minor cleanup (e.g., removed unused imports and unnecessary uses of 'throws' signatures)

* Tweaked logging

* Added call to SslHandler.closeOutbound to ensure that all ByteBuf and SslEngine resources are released when a channel closes exceptionally

* Upgraded jackson-databind version to 2.9.9 because Snyk-Dependency-Vulnerabilities-Detection-SQL-RxJava complained that 2.9.8 presents a vulnerability

* Revised error handling in RntbdRequestManager.channelRead

* Improvements to error/issue reporting

* Tweaked a message

* Removed some debug checks that are no longer required

* Revised a loop and added a logger message for use as a breakpoint

* tweaks

* tweaks

* tweaks

* tweaks

* tweaks

* tweaks

* tweaks

* tweaks

* Tweaked completion handlers

* We now return an RntbdRequestRecord, not a Completion stage, to RntbdTransportClient. This improves our ability to track requests.

* Tweaks

* Unit tests pass

* RntbdReporter now protects against a class initialization error that may occur when a Java Security Manager prohibites access to the class's protection domain

* Tweaks for code clarity and improved error messages

* Channel pool refinements

* Channel pool and request manager refinements. Confirmed: fast, long, and unit tests pass locally.

* Channel pool and request manager refinements. Confirmed: fast, long, and unit tests pass locally.

* Added fix for Windows to RntbdReporter.java

* Added fix for Windows to RntbdReporter.java

* Bumped timeout interval to avoid an intermittent CI issue on Emulator runs.

* Attempt to remove dependency security vulnerability described here: https://snyk.io/vuln/SNYK-JAVA-COMMONSBEANUTILS-30077

* Updated dependency on netty-tcnative from 2.0.20.Final to 2.0.25.Final

* Resolved issue #140

* Resolved issue #140

* Removed unused dependency

* Address issue #163

* Address backpressure test failures by updating the definition of RntbdRequestManager.isServiceable

* Address backpressure test failures by updating the definition of RntbdRequestManager.isServiceable
2019-06-06 09:39:24 -07:00
David Noble 7cdb9117df Optimized imports 2019-06-05 18:52:43 -07:00
David Noble 21e6775974 RntbdRequestManager tweaks 2019-06-05 10:44:35 -07:00
David Noble e5d9995777 Address IllegalStateException isssue that is produced when a peer resets a connection 2019-06-04 14:21:53 -07:00
David Noble 3d0b879dc6 Test updates 2019-05-31 10:35:04 -07:00
David Noble b0466b98ab Renamed RntbdToken.getType as RntbdToken.getTokenType and implemented RntbdToken.getValueType for type checking and diagnostics further up the stack. 2019-05-30 10:27:59 -07:00
David Noble eef305d316 Tweaks 2019-05-29 12:01:48 -07:00
David Noble ca68455a5b Resolved issue #140 2019-05-29 11:31:50 -07:00
Mohammad Derakhshani 43206a5309 improve test timeout 2019-05-28 22:17:23 -07:00
David Noble 771552d932 JavaDoc update 2019-05-27 19:59:00 -07:00
David Noble a8fad7feac Error handling improvements 2019-05-27 19:35:06 -07:00
David Noble 32d750c0c3 Tweaks in prep for introducing RntbdTransportClient health checks 2019-05-27 11:50:56 -07:00
David Noble f1040fc24d Attempt to remove dependency security vulnerability described here: https://snyk.io/vuln/SNYK-JAVA-COMMONSBEANUTILS-30077 2019-05-26 17:53:11 -07:00
David Noble 857730eace Bumped timeout interval to avoid an intermittent CI issue on Emulator runs. 2019-05-26 15:10:10 -07:00
David Noble 8210660484 Added fix for Windows to RntbdReporter.java 2019-05-26 13:41:05 -07:00
David Noble 46d35c52f9 Added fix for Windows to RntbdReporter.java 2019-05-26 12:41:41 -07:00
David Noble 12238f1ff8 Channel pool and request manager refinements. Confirmed: fast, long, and unit tests pass locally. 2019-05-25 23:55:15 -07:00
David Noble bb897f7291 Channel pool and request manager refinements. Confirmed: fast, long, and unit tests pass locally. 2019-05-25 23:30:05 -07:00
David Noble 2e3837b125 Channel pool refinements 2019-05-25 18:12:00 -07:00
David Noble 022a537b19 Tweaks for code clarity and improved error messages 2019-05-24 21:22:56 -07:00
David Noble 8e5539c4d6 RntbdReporter now protects against a class initialization error that may occur when a Java Security Manager prohibites access to the class's protection domain 2019-05-24 11:28:24 -07:00
David Noble 2cbb25ddc3 Unit tests pass 2019-05-23 18:22:12 -07:00
David Noble 77ee0481e3 Tweaks 2019-05-23 14:42:00 -07:00
David Noble f73bce16e9 We now return an RntbdRequestRecord, not a Completion stage, to RntbdTransportClient. This improves our ability to track requests. 2019-05-23 12:01:06 -07:00
David Noble 6e7ba1eb0c Tweaked completion handlers 2019-05-23 11:36:32 -07:00
David Noble 81547d00de tweaks 2019-05-22 21:43:30 -07:00
David Noble e92dcddbcb tweaks 2019-05-22 21:23:49 -07:00
David Noble c914630e68 tweaks 2019-05-22 21:20:24 -07:00
David Noble 874824087a tweaks 2019-05-22 21:04:06 -07:00
David Noble 1ca5b78771 tweaks 2019-05-22 21:02:08 -07:00
David Noble ac5270569a tweaks 2019-05-22 20:54:35 -07:00
David Noble 24b5ba9691 tweaks 2019-05-22 20:08:33 -07:00
David Noble be8bd44d92 tweaks 2019-05-22 19:44:50 -07:00
David Noble 80e8a55104 Revised a loop and added a logger message for use as a breakpoint 2019-05-22 19:21:17 -07:00
David Noble 2daaf644ca Removed some debug checks that are no longer required 2019-05-22 18:44:02 -07:00
David Noble 1d5613c05f Tweaked a message 2019-05-22 14:23:36 -07:00
David Noble ec7d688ae5 Improvements to error/issue reporting 2019-05-22 14:18:03 -07:00
David Noble 8282faf169 Revised error handling in RntbdRequestManager.channelRead 2019-05-22 11:29:22 -07:00
David Noble b94ec1f899 Added call to SslHandler.closeOutbound to ensure that all ByteBuf and SslEngine resources are released when a channel closes exceptionally 2019-05-20 15:45:16 -07:00
David Noble 4bd613b809 Add load-balanced channel support to RntbdTransportClient (#117)
* WIP (Work In Progress) Merged internal direct implementation to open source branch

* Added localhost to test configurations

* Safe Deleting collection after test case is done

* Trying smaller set of collections

* Reverting it back to normal

* Merging latest develop branch from internal code base

* Merge RNTBD work-in-progress from internal repository

* Fixed some request timer issues

* Fixed some request timer issues

* Fixed some request timer issues

* FakeEndpoint is now RntbdRequestTimer-capable

* Added a blank line and confirmed that all unit tests pass

* Renamed RntbdTransportClient.Options.maxChannels as RntbdTransportClient.Options.maxChannelsPerEndpoint and reduced its default from from 65535 to 10. Impact: Improved reliability and performance.

* Renamed RntbdRequestManager.PendingRequest as RntbdRequestRecord and improved error handling in RntbdRequestManager.write to ensure correct retry behavior in the layer above RntbdTransportClient.

* RntbdRequestRecord is now a CompletableFuture<StoreResponse>. RntbdServiceEndpoint instances now write RntbdRequestRecord instances. The result: improved encapsulation and code readability.

* Code tweaks for correctness

* Refactored RntbdTransportClient.Options for improved usability.

* Refactored for improved diagnstics, testability, and usability.

* Improved request timeout error message

* Marked some classes as final

* Improved metrics and logger.debug messages. Also: confirmed direct and simple (fast), and unit tests pass locally

* Added and updated dependencies (benchmark and direct-impl) on metrics

* Corrected merge issues

* Improved RntbdMetrics and corrected some deficiencies in RntbdClientChannelPool

* Improved RntbdMetrics and corrected some deficiencies in RntbdClientChannelPool

* We now report illegal state instead of throwing an illegal state exception in two cases which may be at the root of a failure related to Read/WriteTimeoutExceptions

* Corrected an error message

* Corrected an error message

* Addressed some error recovery/reporting issues

* Added RntbdTransportClient specification

* Tweaked error handling and removed some dead code

* Tweaked error handling and removed some dead code

* Tweaked error handling and removed some dead code

* Tweaked error handling

* Tidied top-level pom.xml
2019-05-20 15:05:07 -07:00
David Noble 1325d007cd Tweaked logging 2019-05-20 10:23:21 -07:00
David Noble cf9f85d521 Minor cleanup (e.g., removed unused imports and unnecessary uses of 'throws' signatures) 2019-05-19 19:20:10 -07:00
David Noble 9d82c72254 Enabled back-pressure tests for Direct TCP and removed some test TODOs. In the process: found a ByteBuf memory leak and found and fixed a NullPointerException in RntbdClientChannelPool. Also: Improved channel load balancing algorithm a little. See the changes to RntbdClientChannelPool. 2019-05-19 18:51:14 -07:00
David Noble 9012e9f7cc Merge branch 'master' of https://github.com/Azure/azure-cosmosdb-java into users/danoble/rntbd-A 2019-05-13 19:46:47 -07:00
David Noble 5cd7aa1242 Tweaked error handling 2019-05-12 22:06:59 -07:00
David Noble c2dafe4e5f Tweaked error handling and removed some dead code 2019-05-12 21:51:39 -07:00
David Noble d490986d4a Tweaked error handling and removed some dead code 2019-05-12 21:38:07 -07:00
David Noble b0802e5bcb Tweaked error handling and removed some dead code 2019-05-12 20:28:36 -07:00
David Noble dc6f743801 Added RntbdTransportClient specification 2019-05-12 12:14:21 -07:00
David Noble 605f5c8ed2 Addressed some error recovery/reporting issues 2019-05-11 22:10:26 -07:00
David Noble 2e0a06c1c5 Corrected an error message 2019-05-08 14:24:38 -07:00
David Noble 0070ddec65 Corrected an error message 2019-05-08 14:14:34 -07:00
David Noble aaea40f3dc We now report illegal state instead of throwing an illegal state exception in two cases which may be at the root of a failure related to Read/WriteTimeoutExceptions 2019-05-08 11:55:57 -07:00
David Noble 0d79a3e517 Improved RntbdMetrics and corrected some deficiencies in RntbdClientChannelPool 2019-05-07 16:25:34 -07:00