Skip to content

Latest commit

 

History

History
807 lines (598 loc) · 43 KB

CHANGELOG.md

File metadata and controls

807 lines (598 loc) · 43 KB

Changelog

v0.25.0

New Features

Refactoring

  • Decouple MOSN core and Istio related xDS code. @nejisama
  • Upgrade proxy-wasm-go-host version. @zhenjunMa
  • Refactor networkfilter configuration parse functions, support AddOrUpdate and Get. @antJack

Optimization

  • Use mod vendor instead of GO111MODULE=off in Makefile. @scaat
  • Move some archived repo code into mosn.io/pkg. @nejisama
  • Optimize EDF loadbalancer: random pick host at the first select time. @alpha-baby
  • Optimize EDF loadbalancer performance. @alpha-baby
  • Optimize boltv2 protocol heartbeat's trigger and reply. @nejisama
  • Optimize HTTP2 retry processing in stream mode, optimize HTTP2 unary request processing in stream mode. @XIEZHENGYAO
  • Ignore CPU numbers limit when use environment variable to set GOMAXPROCS. @wangfakang
  • Reduce memory alloc when create subset loadbalancer. [@dzdx]((https://github.com/dzdx)
  • Support different listener can independent run same name gRPC Server. @nejisama

Bug fixes

  • Fix MOSN hangs up when host is empty when retry. @XIEZHENGYAO
  • Fix connections in msgconnpool cannot handle connect event. @RayneHwang
  • Fix MOSN panic when tracer driver is not inited and someone calls tracer Enable. @nejisama
  • Fix boltv2 protocol constructs hijack response version wrong. @nejisama
  • Fix HTTP2 handle connection termination event. @XIEZHENGYAO
  • Fix typo. @jxd134 @yannsun
  • Fix ResponseFlag outputs in RequestInfo. @wangfakang
  • Fix bolt/boltv2 protocol not recalculated the empty data's length. @hui-cha

v0.24.0

New Features

  • Support jaeger to collect OpenTracing message @Roger
  • Routing configuration new variable configuration mode, you can modify the routing results by modifying the variable @wangfakang
  • Routing virtualhost matching supports port matching mode @jiebin
  • Impl envoy filter: header_to_metadata @antJack
  • Support graceful for uds @taoyuanyuan
  • New subset load balancing logic to use the full list of machines for load balancing in scenarios where there is no metadata matching @nejisama
  • MOSN's grpc framework supports graceful stop @alpha-baby

Optimization

  • Optimize health check update mode for Cluster configuration updates @alpha-baby
  • Add OnConnectionEvent interface in api.Connection @CodingSinger
  • Weighted roundrobin loadbalancer underwriting policy adjusted to normal roundrobin load balancer @alpha-baby
  • Enhance interface value in mosn variable model @antJack
  • Subset also follows the same underwriting strategy when determining the number of machines and whether they exist @antJack

Bug fixes

  • Dubbo stream filter supports automatic protocol recognition @Thiswang
  • Fix roundrobin loadbalancer result exception in case of concurrency @alpha-baby
  • Fix unix address resolution exception @taoyuanyuan
  • Fix the exception that HTTP short connection cannot take effect @taoyuanyuan
  • Fix a memory leak in the TLS over SM3 suite after disconnection @ZengKe
  • HTTP2 support doretry when connection reset by peer or broken pipe @taoyuanyuan
  • Fix the host information error from the connection pool @Sharember
  • Fix data race bug when choose weighted cluster @alpha-baby
  • Return invalid host if host is unhealthy in EdfLoadBalancer @alpha-baby
  • Fix the problem that XProtocol routing configuration timeout is invalid @nejisama

v0.23.0

New Features

  • Add new networkfilter:grpc. A grpc server can be extended by networkfilter and implemented in the MOSN, reuse MOSN capabilities. @nejisama @zhenjunMa
  • Add a new extended function for traversal calls in the StreamFilterChain. @wangfakang
  • Add HTTP 403 status code mapping in the bolt protocol. @pxzero
  • Add the ability to shutdown the upstream connections. @nejisama

Optimization

  • Optimize the networkfilter configuration parsed. @nejisama
  • Support extend proxy config by protocol, optimize the proxy configuration parse timing. @nejisama
  • Add tls conenction's certificate cache, reduce the memory usage. @nejisama
  • Optimize Quick Start Sample. @nobodyiam
  • Reuse context when router handler check available. @alpha-baby
  • Modify the NewSubsetLoadBalancer's input parameter to interface instead of the determined structure. @alpha-baby
  • Add an example of using so plugin to implement a protocol. @yichouchou
  • Optimize the method of get environment variable GOPATH in the MAKEFILE. @bincherry
  • Support darwin & aarch64 architecture. @nejisama

Bug fixes

  • Fix the bug of HTTP1 URL encoding. @morefreeze
  • Fix the bug of HTTP1 URL case-sensitive process. @GLYASAI
  • Fix the bug of memory leak in error handling when the tls cipher suite is SM4. @william-zk

v0.22.0

New Features

  • Add Wasm extension framework @antJack
  • Add x-bolt sub-protocol to allow wasm-based codec for XProtocol @zonghaishang
  • Support fallback through SO_ORIGINAL_DST when protocol auto-matching got failed @antJack
  • Support Go Plugin mode for XProtocol @fdingiit
  • Support for network extension @wangfakang
  • Update to Istio xDS v3 API @champly Branch: istio-1.7.7

Optimization

  • Remove redundant file path clean when resolving StreamFilter configs @eliasyaoyc
  • Allow setting a unified callback handler for the StreamFilterChain @antJack
  • Support multi-stage execution and remove state lock for the FeatureGate @nejisama
  • Add trace support for HTTP2 @OrezzerO

Refactoring

  • Add StageManger to divide the bootstrap procedure of MOSN into four configurable stages @nejisama
  • Unify the type definitions of XProtocol and move into mosn.io/api package @fdingiit
  • Add GetTimeout method for XProtocol to replace the variable getter @nejisama

Bug fixes

  • Fix concurrent read and write for RequestInfo in Proxy @nejisama
  • Fix the safety bug when forwarding the request URI @antJack
  • Fix concurrent slice read and write for Router configurations when doing persistence @nejisama

v0.21.0

Optimization

  • Upgrade sentinel version to v1.0.2 @ansiz
  • Shrink the read buffer of tls when read timeout, reduce tls memory consumption @cch123
  • Add comments and simplify the implementation of the xprotocol protocol connpool @cch123
  • Update the mosn registry version @cadeeper @cch123

Refactoring

  • Optimize header matching logic when routing, support general RPC routing matching implementation @nejisama
  • Delete some of the original constants and add constants used to describe the mechanism of variables @nejisama
  • Refactor flow control module, support custom callback extension, realize the ability to customize filter conditions and modify context information, etc @ansiz

Bug fixes

  • Fix metrics statistics error when request is abnormal @cch123
  • Fix the bug that the URL is not escaping before forwarding HTTP request @antJack
  • Fix the variable injection errors in HTTP protocol, Fix the bug that routing rewrite is not supported in the HTTP2 protocol @nejisama

New Features

  • Support Domain-Specific Language route implementation @CodingSinger
  • StreamFilter supports the dynamic link libraries written in Go @CodingSinger
  • VirtualHost supports per_filter_config configuration in routing configuration @machine3
  • Xprotocol supports dubbo thrift protocol @cadeeper

v0.20.0

Optimization

  • Add UDS address prefix check before UDS resolution when TCP address resolution fails @wangfakang
  • Optimized the retrial interval for connection pool acquisition @nejisama
  • Add global switch for write loop mode @nejisama
  • Optimize auto protocol matching and add test cases @taoyuanyuan
  • Replace the headers with more efficient variables @CodingSinger
  • Pool the writeBufferChan timer to reduce overhead @cch123
  • Add MOSN failure detail info into TraceLog @nejisama
  • New read done channel in HTTP protocol processing @alpha-baby
  • Enhance logger rotator @nejisama

Refactoring

  • Upgrade to golang 1.14.13 @nejisama
  • Refactor router chain extension mode to the route handler extension mode, support different router handler configuration @nejisama
  • Refactor MOSN extended configuration, support load config according to configuration order @nejisama

Bug fixes

  • Fix the bug no provider available occurred after dubbo2.7.3 @cadeeper
  • Fix the bug that UDS connections were treated as TCP connections in netpoll mode @wangfakang
  • Fix the problem that the HTTP Header cannot be obtained correctly when it is set to an empty value @ianwoolf

New Features

  • Support old Mosn transfer configuration to new Mosn through UDS to solve the issue that Mosn in XDS mode cannot be smoothly upgraded @alpha-baby
  • Automatic protocol identification supports the identification of XProtocol @cadeeper
  • Support configuration of the keepalive parameters for XProtocol @cch123
  • Support more detailed time tracking @nejisama
  • Support metrics lazy registration to optimize metrics memory when number of service in cluster is too large @champly
  • Add setter function for default XProtocol multiplex connection pool size @cch123
  • Support netpoll @cch123
  • Support broadcast @dengqian
  • Support get tls configurations from LDS response @wZH-CN
  • Add ACK response for SDS @wZH-CN

v0.19.0

Optimization

  • Use the latest TLS memory optimization scheme @cch123
  • Proxy log optimization to reduce memory escape @taoyuanyuan
  • Increase the maximum number of connections limit @champly
  • When AccessLog fails to obtain variables, use "-" instead @champly
  • MaxProcs supports configuring automatic recognition based on CPU usage limits @champly
  • Allow specifying network for cluster @champly

Refactoring

  • Refactored the StreamFilter framework. The network filter can reuse the stream filter framework @antJack

Bug fixes

  • Fix HTTP Trace get URL error @wzshiming
  • Fix the ConnectTimeout parameter of xDS cluster is not converted @dengqian
  • Fix the upstreamHostGetter method gets the wrong hostname @dengqian
  • Fix tcp proxy close the connection abnormally @dengqian
  • Fix the lack of default configuration of mixer filter, resulting in a nil pointer reference @glyasai
  • Fix HTTP2 direct response not setting Content-length correctly @wangfakang
  • Fix the nil pointer reference in getAPISourceEndpoint @dylandee
  • Fix memory increase caused by too many Timer applications when Write is piled up @champly
  • Fix the problem of missing stats when Dubbo Filter receives an illegal response @champly

v0.18.0

New Features

Optimization

  • Avoid copying http response body @wangfakang
  • Upgrade github.com/TarsCloud/TarsGo package, to v1.1.4 @champly
  • Add test for various connpool @cch123
  • Use sync.Pool to reduce memory cost by TLS connection outBuf @cch123
  • Reduce xprotocol lock area @cch123
  • Remove useless parameter of network.NewClientConnection method, remove ALPN detection in Dispatch method of struct streamConn @nejisama
  • Add TerminateStream API to StreamReceiverFilterHandler, with which stream can be reset during handling @nejisama
  • Add client TLS fallback @nejisama
  • Fix TLS HashValue in host @nejisama
  • Fix disable_log admin api typo @nejisama

Bug fixes

  • Fix go mod tidy failing @champly
  • Fix ResourceExhausted: grpc: received message larger than max when MOSN receive > 4M XDS messages @champly
  • Fix fault tolerance unit-test @wangfakang
  • Fix MOSN reconfig fails when MOSNConfig.servers[].listeners[].bind_port is false @alpha-baby
  • Set timeout for local write buffer send, avoid goroutine leak @cch123
  • Fix deadloop when TLS timeout @nejisama
  • Fix data isn't modified by SetData method in dubbo.Frame struct @lxd5866

v0.17.0

New Features

  • Add header max size configuration option. @wangfakang
  • Add protocol impement choice whether need workerpool mode. And support workerpool mode concurrent configuration. @cch123
  • Add UDS feature for listener. @CodingSinger
  • Add dubbo protocol use xDS httproute config filter. @champly

Optimization

  • Optimiza http situation buffer malloc. @wangfakang
  • Optimize RWMutex for SDS StreamClient. @nejisama
  • Update hessian2 v1.7.0 lib. @cch123
  • Modify NewStream interface, use callback replace direct. @cch123
  • Refactor XProtocol connect pool, support pingpong mode, mutiplex mode and bind mode. @cch123
  • Optimize XProtocol mutiplex mode, support Host max connect configuration. @cch123
  • Optimize route regex config avoid dump unuse config. @wangfakang

Bug fixes

  • Fix README ant logo invalid address. @wangfakang
  • Fix header override content when set a longer header to request header. @cch123
  • Fix Dubbo protocol analysis attachment maybe panic. @champly

v0.16.0

Optimization

  • Logger Roller supports the custom Roller. @wenxuwan
  • Add a SendHijackReplyWithBody API for streamFilter. @wenxuwan
  • The configuration adds option of turning off the smooth upgrade. If the smooth upgrade is turned off, different instances of MOSN can be started on the same machine. @cch123
  • Optimize the MOSN integration test framework and add more unit test cases. @nejisama @wangfakang @taoyuanyuan
  • DirectResponse route configuration supports the update mode of XDS. @wangfakang
  • Add a new field of TLSContext for clusterManager configuration. @nejisama

Bug fixes

  • Fix the bug that UDP connection timeout during the smooth upgrade will cause an endless loop. @dengqian
  • Fix the bug that call DirectResponse in the SendFilter will cause an endless loop. @taoyuanyuan
  • Fix concurrency conflicts in HTTP2 stream counting. @wenxuwan
  • Fix the bug that UDP connection read timeout cause data loss. @dengqian
  • Fix the bug that the response StatusCode cannot be recorded correctly due to the loss of the protocol flag when doing a retry. @dengqian
  • Fix the protocol boltv2 decode error. @nejisama
  • Fix the bug that listener cannot be restarted automatically when listener panic. @alpha-baby
  • Fix the bug that NoCache flag is invalid in variable. @wangfakang
  • Fix concurrency conflicts in SDS reconnect. @nejisama

v0.15.0

New Features

  • Routing Path Rewrite supports configuring the content of Rewrite by regular expression @liangyuanpeng
  • Configure new fields: Extended configuration fields, you can start the configuration by extending the configuration fields; Dubbo service discovery configuration via extended configuration fields @cch123
  • New DSL feature for easy control of request processing behavior @wangfakang
  • Extended implementation of StreamFilter with new traffic mirroring function @champly
  • Listener configuration adds UDP support @dengqian
  • Configuration format support YAML format parsing @GLYASAI
  • Routing support for HTTP redirect configuration @knight42

Optimization

  • Istio's stats filter for personalizing metrics based on matching criteria @wzshiming
  • Metrics configuration support to configure the output percentage of the Histogram @champly
  • StreamFilter New state for aborting requests directly and not responding to clients @taoyuanyuan
  • XProtocol hijack response support carry body @champly
  • Apache SkyWalking upgrade to version 0.5.0 arugal
  • Upstream Connection TLS State Determination Modification to support the determination of whether a connection needs to be re-established via a TLS-configured Hash @nejisama
  • Optimize DNS cache logic to prevent DNS flooding issues that can be caused when DNS fails @wangfakang

Bug fixes

  • Fix the bug that XProtocol protocols determine protocol errors in scenarios with multiple protocols when TLS encryption is enabled @nejisama
  • Fix bug in AccessLog where variables of prefix match type don't work @dengqian
  • Fix bug where Listener configuration parsing is not handled correctly @nejisama
  • Fix Router/Cluster bug that fails to save when the Name field contains a path separator in the file persistence configuration type @nejisama

v0.14.0

New Features

  • Support for Istio 1.5.X @wangfakang @trainyao @champly
    • go-control-plane upgrade to version 0.9.4
    • xDS support for ACK, new Metrics for xDS.
    • Istio sourceLabels filtering support
    • probe interface with pilot-agent support
    • support for more startup parameters, adapting to Istio agent startup scenarios
    • gzip, strict-dns, original-dst support for xDS updates.
    • Remove Xproxy Logic
  • Maglev Load Balancing Algorithm Support @trainyao
  • New connection pool implementation for supporting message class requests @cch123
  • New Metrics for TLS Connection Switching @nejisama
  • Metrics for adding HTTP StatusCode @dengqian
  • Add Metrics Admin API output @dengqian
  • New interface to query the number of current requests for proxy @zonghaishang
  • Support for HostRewrite Header @liangyuanpeng

Optimization

  • Upgrade tars dependencies to fix compilation issues with higher versions of Golang @wangfakang
  • xDS Configuration Analysis Upgrade Adaptation Istio 1.5.x @wangfakang
  • Optimize log output from proxy @wenxuwan
  • DNS Cache default time changed to 15s @wangfakang
  • HTTP Parameter Route Matching Optimization @wangfakang
  • Upgrade the fasthttp library @wangfakang
  • Optimizing Dubbo Request Forwarding Encoding @zonghaishang
  • Request max body configurable for HTTP support @wangfakang

Bug fixes

  • Fix Dubbo Decode bug that fails to parse attachment @champly
  • Fix bug where streams could be created before HTTP2 connection is established @dunjut
  • Fix HTTP2 Handling Trailer null pointer exception @taoyuanyuan
  • Fix bug where HTTP request headers are not standardized by default @nejisama
  • Fix panic exceptions caused by disconnected connections during HTTP request processing @wangfakang
  • Fix read/write lock copy issue with dubbo registry @champly

v0.13.0

New Features

  • Support Strict DNS Cluster @dengqian
  • Stream Filter @wangfakang that supports GZip processing
  • Dubbo service registry complete Beta version @cch123
  • Stream Filter @NeGnail that supports standalone fault isolation
  • Integrated Sentinel flow limiting capability @ansiz

Optimization

  • Optimize implementation of EDF LB and re-implement WRR LB using EDF @CodingSinger
  • Configure to get ADMIN API optimizations, add features and environment variable related ADMIN API @nejisama
  • Update that triggers a health check when updating Host changed from asynchronous mode to synchronous mode @nejisama
  • Updated the Dubbo library to optimize the performance of Dubbo Decode @zonghaishang
  • Optimize Metrics output in Prometheus, using regularity to filter out illegal Key @nejisama
  • Optimize MOSN's return status code @wangfakang

Bug fix

  • Fix concurrent conflict issues with health check registration callback functions @nejisama
  • Fix the error where the configuration persistence function did not handle the null configuration correctly @nejisama
  • Fix the problem that DUMP as a file fails when ClusterName/RouterName is too long @nejisama
  • Fix the problem of not getting the XProtocol protocol correctly when getting it @wangfakang
  • Fix the problem with fetching the wrong context when creating StreamFilter @wangfakang

v0.12.0

New Features

  • Support Skywalking @arugal
  • Stream Filter adds a new phase of Receive Filter execution, which allows you to execute Receive Filter @wangfakang again after MOSN has finished routing Host
  • HTTP2 supports streaming @peacocktrain @taoyuanyuan
  • FeatureGate adds interface KnownFeatures to output current FeatureGate status @nejisama
  • Provide a protocol-transparent way to obtain requested resources (PATH, URI, ARG), with the definition of resources defined by each protocol itself @wangfakang
  • New load balancing algorithm

Optimize

  • XProtocol protocol engine optimization @neverhook
    • Modifies the XProtocol heartbeat response interface to support the protocol's heartbeat response to return more information
    • Optimize connpool for heartbeat triggering, only heartbeats will be triggered if the protocol for heartbeats is implemented
  • Dubbo library dependency version updated from v1.5.0-rc1 to v1.5.0 @cch123
  • API Adjustments, HostInfo added health check related interface @wangfakang
  • Optimize circuit breaking function @wangfakang
  • Responsible for balanced selection logic simplification, Hosts of the same address multiplex the same health check mark @nejisama @cch123
  • Optimize HTTP building logic and improve HTTP building performance @wangfakang
  • Log rotation logic triggered from writing logs, adjusted to timed trigger @nejisama
  • Typo fixes @xujianhai666 @candyleer

Bug Fix

  • Fix the xDS parsing fault injection configuration error @champly
  • Fix the request hold issue caused by the MOSN HTTP HEAD method @wangfakang
  • Fix a problem with missing StatusCode mappings in the XProtocol engine @neverhook
  • Fix the bug for DirectReponse triggering retries @taoyuanyuan

v0.11.0

New features

  • Support the extension of Listener Filter, the transparent hijacking capability is implemented based on Listener Filter @wangfakang
  • New Set method for variable mechanism @pxzero
  • Added automatic retry and exception handling when SDS Client fails @taoyuanyuan
  • Improve TraceLog and support injecting context @nejisama

Refactoring

  • Refactored XProtocol Engine and reimplemented SOFARPC protocol @neverhook
    • Removed SOFARPC Healthcheck filter and changed to xprotocol's built-in heartbeat implementation
    • Removed the original protocol conversion (protocol conv) support of the SOFARPC protocol, and added a new protocol conversion extension implementation capability based on stream filter
    • xprotocol adds idle free and keepalive
    • Protocol analysis and optimization
  • Modify the Encode method parameters of HTTP2 protocol @taoyuanyuan
  • Streamlined LDS interface parameters @nejisama
  • Modified the routing configuration model, abandoned connection_manager @nejisama

Optimization

  • Optimize Upstream dynamic domain name resolution mechanism @wangfakang
  • Optimized TLS encapsulation, added error log, and modified timeout period in compatibility mode @nejisama
  • Optimize timeout setting, use variable mechanism to set timeout @neverhook
  • Dubbo parsing library dependency upgraded to 1.5.0 @cch123
  • Reference path migration script adds OS adaptation @taomaree

Bug fix

  • Fix the problem of losing query string during HTTP2 protocol forwarding @champly

v0.10.0

New features

  • Support multi-process plugin mode
  • Startup parameters support service-meta parameters
  • Supports abstract uds mode to mount sds socket

Refactoring

  • Separate some mosn base library code into mosn.io/pkg package (github.com/mosn/pkg)
  • Separate mosn interface definition to mosn.io/api package (github.com/mosn/api)

Optimization

  • The log basic module is separated into mosn.io/pkg, and the log of mosn is optimized
  • Optimize FeatureGate
  • Added processing when failed to get SDS configuration
  • When CDS deletes a cluster dynamically, it will stop the health check corresponding to the cluster
  • The callback function when sds triggers certificate update adds certificate configuration as a parameter

Bug fixes

  • Fixed a memory leak issue when SOFARPC Oneway request failed
  • Fixed the issue of 502 error when receiving non-standard HTTP response
  • Fixed possible conflicts during DUMP configuration
  • Fixed the error of Request and Response Size of TraceLog statistics
  • Fixed write timeout failure due to concurrent write connections
  • Fixed serialize bug
  • Fixed the problem that the memory reuse buffer is too large when the connection is read, causing the memory consumption to be too high
  • Optimize Dubbo related implementation in XProtocol

v0.9.0

New features

  • Support variable mechanism, accesslog is modified to use variable mechanism to obtain information

Refactoring

  • Refactored package reference path for sofastack.io/sofa-mosn to mosn.io/mosn

Bug fix

  • Fixed the bug that buf is not empty when Write is connected
  • Fixed HTTP2 stream counting bug
  • Fix memory leak caused by proxy coroutine panic
  • Fix memory leak caused by read and write coroutine stuck in specific scenarios
  • Fix the bug of xDS concurrent processing
  • make image output image modification, modified to a MOSN example
  • Fixed the field of getting CallerAPP in TraceLog of SOFA RPC

v0.8.1

New features

  • Metrics added: count of requests that MOSN failed to process

Optimization

  • Improved the write performance of Metrics shared memory with MMAP
  • Reduced the default coroutine pool size and optimize memory usage
  • Optimized log output

Bug fix

  • Fixed a bug where if there is a log file when MOSN starts, it is not rotated normally.

v0.8.0

New features

  • Added interface: Support connection returns current availability status
  • Manage API to add default help page

Optimization

  • Reduced connections and request default memory allocation
  • Optimized machine list information storage in ConfigStore
  • Metrics optimization
    • SOFARPC heartbeat requests are no longer recorded in Metrics
    • Optimize shared memory mode for Metrics use
  • Optimized profile reading, ignoring empty files and non-json files
  • Optimized the xDS client
    • The xDS client is modified to start completely asynchronously without blocking the startup process
    • Optimize xDS client disconnect retry logic

Bug fix

  • Fixed bug where hot upgrade connection migration would fail in TLS Inspector mode
  • Fixed a bug where the log rotation configuration could not be updated correctly
  • Fixed a bug where the log did not output log time correctly at the Fatal level
  • Fixed a bug in which a connected read loop would cause an infinite loop in a particular scenario
  • Fixed a bug in HTTP connection count statistics errors
  • Fixed a bug that prevented the channel from being properly closed when the connection was closed
  • Fixed bug handling of buffers when handling response to BoltV2 protocol
  • Fixed concurrency violations when reading and writing persistent configurations
  • Fixed concurrency conflicts that receive responses and trigger timeouts

v0.7.0

New features

  • Added FeatureGates support
  • Added Metrics: request processing time in MOSN
  • Support for restarting listening sockets that have been closed at runtime

Refactoring

  • Upgraded to Go 1.12.7
  • Modified the xDS client startup order, now it will start before the MOSN service

Bug fix

  • Fixed a bug that did not properly trigger a request reset when an RPC request was written.
  • Fixed memory leak bugs when no upstream response was received
  • Fixed a bug where some of the request parameters would be lost when the HTTP request was retried
  • Fixed a bug that could cause panic when DNS resolution failed
  • Fixed a bug that didn't time out when the connection was established in TLS Inspector mode
  • prometheus output format no longer supports gzip

v0.6.0

New features

  • Configured the new idle connection timeout connection_idle_timeout field, the default value is 90s. MOSN will actively close the connection when the idle connection timeout is triggered
  • Error log adds Alert interface and outputs error log with error code format
  • Support SDS to obtain TLS certificate

Refactoring

  • Refactored upstream module
    • Refactored the internal Cluster implementation structure
    • Update Host implementation changed from delta update to full update to speed up update
    • Refactored Snapshot implementation
    • Optimized some memory usage
    • Modified the parameters of some interface functions
  • Refactored the implementation of Tracing and supports more extensions

Optimization

  • Optimized connected Metrics statistics
  • Optimized the output format of Metrics in prometheus mode
  • Optimized IO write coroutines to reduce memory footprint

Bug fix

  • Fixed possible concurrency violations when creating Loggers concurrently
  • Fixed a bug that caused a panic due to a response and a trigger timeout
  • Fixed concurrent bugs when HTTP processing connection reset
  • Fixed bug where the log file could not be rotated correctly after it was deleted
  • Fixed a concurrent bug when HTTP2 handled goaway

v0.5.0

New features

  • Configure a hybrid mode that supports both xDS mode and static configuration
  • Support management API extensible registration new API
  • Supports dynamic update of StreamFilter configuration, which can take effect on all connections

Refactoring

  • Refactored package import path
    • Changed from github.com/alipay/sofa-mosn to sofastack.io/sofa-mosn

Optimaztion

  • Optimized the output structure of the error log
  • Improved implementation of configuration file json parsing
  • Optimized memory reuse for large buffer scenarios
  • Optimized the use of shared memory for Metrics when first booting

Bug fix

  • Fixed bug where ProxyLogger's log level could not be dynamically updated
  • Fixed connection read and write loops that could cause panic bugs
  • Fixed a bug that didn't work correctly when deleting multiple clusters at the same time
  • Fixed a bug where the number of active requests in Metrics was incorrectly counted in concurrency
  • Fixed a bug where the HTTP connection triggered a panic when resetting and receiving a response concurrency

v0.4.2

New features

  • Support for new profile models
    • Cluster configuration support is set to a separate directory
    • Routing configuration support is set to a separate directory
    • Support for multiple certificate configurations
    • Compatible with old profile models
  • Add new Metrics to show basic information
    • version number
    • version of Go used
    • MOSN runtime state
    • the address to listen to
  • Support for Metrics filtering
  • Support for registering callback functions when MOSN changes state
  • Support Request oneway
  • Support batch modification of error log level, support batch shutdown of Access log

Refactoring

  • Refactored the Proxy threading model
    • Each request is processed using a separate Goroutine
    • Use the state machine instead of the callback function to request the processing flow to be modified to serial
  • Refactored the connection pool selection model, try to avoid selecting the backend to the exception

Optimization

  • Optimized Metrics output performance
  • Optimized error log output
  • Optimized SOFA RPC protocol parsing performance
  • Extended the implementation of the context, reduce the number of nesting layers and optimize performance when compatible with standard contexts

Bug fix

  • Fixed a bug in the parsing part of the json configuration
  • Fixed a bug where HTTP would trigger Goroutine leaks in certain scenarios
  • Fixed bug in IO write concurrency scenarios that could cause panic
  • Fixed a bug where HOST information was not deduplicated

v0.4.1

New features

  • Metrics added prometheus mode output
  • Metrics supports exclusion configuration
  • Support dynamic opening and closing of logs, support dynamic adjustment of error log level
  • HTTP protocol support 100 continue
  • Support Tars protocol
  • Connections that support the SOFARPC protocol send heartbeats when idle
  • Support for creating connections based on sub-protocols of SOFARPC
  • Support for new smooth upgrade methods
  • Active health check supports scalable implementation, default is tcp dial
  • Memory Multiplexing Module supports scalability
  • Load balancing implementation support for scalability
  • Profile resolution support is extensible, default is json file parsing

Refactoring

  • Refactored the stream package structure, modified some API interfaces
  • Log module modified to asynchronous write log
  • Refactored xDS configuration conversion module
  • Refactored implementation of the routing chain
  • Move some common function functions to the utils package directory

Optimization

  • Route matching optimization, supporting KV matching in specific scenarios
  • The request status code recorded in the request message is uniformly converted to the HTTP status code as a standard
  • Optimized Tracer implementation to improve the performance of Tracer records
  • Optimized performance for profile persistence
  • Optimized performance for dynamically updating backend machine lists

Bug fix

  • Fixed deadlock bug in workpool
  • Fixed bug with HTTP2 error handling trailer
  • Fixed concurrency issues with buffer reuse

v0.4.0

New features

  • Support gRPC via HTTP2
  • Support HTTP/HTTP2 protocol automatic identification
  • Tracer supporting SOFA RPC protocol
  • Add more routing features
    • Support for retry policy configuration
    • Policy configuration that supports direct response
    • Support for adding and deleting custom fields in HTTP header
    • Support for rewriting the HTTP protocol Host and URI
    • Support for scalable routing implementation
  • Support QPS current limiting and rate based current limiting
  • Support fault injection
  • Support for Mixer
  • Support for obtaining MOSN runtime configuration

Refactoring

  • Refactored the protocol framework to support the extension of the SOFA RPC sub-protocol

Optimization

  • Optimized support for the HTTP protocol, performance improvement of about 30%
  • Optimized support for HTTP2 protocol, performance improvement of about 100%
  • Optimized implementation of TCP Proxy

Bug fix

  • Fixed a bug in smooth upgrades
  • Fixed bug with HTTP/HTTP2 protocol processing
  • Fixed some bugs with potential memory leaks

v0.3.0

New features

  • Support for smooth migration of Metrics
  • Smooth migration with TLS support

Optimization

  • Optimized CPU and memory usage for SOFARPC protocol resolution

v0.2.1

New features

  • Support stand-alone TLS switch
  • Support Dubbo protocol through XProtocol protocol

v0.2.0

New features

  • Support for route matching rules with weights
  • Added xDS client implementation
    • Support for LDS
    • Support CDS
  • Support for four layers of Filter to expand
  • Support TLS configuration scalable
  • Support for IO processing based on native epoll
  • Enhanced scalability for protocol parsing
  • Added XProtocol, which can be implemented by XProtocol extension protocol

Optimization

  • Implement memory reuse framework to reduce memory allocation overhead

v0.1.0

New features

  • Implemented a programmable, scalable network extension framework MOSN
  • Achieved the protocol framework
    • Support SOFA RPC protocol
    • Support HTTP protocol
    • Support HTTP2 protocol
  • Support for scalable mode based on Stream Filters
  • Support back-end cluster management and load balancing
  • Support simple route matching rules
  • Support smooth restart and smooth upgrade