Commit Graph

21 Commits

Author SHA1 Message Date
kirill reshke 3a55be6e61
change formatting (#250)
Co-authored-by: reshke <Kirill Reshke>
2020-12-28 15:43:31 +05:00
kirill reshke 89ef383056
fix build (#237)
Co-authored-by: reshke <Kirill Reshke>
2020-11-27 23:03:42 +05:00
Georgy Rylov c25c5bd050
Applying clang-format with saving indentations (#140)
* applying clang-format with saving indentations

* rebase
2020-04-02 16:00:56 +05:00
Dmitry Simonenko d784c2ad19 odyssey: make restart read logic explicit in router attach 2019-06-13 11:55:01 +03:00
Dmitry Simonenko a3f55f4f21 odyssey: rework packet header validation 2019-06-03 13:12:50 +03:00
Dmitry Simonenko 5716feb831 odyssey: unsubscribe from read events during pool attach wait 2019-05-25 17:26:29 +03:00
Andrey Borodin 538042916f Allow long FE messages in msg validation 2019-05-13 15:29:46 +03:00
Andrey Borodin edd5477302 Improve protocol message validation 2019-04-30 14:47:43 +05:00
Andrey Borodin 8abed18d69 Minimal message validation
Prevent improperly formatted message from breaking into serious disaster
for running process.
2019-04-29 17:14:45 +05:00
Andrey Borodin 5fa204b082 Minor fixes 2019-04-25 14:23:23 +05:00
Andrey Borodin 0b8e8309c3 Prevent condition leak 2019-03-29 15:07:59 +05:00
Dmitry Simonenko 6c0a1f09f8 odyssey: major rework of io architecture
This patch intend is to improve overall io performance, reduce
cpu and system usage.

Machinarium:

IO read/write logic is highly simplified and now based on conditions
instead of previously made internal readahead buffer and msg
queues. This allows to give user more control over io operations and
avoid doing undesired readahead copying.

Above that, TLS implementation reworked to use async logic instead of
separate BIO layer.

Direct pooling functions removed.

New objects machine_cond_t and machine_iov_t objects.

Odyssey:

Introduced readahead, io and relay objects.

Relay allows to connect two io handles for direct data retransmission
without double copying.

Removed configuration options no longer needed:
packet_read_size, packet_write_queue
2019-01-23 18:43:52 +03:00
Dmitry Simonenko 2d4f61f923 odyssey: introduce packet_write_queue 2018-11-13 18:29:25 +03:00
Dmitry Simonenko da7e6ea7a5 odyssey: major io rework and refactoring
This patch moves Odyssey from stream based write caching
to message driven. All write operations are delayed
and happen on a group of messages.

This removes necessity to do IO and wait for write completion during calls
from SSL_write() context. Write timings should behave more predictable now and
number of used syscalls should be also decreased.

This patch also simplifies caching management. All clients are simply
reusing cached messages without prolonged contention.

Several configuration options are no longer used:
pipeline, cache, cache_chunk
2018-08-28 17:43:46 +03:00
Dmitry Simonenko 5ca3fa926a odyssey: update source file headers 2018-04-04 16:19:58 +03:00
Dmitry Simonenko f108dcba09 odyssey: project rename 2018-03-12 17:03:15 +03:00
Dmitry Simonenko 08a6c30f16 odissey: set correct time type 2018-01-26 16:50:17 +03:00
Dmitry Simonenko 758666070d odissey: extend getsockname and getaddrname with addr/port 2017-08-17 18:15:19 +03:00
Dmitry Simonenko 717de6124d odissey: major shapito api update 2017-07-06 16:36:14 +03:00
Dmitry Simonenko 8283a2d665 odissey: update banners 2017-07-05 15:42:49 +03:00
Dmitry Simonenko 9e096b96b2 odissey: rework file naming and include path 2017-07-05 15:15:17 +03:00