Commit graph

45 commits

Author SHA1 Message Date
Justin Pfifer
2967f2a18c Reduce Throttling Error Reports (#140)
* Reduce Throttling Error Reports

Only report a throttling error if their are 6 consecutive throttles.
Moved the logging of throttling messages to the throttling
reporter.
2017-02-17 09:52:47 -08:00
Justin Pfifer
31615a5d18 Handle No Lease, and Lease Loss in requestShutdown. (#139)
* Handle No Lease, and Lease Loss in requestShutdown.

Ensure that the Worker is shutdown if there are no leases.  Handle the
case where a lease is lost during the notification process.

* Add some more comments around possible race conditions.
2017-02-17 09:32:26 -08:00
Pfifer, Justin
037e886a76 Advance Version to 1.7.4-SNAPSHOT
Advance the version to 1.7.4-SNAPSHOT in preparation of the next release.
2017-02-17 09:09:02 -08:00
Justin Pfifer
3d18e484cf Release 1.7.3 of the Amazon Kinesis Client (#131)
* Upgrade to the newest AWS Java SDK.
  * Issue awslabs/amazon-kinesis-client-python#27
  * PR #126
  * PR #125
* Added a direct dependency on commons-logging.
  * Issue #123
  * PR #124
* Make ShardInfo public to allow for custom ShardPrioritization strategies.
  * Issue #120
  * PR #127
2017-01-20 09:05:54 -08:00
Justin Pfifer
a7b16b49d9 Make ShardInfo Public, and Update Documentation (#127)
Made the ShardInfo class public, and updated the documentation for a
number of the properties.

This will allow users to implement custom shard prioritization
strategies.

Fixes:
Issue #120
2017-01-09 08:11:01 -08:00
Justin Pfifer
5d045521ce Update MultiLangDaemon to Support New Features (#118)
Updated the MultiLangDaemon to use the v2 record processor interfaces, and added features to messages passed to MultiLangDaemon clients.

These changes will require updates to the various MultiLangDaemon clients. The changes for the Python version are complete, and other versions will be updated later.
2016-11-07 11:38:04 -08:00
Justin Pfifer
26e67a33b1 Allow for a Graceful Shutdown of the Worker (#109)
Add a new method to the worker requestShutdown that allows the worker to
gracefully shutdown all record processors.  The graceful shutdown gives
the record processors a last chance to checkpoint before they're
terminated.

To use these new features the record processor must implement
IShutdownnotificationaware.
2016-10-26 12:57:50 -07:00
Josh
db314b970b Allow for credential providers with basic arg types (#99)
* Add support for configuring DynamoDB endpoint

Adding a new field named `dynamoDBEndpoint` to the .properties file
that gets passed into the KCL multi-lang daemon. We need this ability
to point the KCL worker at a local instance of DynamoDB rather than in
AWS.

* Added the ability to use AWSCredentialsProvider's that require non-empty contructor args e.g. ProfileCredentialsProvider where you provide the profile name to use from your ~/.aws/credentials file

* Created a constructor without the dynamoDBEndpoint argument i.e. same arguments before the dynamo change, for backwards compatibility
2016-10-14 10:05:44 -07:00
Justin Pfifer
56c59f685a Allow Disabling Shard Sync at Startup (#102)
Allow disabling the shard sync at startup if the lease table already
contains leases.  This will reduce the startup load for larger streams
when restarted the Kinesis application.
2016-10-14 08:11:32 -07:00
Randy Findley
5c497d87a9 Feature/multiple cred providers (#111)
* Add ability to specify different credential providers for Kinesis, DynamoDB, and CloudWatch.  This is needed when accessing a cross-account Kineses stream using an assumed role.

* Fix copy/paste mistake.

* Update tests.

Thanks to rgfindl@
2016-10-14 08:10:38 -07:00
Pfifer, Justin
51663f96c7 Move Version to Next Development Version
Adjusted the version to 1.7.1-SNAPSHOT for current development.
2016-09-01 07:36:20 -07:00
Pfifer, Justin
4cbb6d851e Prevent Spurious Info Message on getIterator
Clean up check for ShardIteratorType to prevent emitting a spurious message for every call to GetIterator
Add missing KinesisProxyTest, and add 3 new tests for getIterator.
2016-08-22 08:26:22 -07:00
Pfifer, Justin
6ea3c0f8dd Don't Use Checkpoint for Equality in ShardInfo
Don't include checkpoint in hashCode/equality for ShardInfo, since it
changes. Checkpointing would cause the Worker to recreate the
ShardConsumer.  Add unit tests that verify the equality constraints.

Remove the equality test for checkpoint from ShardInfoTests.  Nothing
appears to rely on the checkpoint being part of ShardInfo.

Fix WorkerTest broken in overzealous simplification.
2016-08-17 14:46:51 -07:00
Pfifer, Justin
85b6b9f151 Allow Prioritization of Parent Shard Tasks
Added a new interface that allows the worker to prioritize which lease
assignment it will work on next.  When using the
ParentsFirstshardprioritization the worker will select parents for
processing before selecting children.  This will prevent ShardConsumers
from spending time sleeping in the WAITING_ON_PARENT_SHARDS state.
2016-08-17 07:45:33 -07:00
Justin Pfifer
33e37ef10a Merge pull request #94 from pfifer/time-based-iterators
Added Support for Time based iterators
2016-08-11 12:46:19 -07:00
Justin Pfifer
18fc581ceb Merge pull request #93 from pfifer/master
Move to Snapshot Version Number for Next Release
2016-08-11 12:46:10 -07:00
Justin Pfifer
bdab058394 Merge pull request #44 from raphaelfeng/master
Fix a typo in the comment of KinesisClientLibConfiguration
2016-08-11 09:54:14 -07:00
Pfifer, Justin
aa47fce30b Added Time Based Iterator Support
Added support for time based iterators.  Time based iterators are only
used if there is no current checkpoint for that shard, otherwise the
sequence number of the checkpoint is used.
2016-08-11 09:20:25 -07:00
Pfifer, Justin
38e2adb389 Move to snapshot for next release which will be 1.7.0 2016-08-11 08:41:39 -07:00
Pfifer, Justin
41832de928 Version 1.6.5 of the Amazon Kinesis Client Library 2016-07-25 12:38:54 -07:00
Pfifer, Justin
8fc5dd5862 Check if Table Exists Before Creation
Attempt to see if the lease table exists before attempting to create it.

Related/Fixes
PR#67 - https://github.com/awslabs/amazon-kinesis-client/pull/67
2016-07-21 13:42:01 -07:00
Justin Pfifer
2104f358c6 Merge pull request #86 from zdjohn/master
expose approximateArrivalTimestamp from JsonFriendlyRecord
2016-07-21 09:58:58 -07:00
Justin Pfifer
d695c0ab80 Merge pull request #84 from rankinc/lease-renewal-threads
Always shutdown leaseRenewalThreadpool on exit.
2016-07-21 09:58:26 -07:00
Justin Pfifer
c936b63808 Merge pull request #82 from rankinc/shutdown-cloudwatch-metrics
Join metrics publishing thread when shutting factory down.
2016-07-21 09:57:57 -07:00
Pfifer, Justin
586e97405e Fix Race Condition on Worker Test
The test 'testWorkerForcefulShutdown' was using Thread.sleep() to create
the conditions for an interrupted state.  It was possible for the test
to take enough time for the sleep to actually exit before the interrupt
was sent.  This would cause the test to fail.  Changing to a pair of
sempahores ensures that the test record processor will remain blocked
for the expected amount of time.
2016-07-21 08:14:20 -07:00
Pfifer, Justin
2bf45eafda Merge Changes for PR#61
Merge, and slight adjustment, of
https://github.com/awslabs/amazon-kinesis-client/pull/61.

This allows configuration to explicitly set the name of the lease
table.  The table name defaults to the application name which is the
current behavior.
2016-07-21 07:08:13 -07:00
Pfifer, Justin
33cec94530 Added Unit, and Integration Tests
Added unit tests for many of the classes in the client.  Added new
dependencies for the unit tests to the POM file.  Unit tests can be
executed the `surefire:test` goal, and are executed during the test phase.

Added integration tests for the client.  The tests require access to
credentials that can interact with Kinesis, and DynamoDB.  The
integration tests can be run by executing the
`failsafe:integration-test` goal, or are run as part of the
integration-test phase

**Resources in the integration tests are not currently released on
completion of the integration tests.**
2016-07-20 12:58:43 -07:00
Pfifer, Justin
dd14bac4e3 'Version 1.6.4 of the Amazon Kinesis Client Library' 2016-07-07 13:28:18 -07:00
zdjohn
504f865a86 expose approximateArrivalTimestamp from JsonFriendlyRecord 2016-07-01 23:32:13 +10:00
Chris Rankin
6647b4b642 Always shutdown leaseRenewalThreadpool on exit. 2016-06-29 10:52:54 +01:00
Chris Rankin
f4849baa42 Join metrics publishing thread when shutting factory down. 2016-06-27 22:47:48 +01:00
Gosalia, Manan
6d3ffff870 Version 1.6.3 of the Amazon Kinesis Client Library 2016-05-12 12:37:13 -07:00
Gosalia, Manan
74c259ca11 Version 1.6.2 of the Amazon Kinesis Client Library 2016-03-23 12:23:40 -07:00
Raphael Feng
d24d936d9a Fix a typo in the comment of KinesisClientLibConfiguration
Change "this msy be set to a higher number" to "this may be set to a higher number"
2015-10-07 17:06:43 -07:00
Gosalia, Manan
c6e393c13e Version 1.6.1 of the Amazon Kinesis Client Library 2015-09-23 14:00:34 -07:00
Deng
97e606ffeb Version 1.6.0 of the Amazon Kinesis Client Library 2015-08-03 11:21:40 -07:00
Gosalia, Manan
b596a0223e Version 1.5.1 of the Amazon Kinesis Client Library 2015-07-20 12:57:38 -07:00
Gosalia, Manan
850db1a3da Version 1.5.0 of the Amazon Kinesis Client Library 2015-07-09 11:18:09 -07:00
Deng
4dfc17d04a Version 1.4.0 of the Amazon Kinesis Client Library 2015-06-02 11:53:00 -07:00
Dosani, Adnan
1861f12db7 Version 1.3.0 of the Amazon Kinesis Client Library
A new metric called "MillisBehindLatest", which tracks how far
consumers are from real time, is now uploaded to CloudWatch.
2015-05-22 02:09:47 -07:00
Kurtis Norwood
0fc90ff787 'Version 1.2.1 of the Amazon Kinesis Client Library' 2015-01-26 14:18:35 -08:00
Kurtis Norwood
73ac2c0e25 'Version 1.2.0 of the Amazon Kinesis Client Library' 2014-10-21 11:28:58 -07:00
Umesh Kumar
50000086e3 'Version 1.1.1 of the Amazon Kinesis Client Library' 2014-09-11 16:40:44 +00:00
Gaurav Ghare
13aad26a80 'Version 1.1.0 of the Amazon Kinesis Client Library' 2014-06-30 12:18:58 -07:00
Gaurav Ghare
ce9054cb1b 'Version 1.0.0 of the Amazon Kinesis Client Library' 2013-12-16 18:07:34 -08:00