ipc-bench | Latency benchmarks of Unix IPC mechanisms | Change Data Capture library

 by   rigtorp C Version: Current License: MIT

kandi X-RAY | ipc-bench Summary

kandi X-RAY | ipc-bench Summary

ipc-bench is a C library typically used in Utilities, Change Data Capture applications. ipc-bench has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Some very crude IPC benchmarks. This software is distributed under the MIT License.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              ipc-bench has a low active ecosystem.
              It has 469 star(s) with 162 fork(s). There are 32 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 3 open issues and 5 have been closed. On average issues are closed in 98 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of ipc-bench is current.

            kandi-Quality Quality

              ipc-bench has 0 bugs and 0 code smells.

            kandi-Security Security

              ipc-bench has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              ipc-bench code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              ipc-bench is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              ipc-bench releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of ipc-bench
            Get all kandi verified functions for this library.

            ipc-bench Key Features

            No Key Features are available at this moment for ipc-bench.

            ipc-bench Examples and Code Snippets

            No Code Snippets are available at this moment for ipc-bench.

            Community Discussions

            QUESTION

            Low-latency communication of micro-services in remote, IPC and threading scenarios
            Asked 2019-Jun-13 at 16:17

            I want to create an ultra fast message processing C++ solution which will be CPU bound and micro-services based. It will process lots of request/response messages that are small enough (32 bytes to 1kb per message).

            Some services will be placed in different hosts. Some will be on the same host, but in different processes. And some inside the same process, but in different threads.

            Currently I'm thinking about communication protocols for such services topology. My first idea was to use TCP-based communication which allows to use loopback for IPC communication on the same host and even for threading communication. The benefit is to have a single communication code which allows to experiment with services topology. It will be easy to host service inside some process or move it to the remote host.

            However I understand that if I want to have a low-latency solution with max RPS and speed of message delivery I have to split transport depending on communication type:

            • Threads communication - the best results could be achieved with circular buffer or LMAX Disruptor pattern.

            • IPC communication - I think pipes or circular buffer in shared memory are good solutions. Is there a better way to do IPC?

            • Remote communication - async TCP server/client for sequential message delivery and UDP for multicasting.

            Also I'm thinking about Linux solution, but having cross-platform would be great!

            I believe Asio C++ Library is a good starting point for remote communications.

            My questions are the following:

            1. Is it worth creating a custom IPC/threading communication solutions or should I start with TCP-based localhost communications?
            2. Can anyone provide me with some performance comparison results of different IPC techniques (locahost tcp vs pipes vs shared memory) for best RPS of small messages up to 1kb? (E.g. shared memory will be 10-times faster than localhost TCP and 3-times faster than pipes or approximate RPS values to compare).
            3. Maybe I missed some good low-lattency IPC/RPC technique or library that I should look into?
            4. Or perhaps some production-ready solution exists for my problem that I can use or purchase the license?

            Thanks in advance for your answers and suggestions!

            IPC benchmarks

            I just found and performed low-level IPC benchmarks under Linux (Linux ubuntu 4.4.0 x86_64 i7-6700K 4.00GHz). Message size was 128 bytes and messages count is 1000000. I get following results:

            Pipe benchmark:

            ...

            ANSWER

            Answered 2019-Jan-08 at 12:48

            You wrote:

            an ultra fast message processing C++ solution

            That usually means getting hands into everything. Sounds like an interesting library in the end though if you pull it off.

            Overall your question is (way) too broad - nevertheless here are my thoughts:

            1. Hard to give any advice here...

            2. Comparisons will be platform/system specific. Eg. TCP may be faster or slower depending on the system.

            3. OpenMP and boost interprocess comes to mind.

            4. You may wan't to look into or start out with for example apache thrift library (albeit its also cross-language - original developed for facebook backend servers i believe) you may do some early experimenting perhaps and get a feel for some issues to consider.

            Source https://stackoverflow.com/questions/54091672

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install ipc-bench

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/rigtorp/ipc-bench.git

          • CLI

            gh repo clone rigtorp/ipc-bench

          • sshUrl

            git@github.com:rigtorp/ipc-bench.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Change Data Capture Libraries

            debezium

            by debezium

            libusb

            by libusb

            tinyusb

            by hathach

            bottledwater-pg

            by confluentinc

            WHID

            by whid-injector

            Try Top Libraries by rigtorp

            awesome-modern-cpp

            by rigtorpHTML

            MPMCQueue

            by rigtorpC++

            SPSCQueue

            by rigtorpC++

            spartan

            by rigtorpC++

            udpreplay

            by rigtorpC++