Skip to content

Releases: sogou/workflow

workflow v0.11.3

14 Mar 14:36
Compare
Choose a tag to compare

New Features

  • Support UDP server.
  • Enable erasing http message's header.

Improvements

  • Optimize JSON parsing.
  • Support specifying server's transport layer protocol (TCP, UDP, SCTP).
  • Reduce default DNS cache ttl.
  • Kafka client supports set_offset_timestamp for KafkaToppar in automatic mode.

Bug Fixes

  • Fix dead lock bug when upstream referring to a host name.
  • Fix some kafka client little problems.

workflow v0.11.2

03 Jan 09:25
Compare
Choose a tag to compare

New Features

  • Add watch_timeout for network task.
  • Add address_family for endpoint params. Enable users to specify target's IP address family, including DNS server.
  • Add 'guard' task wrapper for global non-block locking.
  • Reduce max encoding IO vectors from 8192 to 2048 and reduce 96KB stack using.

Improvements

  • Optimize named timer's speed. About 3 times faster.
  • Reduce light-weighted thread task's overhead.
  • Optimize DNS resolving a lot. Reduce redundant DNS requests when querying a single host name parallelly.
  • Optimize JSON parser when parsing JSON numbers.
  • Simpify poller code and optimize timeout checking.

Bug Fixes

  • Fix kafka client bug when enable retry.

workflow v0.11.1

01 Nov 08:35
Compare
Choose a tag to compare

New Features

  • Add cancelable timer. You may name a timer and cancel by name.
  • Add named mailbox task. You can send message to a mailbox task by it's name.
  • Add WFFacilities::ReplyGuard as an alternive way to implement asynchronous server.
  • Support kafka client over TLS.
  • Support redis username for redis server 6.0.

Impovements

  • Refactor named task's implementation to make it faster.
  • Avoid stack overflow when running out of file discriptors.
  • Optimize JSON parser by parsing JSON number manually. About 3 times faster than 'strtod()'.

Bug Fixes:

  • Fix WFMySQLConnection crash bug when running multiple tasks concorrently.
  • Fix kafka authentication bug by encoding for kafka SASL username and password.
  • Fix kafka client bug that does not retry.
  • Fix bug of 'WFTaskFactory::signal_by_name()' with 'max'.

Incompatible changes

  • Timed thread/go task's state in callback was changed to WFT_STATE_SYS_ERROR with error ETIMEDOUT when timeout. The original state was WFT_STATE_ABORTED. Please check timeout by using 'if (task->get_state() != WFT_STATE_SUCCESS)', which is compatible with both behaviors.
  • Remove WFMultiThreadTask.

workflow v0.10.9

04 Sep 12:29
d60e0b5
Compare
Choose a tag to compare

New Features

  • Add WFNetworkTask::closed() for checking if server task's connection was closed.
  • Add TLVMessage to simplify implementing self-defined protocols.
  • Add interfaces to enable getting HttpMessage's output body.

Improvements

  • Correct server task's noreply() behavior by closing connection earlier at origial reply time.
  • Optimize MySQL parser.

Bug Fixes

  • Fix MySQL EBADMSG error by fixing the bug when parsing OK packet.
  • Fix MySQL bug when a trasaction's connection reset.

workflow v0.10.8

06 Jul 09:35
9633d58
Compare
Choose a tag to compare

New Features

  • Add global setting fio_max_events.
  • Add more algorithm tasks.
  • Enable users to signal a maximum number of named conditional.

Improvements

  • Make WFServerBase::create_listen_fd() protected.
  • Enable users to subclass WFHttpServerTask.
  • Optimize kafka task to reduce memory use when all brokers down.

Bug Fixes

  • Crash when multiple processes use file IO task.

workflow v0.10.7

05 May 15:00
baba965
Compare
Choose a tag to compare

New Features

  • Support series specific data by deriving SeriesWork
  • Support obtaining series' parallel task that it belong to
  • Poller supports 'recvfrom' operation

Improvements

  • Optimize SSLWrapper
  • Optimize kafka client's speed
  • Simplify WFMailboxTask
  • 'listen' function's backlog at least 4096

Bug Fixes

  • Fix kafka client bug when cgroup is written concurrently
  • Fix kafka client sending extra bytes bug
  • Fix kafka throttle_time bug when the server is under version 3
  • Fix URI parser by when parsing imcomplete IPv6 host name

workflow v0.10.6

24 Feb 17:39
Compare
Choose a tag to compare

New Features

  • Fully support MySQL 8 sha256_password and caching_sha2_password authentication plugin!

Improvements

  • Removed all OpenSSL 3.0 deprecated crypto functions.
  • Use FVN-1a hash to generate communication target's key, better performance and lower collision rate.
  • Make DNS request IDs random.
  • Improve xmake.
  • Improve CI.

Bug Fixes

  • Fix Kafka client's bug when the 'kafka' scheme is not all lower case.

workflow v0.10.5

03 Jan 18:46
Compare
Choose a tag to compare

New Features

  • Support xmake
  • More JSON building interfaces

Improvements

  • Optimize communicator for speed
  • Replace all MD5 with SHA1 for better speed
  • Optimize SSL server verifying clients interface

Bug Fixes

  • Fix endpoint params problem when upstreams share an endpoint
  • Fix kafka client double free bug
  • DNS request avoids zero request ID to be compatible with some DNS server
  • Fix JSON parser bug when parsing object's name

workflow v0.10.4

04 Nov 16:12
83d6346
Compare
Choose a tag to compare

New Features

  • Add WFTaskFactory::reset_go_task to enable capturing the go task itself
  • Support creating WFThreadTask with running time limit
  • Add WFMessageQueue

Improvements

  • Optimize route manager
  • Remove MD5Util
  • Optimize communicator

Bug Fixes

  • Fix named conditional bug
  • Fix Kafka consuming bug that always returns the latest record
  • Fix service governance's fail to fuse a server on DNS lookup error
  • Fix the problem that always creating network threads when using wait group

workflow v0.10.3

26 Aug 14:55
116e677
Compare
Choose a tag to compare

New Features

  • Add WFRepeaterTask
  • Redis server supports inline commands
  • Reconstruct kafka task error. Add WFKafkaTask::get_kafka_error()

Improvements

  • Reduce new/delete times when running any series
  • Optimize communicator's locking to improve client tasks' speed
  • Add 'append_output_body' interfaces for HttpMessage

Bug Fixes

  • Fix the bug that server does not accept any connection after fd number reached max
  • Fix dns task scheme checking bug
  • Fix kafka client bug of all SASL authentication fails
  • Fix compiling error on macOS with gcc