diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2017-06-14 15:25:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-14 15:25:42 +0200 |
commit | de4988e9d4dec944a77239478361ee598b1fa3a9 (patch) | |
tree | c0fc02e0185993fe5a145ac7ea682526f3b97c78 /fnet | |
parent | f9b18232d463b0e9f331279ce7f7d01143d64a2e (diff) | |
parent | ba448cedab84a165536be2e72decee02f6ce2aef (diff) |
Merge pull request #2771 from yahoo/bratseth/remove-unnecessary-files
Remove unnecessary files
Diffstat (limited to 'fnet')
-rw-r--r-- | fnet/RELEASEINFO | 788 |
1 files changed, 0 insertions, 788 deletions
diff --git a/fnet/RELEASEINFO b/fnet/RELEASEINFO deleted file mode 100644 index c4a53d9f1dc..00000000000 --- a/fnet/RELEASEINFO +++ /dev/null @@ -1,788 +0,0 @@ -======================================================================= - FNET CURRENT (2006-04-24) -....................................................................... - - -Misc ----- - -- (2007-01-12) Make enabling/disabling the direct write optimization - runtime rather than compile time. - - -Bugfixes --------- - -- (2007-01-09) Don't open new channels unless the channel id was - invented by our peer. Also, don't send a reply when an rpc request - error occurs. (avoid infinite error response loop) - -- (2006-09-21) Handle BAD_REQUEST/NULL method name case. When a bad - request was handled, the method name (NULL) would cause the method - lookup to crash. This should be resolved now. - -- On connection close: discard packets from the inner packet queue - even if the outer packet queue is empty. Not doing this could - trigger a resource leak if a dummy packet responsible for cleanup - (and channel closing) was left in the inner queue after the - connection was closed. - - -======================================================================= - FNET V_2_0_0_RELEASE -....................................................................... - - -New Dependencies ----------------- - -- vespalib (for test framework) - - -Removed Code/Features ---------------------- - -- Moved the core test framework into vespalib. FNET now depends on - vespalib for this. The FNET test framework is now implemented on top - of the test framework supplied by vespalib. Also, the vespalib test - script (testrun.sh) is used to control the running of FNET tests. - -- Removed FNET_LogHandler class. This removes the simple logging - framework located in FNET. It was deprecated several versions ago, - and all internal logging in FNET is now done using the new log - module. - -- Removed OO RPC Support (RPC with support for objects and - classes). This is done to simplify the overall design of RPC, which - also makes it simpler to implement compatible components in other - languages. RPC packet codes and error codes have been re-enumerated - to cover up the holes left by the removed support for OO RPC. The - protocol documentation has been modified to reflect the new RPC - design. NB: this makes RPC incompatible with older versions of FNET. - - -Spiral ------- - -Spiral is a simplified single-threaded RPC abstraction layer. It is -intended for truly single-threaded applications that does not want to -mess around with the complete FNET API. Spiral currently only supports -the RPC client aspect. - - -New Features ------------- - -- Added support for limiting the size of input/output buffers for - connections. This is done by invoking the - FNET_Transport::SetMaxInputBufferSize and - FNET_Transport::SetMaxOutputBufferSize methods. - -- Added FNET_Connection::GetQueueLen method that may be used to obtain the - number of packets currently located in the packet output queue. - -- Added support for enable/disable read and disable write events for - io components. This is used by the support to select on external - file descriptors. - -- Added support to shrink databuffers. This is used by the support to - limit input/output buffers. - -- Added support for selecting on external file descriptors by using - the FNET IO component framework. This includes using the - FNET_FDSelector class and the FNET_IFDSelectorHandler interface. - -- Better support for single-threaded compile. The test system has - been modified to work when compiled single-threaded. A new test - macro named TEST_THREADS may be used by tests that need threads to - run. This will result in the test begin skipped if threads are not - supported. - -- Added FRT_ISharedBlob interface with corresponding support. This may - be used to share the same memory regions between multiple - requests. Also, all shared blobs will be subref'ed by the request - as soon as the request packet is encoded to the connection output - buffer. - - -Bugfixes --------- - -- Fixed a minor bug in the xsync daemon; close other end of pipe after - fork, to avoid hang in mother process if child fails. - - -======================================================================= - FNET V_1_4_9_RELEASE -....................................................................... - - -Robustness ----------- - -- Make task scheduling more robust in cases where the event loop - latency is very high. (ref Bug #462022) - - -======================================================================= - FNET V_1_4_8_RELEASE -....................................................................... - - -======================================================================= - FNET V_1_4_7_RELEASE -....................................................................... - - -Misc ----- - -- Minor timing adjustments in the RPC invoke test to make it work - better. - - -======================================================================= - FNET V_1_4_6_RELEASE -....................................................................... - - -======================================================================= - FNET V_1_4_5_RELEASE -....................................................................... - - -======================================================================= - FNET V_1_4_4_RELEASE -....................................................................... - - -Misc ----- - -- avoid some warnings with gcc 4 (weffc++) - - -Bugfixes --------- - -- check if _adminChannel is closed while waiting for callbacks - (in the CloseAdminChannel method) - - -======================================================================= - FNET V_1_4_3_RELEASE -....................................................................... - - -Misc ----- - -- use vtag stuff in fastos to report fnet version - (to avoid empty release hassle) - -- Better support for make -j - - -======================================================================= - FNET V_1_4_2_RELEASE -....................................................................... - - -[NB: no changes at all; still identifies as 1.4.1] - - -======================================================================= - FNET V_1_4_1_RELEASE -....................................................................... - - -======================================================================= - FNET V_1_4_0_RELEASE -....................................................................... - - -Public testing toolkit ----------------------- - -The FNET testing toolkit has been made public and is now a part of the -fnet library. The macros have been renamed to all start with -'TEST_'. The local fnet tests have been modified and an example test -program has been added. - - -New logging API ---------------- - -All logging has been converted to use the new "log" module -and its API. All functions in class FNET_LogHandler are now -deprecated, in particular FNET_LogHandler::SetLogMask and -FNET_LogHandler::SetLogHandler no longer have any effect. -All users of fnet will need to link with the "log" library. - - -Misc ----- - -- thread_id test is void'ed if fnet is compiled without threads. - - -======================================================================= - FNET V_1_3_0_RELEASE -....................................................................... - - -FRT/RPC Lobotomy/Cleanup ------------------------- - -The support for local invocation (and location transparency) is -removed. The code is also somewhat simplified to reflect the now less -general nature of things. It hurts to see so much thought go down the -drain, but it greatly reduces maintenance complexity and simplifies -future development. Who needs sub microsecond invocations anyway... - -Changed code to avoid warning messages produced by gcc 3.3 and later -when compiling with the -Weffc++ option. - - -Removed Code ------------- - -- FNET_ITransportHook -- FNET_IPingable -- FNET_Pinger -- FNET_ServerInfo -- FNET_Transport::SetMinEventTimeOut -- FNET_Transport::SetPingInterval -- FNET_Transport::AddPingTarget -- FNET_Transport::RemovePingTarget -- FNET_Transport::HookNow - - -New Features ------------- - -- Added preliminary support for 2-way RPC. - -- Added support for invoking RPC methods without having an FRT_Target. - -- Added a Reset() method to the reflection manager that removes all - methods. - -- Added a method mismatch rpc hook that may be used to catch method - calls not matching any methods. - -- Added support for rpc session state (All rpc calls made on a single - connection is referred to as a session). This was done by adding a - context to each connection (used to store the session state), making - it possible to obtain the underlying connection given - the rpc request object and adding special rpc hooks that are called - when a connection is established, when a connection is lost and - right before a connection is deleted. - -- The transport object now comes with a built-in scheduler object. - -- The FNET_Scheduler constructor may be given the current time. This - simplifies running the scheduler in a simulated environment. - -- A Sync method has been added to the connection class. This method - may be used to block until all previously posted packets have been - encoded. - -- Added InTub method to the memorytub class. This method may be used - to check if the tub owns a given byte of memory. This feature is - primarily used for regression testing. - -- The FNET_Connector class has been given a GetPortNumber method to be - able to extract the port number of the underlying server socket. - -- Allow listening on port number 0. - -- Add FRT_Target::GetConnection() method. Only returns a pointer to - the connection owned by the target. No new references are allocated. - - -API changes ------------ - -- The FRT supervisor may be constructed either in stand-alone mode, or - based on an external transport object and an external thread - pool. The transport proxy methods may only be used when in - stand-alone mode. - -- The scheduler no longer implements the transport hook interface - (removed). The virtual Tick method has been replaced by the - non-virtual CheckTasks method. - -- The transport Main/Start methods no longer take a transport hook as - parameter (the interface has been removed). Similar functionality - may now be obtained by using the transport InitEventLoop and - EventLoopIteration methods. - -- The RPC target InvokeAsync method now returns bool, true means that - the method completed immediately. false means the invocation is in - progress. - -- The FRT_IRequestWait::RequestDone method now takes a second - parameter; a bool indicating whether this invocation is done - synchronously (directly from the invoke method). - - -Internal changes ----------------- - -- Added IOC CleanupHook method that is called right before an IOC is - deleted. This is used by the FNET_Connection class to support a - connection cleanup callback which in turn is used by the FRT_Supervisor to - activate the SessionFini hook needed for RPC session support. - -- Statistics updating is now done with a scheduled stats update - task. This reduces the complexity of the event loop. - -- The connection write method now avoids writing 0 bytes to the - network. Also, empty writes are silently ignored since using the - packet queue for control packets is perfectly legal. - -- Channel IDs are now chosen in a way that is future compatible with - 2-way channel creation. - - -Misc ----- - -- Store listen/connect spec in IOC and use it in IOC related log - messages. - -- Added rpc proxy example program that may be useful for debugging. - -- Added FNET_DummyPacket helper packet class that may be used to - implement hooks in the connection output packet queue. - -- The FNET_Packet::NoPCODE() and FNET_Connection::NoID() methods have - been replaced by the FNET_NOID macro. - -- Added FNET_ prefix to DISABLE_DIRECT_WRITE compile flag. - -- Added FNET_SANITY_CHECKS compile flag. This enables some extra - sanity checks in the event loop. - -- Added generic cross-host testing support as part of testing - framework (xtest make target removed). This includes the xsync - daemon used to sync test states between hosts. The environment - variables PORTBASE and PEER are used to control testing behavior. - -- In regression test framework: enable output from passed test cases - to be collapsed to reduce logging. - -- Added support for mutex instrumentation. This requires a version of - FastOS supporting instrumented mutexes. - -- Added FRT_Supervisor::GetListenPort() method. - - -Bugfixes --------- - -- RPC: Handle request return (after request detach) while still - inside sync invocation method correctly (also added to regress - test). - -- RPC: ensure that the cleanup handler is run also when the request is - recycled by the user without making the trip back to the request - pool. - - -======================================================================= - FNET V_1_2_4_RELEASE -....................................................................... - - -Bugfixes --------- - -- Wait for direct write to complete before discarding packets when the - connection is going down. - - -======================================================================= - FNET V_1_2_3_RELEASE -....................................................................... - - -New Features ------------- - -- Added support for sending multiple packets at the same time. This - may reduce TCP latency when used with Nagle's algorithm. - - -======================================================================= - FNET V_1_2_2_RELEASE -....................................................................... - - -Bugfixes --------- - -- Fix Makefile to work with parallel compilation (gcc -j option). - - -======================================================================= - FNET V_1_2_1_RELEASE -....................................................................... - - -Misc ----- - -- Max events per event loop iteration: 256 -> 4096 - - -Bugfixes --------- - -- Avoid overlap between chunk header and chunk data in FRT memorytub. - -- Remove race around single req wait where condition could be - destructed while being locked. - -- Don't set connection state to closed if connect fails - synchronously. This caused a channel lost event to be sent on the - admin channel that caused a deadlock in the serverinfo class. It is - also an API improvement, since connect now fails either - synchronously or asynchronously (not both). - - -======================================================================= - FNET V_1_2_0_RELEASE -....................................................................... - - -New Features ------------- - -- Added support to construct an FNET_DataBuffer based on a - preallocated buffer. - -- Added support for scheduling a task to be run as soon as possible. - -- Added support for killing a task so that it may not be scheduled in - the future. - -- Added databuffer methods to write data without checking for free - space. These methods have a 'Fast' suffix. - -- Added AssertValid method that may be called anytime to assert that - the databuffer is in a legal state. - -- Added endian detection. Use the FNET_Info::GetEndian method to - obtain host endian. - -- Added methods to read/peek information stored in reverse internet - order (little endian) in a databuffer. - -- VPATH compilation. - - -Internal Changes ----------------- - -- Removed asserts used to check for valid data in databuffer read - methods. - -- When posting a packet, try to write it to the network directly (if - there is no other pending write operations). Post - an enable write event to the transport thread if there is pending - work after a direct write has been attempted. This behavior may be - disabled by using the --disable-direct-write configure option. - - -Misc ----- - -- Added static instance of FNET_CMD_NOCOMMAND control packet for - completeness. - -- Moved fastserver stuff to the fastserver4 cvs module. - -- Simple regress test framework. Run tests with 'make test' from - fnet/src. Use 'make xtest' to run cross-host testing. This requires - setting the PORT and PEER environment variables to sane - value. Example: to run a cross-host test between host A and host B - using port 8000 (on both hosts); run 'make PORT=8000 PEER=B xtest' - on host A and 'make PORT=8000 PEER=A xtest' on host B. - - -Bugfixes --------- - -- Set connection state correctly if socket connect completes - synchronously. - - -FRT ([F]NET [R]emote [T]ools) [middle-ware library] ---------------------------------------------------- - -The FRT library is a layer on top of FNET supporting a proprietary RPC -protocol. In addition to the network protocol, the FRT library also -contains API support for location transparent dynamic method -invocation (examples and regress tests also included). - - -======================================================================= - FNET V_1_1_2_RELEASE -....................................................................... - - -Bugfixes --------- - -- Handle EOL returned from socket read. This lets FNET handle peers - that close connections nicely. Previously this would result in a - very tight event loop reading EOL from the socket in each iteration. - -- Avoid time measurement errors in scheduler by using absolute values - for bucket timeouts rather than accumulated delta values. If the - scheduler was invoked very often, it would appear that time stood - still. - - -======================================================================= - FNET V_1_1_1_RELEASE -....................................................................... - - -Compiler nitpicks ------------------ - -- Renamed TICK to SLOT_TICK in scheduler class to avoid conflict with - macro on Solaris. -- Removed comma at end of enums in fs4 example packet library. -- Use public inheritance in fsearch_maxthreads fs4 example - application. -- Conceal infinite loop in fsearch_somethreads fs4 example - application. -- Cast error-code to signed value before applying negation in - fs4 searchtest example application. -- Cast enum to uint32_t to avoid constructor confusion in proxy - example application. -- Explicitly cast stat values to float. - - -Misc ----- - -- Removed memory leak in scheduling test to avoid HUGE memory leak - report on application exit. - - -======================================================================= - FNET V_1_1_0_RELEASE -....................................................................... - - -API Changes ------------ - -Added method bool FNET_IServerAdapter::InitAdminChannel(FNET_Channel -*) That must be implemented by server applications using FNET. The -method is called when a new incoming connection has been established -in order to let the application keep track of its current -clients. This channel works just like normal channels. The only -difference is that it is opened before any packets are received, -thereby allowing the application to implement connection-oriented -stuff like proxies. Implementing this method to always return false -will preserve old behavior. NOTE: closing the connection directly (by -invoking Close()) is allowed from the InitAdminChannel method (This is -an exception from the general rule that the application should close -all connections with async events. The reason for this exception is to -allow better resource management). - -Added an FNET_Context parameter to the FNET_Connection constructor and -to the FNET_Transport::Connect method. This was done to enable the -application to set the admin channel context in the client end-point -of a connection. Also, VOIDP=NULL is used as default context, instead -of the previously used INT=0xffffffff (FNET_Connection::NoID()). - -Added a parameter of type FNET_ITransportHook to the -FNET_Transport::Start method in order to enable sharing the transport -thread without the need to create a wrapper object (The parameter is -optional with NULL as default value). - -Made the FNET_ITransportHook parameter to the FNET_Transport::Main -method optional (default value is NULL). - -Server info objects may now be marked as 'bad' -[MarkBad()/ClearBad()/IsBad()]. If a server (info) is marked as bad, -FNET will try to keep it down, rather than up. Note that node badness -may be set by the application code in any thread and is not protected -by any locks. The most sensible use of this flag would be to use it as -an async signal, raising it if a server goes bad, and never lowering -it again (ClearBad() is implemented for completeness, but needs to be -used with care). - -Added new method FNET_Channel::CloseAndFree() that may be used to -close and free a channel in a single operation. This is equivalent -with first invoking Close(), then Free(), but is more efficient. - -The packet streamer interface has been modified in order to support -context-dependent un-streaming of packets and variable length packet -headers. This has resulted in the following method changes: - ------ -bool -FNET_IServerAdapter::InitChannel(FNET_Channel *channel, - FNET_Packet *packet) ------ -|| -\/ ------ -bool -FNET_IServerAdapter::InitChannel(FNET_Channel *channel, - uint32_t pcode) ------ - -This reflects the fact that in order to do context-dependent packet -un-streaming, we need to resolve the context of the channel that -should receive the packet before un-streaming the packet. This also -means that the packet itself is not available when opening server-side -channels. - ------ -FNET_Packet * -FNET_IPacketFactory::CreatePacket(uint32_t pcode) ------ -|| -\/ ------ -FNET_Packet * -FNET_IPacketFactory::CreatePacket(uint32_t pcode, FNET_Context context) ------ - -The context is propagated to the packet factory in order to eliminate -the need to change the FNET_Packet::Decode(...) method. - ------ -uint32_t -FNET_IPacketStreamer::GetHeaderLen() - -uint32_t -FNET_IPacketStreamer::GetPacketLen(FNET_DataBuffer *src) ------ -|| -\/ ------ -bool -FNET_IPacketStreamer::GetPacketInfo(FNET_DataBuffer *src, - uint32_t *plen, - uint32_t *pcode, - uint32_t *chid, - bool *broken) ------ - -The packet info is extracted before the packet is un-streamed in order -to locate the channel that should receive the packet. This change -gives us support for variable length packet headers and a way to -signal that the connection is broken. - ------ -FNET_Packet * -FNET_IPacketStreamer::Decode(FNET_DataBuffer *src, uint32_t *chid) ------ -|| -\/ ------ -FNET_Packet * -FNET_IPacketStreamer::Decode(FNET_DataBuffer *src, uint32_t plen, - uint32_t pcode, FNET_Context context) ------ - -The packet info is injected as parameters to avoid having to extract -it from the packet a second time. Note that the chid has been replaced -by the context of the channel that will receive the packet. This -completes the support for context-dependent packet un-streaming. - - -Internal Changes ----------------- - -Allow IOC_DELETE event before IOC_ADD event. This enables the -application to post an event indicating that the connection itself -should be closed when invoked to open the admin channel on that -connection (only applies to server connections). - -Optimized FNET_DataBuffer by using pointers to define dead/data/free -sections of the buffer. - -Each connection now has its own FNET_ChannelPool object instead of -sharing an FNET_ObjectPool. This reduces locking. - -The methods on FNET_Channel has been un-inlined in order to -instantiate FNET_Connection objects with an inlined FNET_ChannelPool -object which in turn has inline FNET_Channel objects. - -Make sure that the packets posted on a connection are freed in the -same order as they were posted, even if the connection goes down. This -is done to enable the application to use packet free order for syncing -purposes. It also enables the usage of packets that perform code in -the free method that requires that all previously posted packets have -already been freed (Like memory pool cleanup code). - -Changed some log messages to FNET_LOG_DEBUG. - - -New Control Packets -------------------- - -- FNET_CMD_TIMEOUT : This control packet command may be used to signal - a timeout. Note that FNET does not use timeout - packets internally. They are only included to - ease the implementation of timeout signaling in - applications using FNET. - -- FNET_CMD_BAD_PACKET : This control packet signals the reception of - a packet that could not be un-streamed. It - will be delivered in place of the packet that - was invalid. - - -New Classes ------------ - -- FNET_Task (schedulable tasks; timeouts etc.) -- FNET_Scheduler (class for scheduling tasks) -- FNET_ChannelPool (per-connection channel pooling) - - -Removed Classes ---------------- - -- FNET_ObjectPool - - -New Examples ------------- - -- proxy : A simple proxy implementation showing how FNET may be used - to handle raw data as packets and also how to focus on - connections rather than channels. - -- timeout : Simple application showing how to use the - task/scheduler classes to implement timeout support. - - -Bugfixes --------- - -- use maxreconnectdelay if the connect failed synchronously. - -- don't try to connect to target host if basic socket init fails. - - -======================================================================= - FNET V_1_0_0_RELEASE -....................................................................... - - -Initial release. - -NOTE: 1.0.x is no longer supported. |