Skip to content

A SEDA programming framework aims to generate high concurrency applications.

Notifications You must be signed in to change notification settings

sl950313/SEDA-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SEDA_framework

Author : Lei Shi


Introduction:

This is C++ implement of SEDA framework. EveryOne can use our programming framework to implement a high concurrency system easily.

A http server is a example for the use of SEDA framework. It may give you help. the SEDA can be found at : The Staged Event-Driven Architecture for Highly-Concurrent Server Applications

  • The advantages of SEDA:

    • The SEDA makes the deployment of architecture easier. developors will only focus on the logical function of your own system.

    • The SEDA makes full use of system resources with flexible thread control.

  • The disadvantages:

    • NULL

Our architecture and technology implement:

  • Stage :
                                    
                   ---------------------------------------------
                   |                                           |
   ------------    |  |---------------|      |---------------| |    
   |    MSG   |------->    receiver   ------>| stage-handler | |
   ------------    |  |---------------|      |---------------| |  
                   |          ^                      ^         |
                   |          |                      |         |
                   |          |                      |         |
                   |  |---------------|      |---------------| |    -------
                   |  | stage-control |<---->|  worker-pool  ------>| MSG |
                   |  |---------------|      |---------------| |    -------
                   ---------------------------------------------
                   
  • Each function of module
    • receiver:

      • The receiver is a subsriber of message-queue.
      • Receive msq from other stage and forwarding to the stage-handler.
      • The receive is implemented by ZeroMQ.
    • stage-handler:

      • The logic of handling massages and the producer of message-queue, the excute units are in worker-pool.
    • worker-pool:

      • A worker-pool which can be implement as thread-based or processor-based worker-pool.
      • The thread-based worker-pool is implemented by mutex-based and no-mutex-based.
      • The difference between different types of worker-pool should be done during the following days.
    • stage-control:

      • Collecting infomation from receiver and worker-pool, then dynamicly adjusting the queue-num and worker-num.
      • But Using which method to adjust the load is still under thinking.

About

A SEDA programming framework aims to generate high concurrency applications.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published