Revision history for Kafka package
1.04 Wed June 07 2017
CHANGES:
- Added offset commit/fetch API (thanks to Greg Franklin and Damien Krotkine).
BUGFIXES:
- Fix key-value arguments validation.
- Fix MessageSet incomplete data check.
1.03 Mon May 22 2017
BUGFIXES:
- Prevent exceptions with Kafka 0.9 (where API versioning is not supported).
1.02 Fri May 12 2017
Special thanks to Damien Krotkine for API versioning implementation.
CHANGES:
- Added API versioning support with auto-detection.
- Timestamps in messages.
- Improvements in offset methods: to be able to query offsets in an
easier, simpler and more complete way (including support for
version 0 and version 1 of message formats)
- Support for array of keys in Kafka::Producer->send with array of messages.
- Use Gzip::Faster to improve compression speed.
BUGFIXES:
- Improved timeouts handling for big payloads in Kafka::IO.
1.001013 Fri Feb 24 2017
CHANGES:
- Removed support for custom CorrelationID in constructor arguments.
- Use seconds for Consumer.MaxWaitTime to make it similar to Producer.Timeout.
- Removed deprecated constants $RECEIVE_MAX_ATTEMPTS, $RECEIVE_MAX_RETRIES, $SEND_MAX_RETRIES.
- Replaced Kafka::Connection->is_server_alive, Kafka::IO->is_alive with private methods (to be
used for internal tests only).
BUGFIXES:
- Fixed incorrect timeout values in requests.
- Improved socket handling in Kafka::IO.
1.001012 Thu Nov 17 2016
BUGFIXES:
- Do not use $Kafka::SEND_MAX_ATTEMPTS in Kafka::Producer->send request
to prevent duplicates.
1.001011 Wed Nov 09 2016
CHANGES:
- Decrease tcp connections creation.
BUGFIXES:
- The dependency declaration corrected.
1.001001 Tue Jun 07 2016
CHANGES:
- Version schema changed to reflect supported Kafka version.
N.XXYYZZ where XXYY - major Kafka version N and ZZ - major and minor
versions of Perl module.
- Adapted for kafka 0.10.0.0 .
- Added new Apache Kafka server error codes.
- $MESSAGE_SIZE_OVERHEAD increased to 34.
0.9012 Thu May 26 2016
CHANGES:
- Test improvements.
BUGFIXES:
- Data::Dumper 'Sparseseen' method not used now.
0.9011 Tue May 24 2016
BUGFIXES:
- Test::More required version corrected.
0.9010 Thu Apr 28 2016
CHANGES:
- Adapted for kafka 0.9.0.1 .
BUGFIXES:
- Tests corrected.
- Require perl 5.10 core modules version.
0.9001 Tri Feb 05 2016
BUGFIXES:
- Tests corrected.
0.9000 Thu Feb 04 2016
CHANGES:
- Adapted for kafka 0.9 .
- Updated error codes to conform with Kafka documentation.
- Kafka::Producer->new does not support values of RequiredAcks > 1 anymore.
- Added 'ip_version' argument for Kafka::Connection->new and Kafka::IO->new to
force host name resolving (or IP address interpretation) in IPv4 or IPv6.
- Added error codes $ERROR_INCOMPATIBLE_HOST_IP_VERSION .
BUGFIXES:
- Incorrect osvers comparison for NetBSD.
- Remove unnecessary dependency on List::MoreUtils
(thanks to Dan Book).
0.8013 Tue Nov 24 2015
BUGFIXES:
- Packing timeval for NetBSD 6.0 and later.
- Use inet_aton instead inet_pton for IPv4 addresses.
- t/03_io_ipv6.t fixed to work with perl earlier than 5.014 .
0.8012 Mon Nov 09 2015
CHANGES:
- Support IPv6. IPv6 address in standard form.
BUGFIXES:
- Fix MANIFEST.
- Error analysis is improved in Kafka::Connection .
0.8011 Mon Aug 18 2015
CHANGES:
- Kafka::Connection connection is closed only when $connection->close method is called
explicitly.
- Kafka::IO object destruction do not close socket.
BUGFIXES:
- Added Apache Kafka server error codes:
$ERROR_LOAD_IN_PROGRESS_CODE,
$ERROR_CONSUMER_COORDINATOR_NOT_AVAILABLE_CODE,
$ERROR_NOT_COORDINATOR_FOR_CONSUMER_CODE
- $ERROR_REPLICA_NOT_AVAILABLE
error ignored according to Apache Kafka documentation
(reported by Shabnam Shamaei).
- Kafka::IO->is_alive method correctly determines server availability.
0.8010 Fri Feb 06 2015
CHANGES:
- $RECEIVE_MAX_RETRIES, $SEND_MAX_RETRIES renamed
to $RECEIVE_MAX_ATTEMPTS, $SEND_MAX_ATTEMPTS .
- Method Kafka::Connection->is_server_alive renamed to is_server_connected .
- New Kafka::Connection->is_server_alive method properly checks
for availability of Kafka server.
- Added method Kafka::Connection->get_metadata .
- Added method Kafka::Connection->exists_topic_partition .
- $Kafka::MIN_BYTES_RESPOND_HAS_DATA changed to 10.
- Testing supports Kafka version 0.8.2 .
BUGFIXES:
- Partititon cannot be negative.
- Improved reporting for ERROR_UNKNOWN_TOPIC_OR_PARTITION error.
- Receiving metadata for a new topic fixed.
0.8009 Tue Jan 13 2015
CHANGES:
- Added error $ERROR_RESPONSEMESSAGE_NOT_RECEIVED .
BUGFIXES:
- Module Kafka::IO no longer uses sigtrap
(thanks to Mark Hedges).
- Taint mode support
(reported by Hari Sekhon).
0.8008 Tue Apr 29 2014
- Support for GZIP and Snappy compression
(thanks to Colin Blower).
- 'Kafka' module extended with the following constants:
$COMPRESSION_NONE, $COMPRESSION_GZIP, $COMPRESSION_SNAPPY,
$ERROR_COMPRESSION, $ERROR_METADATA_ATTRIBUTES.
- Removed $ERROR_COMPRESSED_PAYLOAD constant.
- Added test 't/45_compression.t'.
0.8007 Fri Mar 14 2014
CHANGES:
- Kafka::Cluster adapted for kafka 0.8.1 .
0.8006 Thu Feb 20 2014
BUGFIXES:
- Corrected description of the error in Kafka::Connection.
0.8001_1 - 0.8005 Fri Dec 27 2013
CHANGES:
- t/*_io.t examines possibility of using gethostbyname( 'localhost' ) .
- Debug diagnostic and test improved.
BUGFIXES:
- 'localhost' is no longer used in the t/*_io.t .
0.8001 Tue Dec 24 2013
CHANGES:
- Improvements to error handling and tests.
- 'MaxLoggedErrors' argument is added to Kafka::Connection->new.
- Added new methods Kafka::Connection->nonfatal_errors,
Kafka::Connection->clear_nonfatals, Kafka::Internals->debug_level .
- Added error $Kafka::ERROR_SEND_NO_ACK .
- Added setting $Kafka::RECEIVE_MAX_RETRIES .
0.800_17 Fri Nov 15 2013
CHANGES:
- 'AutoCreateTopicsEnable' argument is added to Kafka::Connection->new
(thanks to Ed Silva).
0.800_16 Fri Nov 08 2013
BUGFIXES:
- Fixed problem with connecting to servers running on localhost.
0.800_15 Wed Nov 06 2013
CHANGES:
- Improvement of test t/*_io.t .
0.800_14 Thu Oct 31 2013
CHANGES:
- We use alarm internally in Kafka::IO (not Time::HiRes::alarm).
- For 'gethostbyname' operations the timeout is rounded
to the nearest greater positive integer.
0.800_8 - 0.800_13 Wed Oct 30 2013
CHANGES:
- Debugging Test t/*_io.t .
0.800_7 Mon Oct 28 2013
CHANGES:
- t/*_io.t test more ways how external alarm may interfere with internal
alarm used by Kafka::IO.
- Added to META.yml the list of the modules provided by this distribution.
0.800_6 Fri Oct 25 2013
CHANGES:
- You can disable ALARMS usage by Kafka by passing timeout => undef to
Kafka::Connection->new or Kafka::IO->new. In this case '$REQUEST_TIMEOUT'
is used for the rest of IO operations.
BUGFIXES:
- Kafka::IO->new preserves external alarms but this may delay alarm signal
delivery (thanks to Stephen Sprague).
0.800_5 Fri Oct 18 2013
CHANGES:
- Test t/??_io.t checks the external ALRM signal handler.
- Minor improvements in documentation.
0.800_4 Fri Sep 27 2013
CHANGES:
- Refactored error handling. See documentation for module Kafka::Exceptions.
Retired methods RaiseError, last_error last_errorcode.
- Added method Kafka::Connection->cluster_errors.
0.800_3 Tue Sep 17 2013
CHANGES:
- Use Try::Tiny for proper preservation of $@ .
0.800_2 Mon Sep 16 2013
BUGFIXES:
- Fixed to make it working on Perl 5.10 and over.
0.800_1 Fri Sep 06 2013
!!! This is a major upgrade that changes API. It's strongly advised to study
revised documentation and update your code where necessary !!!
CHANGES:
- Implement Kafka API ver 0.8.0 . For communication with earlier versions of Kafka
use Kafka module versions before 0.8.0 .
- Added Kafka::Connection, Kafka::Internals.
- Kafka::Mock renamed to Kafka::MockIO and moved to t/lib.
- Additional testing units (in t/lib) for the following modules:
Kafka::Cluster, Kafka::MockProtocol, Kafka::TestInternals.
- Various service scripts & configurations added in t/bin and t/config.
- Profiling scripts are added to the tools directory.
- Introducted KAFKA_BASE_DIR environment variable to specify alternative location
to Kafka base directory. Defaults to t/data.
- Updated service files needed to build the package.
0.12 Fri Mar 08 2013
CHANGES:
- Change the port used in the Kafka::Mock
0.11 Thu Feb 28 2013
CHANGES:
- Use String::CRC32 instead of Digest::CRC
0.10 Thu Feb 07 2013
CHANGES:
- 03_kafka_bench.t does not depend on previous tests
0.09 Mon Jan 14 2013
CHANGES:
- benchmark_consumer.pl and benchmark_producer.pl are moved
to directory tools
- Makefile.PL by default does not ask questions interactively
0.08 Fri Dec 21 2012
CHANGES:
- Tests reorganized
0.07 Thu Dec 18 2012
FIXES:
- Checking OS and Perl version in Makefile.PL
CPAN RT #82018: Tests hang on Windows. (reported by Alexandr Ciornii)
0.06 Wed Sep 26 2012
CHANGES:
- Refinement of calculation operation time in benchmarks
- Some improvements in tests
0.05 Thu Sep 13 2012
CHANGES:
- Mock server tests moved to 'xt' directory
0.04 Mon Sep 10 2012
CHANGES:
- Author and release tests moved to 'xt' directory
0.03 Thu Aug 30 2012
CHANGES:
- Makefile.PL modified for the use of command line
- Added control code coverage 'coverage.sh'
- Added test 't/94_fixme.t'
- Added test 't/95_critic.t'
BUGFIXES:
- Fixed version number to 'use 5.010'
0.02 Wed Jun 13 2012
CHANGES:
- Minor changes in documentation
BUGFIXES:
- Fixed Kafka::Int64 to make it working on Perl 5.12
- Disallow using 0 timeouts in Kafka::IO and Kafka::Mock
0.01 Tue Jun 12 2012
- Original version