You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by "John Plevyak (JIRA)" <ji...@apache.org> on 2009/12/02 17:56:20 UTC

[jira] Created: (TS-54) UnixNet cleanup, encapsulation of event subsystem

UnixNet cleanup, encapsulation of event subsystem
-------------------------------------------------

                 Key: TS-54
                 URL: https://issues.apache.org/jira/browse/TS-54
             Project: Traffic Server
          Issue Type: Improvement
          Components: Cleanup
         Environment: all unixesque
            Reporter: John Plevyak


The UnixNet subsystem was modified for epoll, but lots of the old data structures, data members and code
remain for the old "bucket" approach.

The epoll code should also be encapsulated to simplify support for other platforms and a possible move
to an event library.

The current code is complicated by limitations in Queue which require specifying the link field for every
use, but which can be fixed by in the template.

Finally, the current code does an unnecessary allocation for the epoll struct which should be part of the NetVConnection etc.
and it takes a lock for the enable_queue which can be avoided by using the non-locking AtomicSSL.

This work is also good preparation for evaluating libev or libevent as it will reduce the amount of code which
will have to be changed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (TS-54) UnixNet cleanup, encapsulation of event subsystem

Posted by "John Plevyak (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-54?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Plevyak reassigned TS-54:
------------------------------

    Assignee: John Plevyak

> UnixNet cleanup, encapsulation of event subsystem
> -------------------------------------------------
>
>                 Key: TS-54
>                 URL: https://issues.apache.org/jira/browse/TS-54
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Cleanup
>         Environment: all unixesque
>            Reporter: John Plevyak
>            Assignee: John Plevyak
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> The UnixNet subsystem was modified for epoll, but lots of the old data structures, data members and code
> remain for the old "bucket" approach.
> The epoll code should also be encapsulated to simplify support for other platforms and a possible move
> to an event library.
> The current code is complicated by limitations in Queue which require specifying the link field for every
> use, but which can be fixed by in the template.
> Finally, the current code does an unnecessary allocation for the epoll struct which should be part of the NetVConnection etc.
> and it takes a lock for the enable_queue which can be avoided by using the non-locking AtomicSSL.
> This work is also good preparation for evaluating libev or libevent as it will reduce the amount of code which
> will have to be changed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (TS-54) UnixNet cleanup, encapsulation of event subsystem

Posted by "John Plevyak (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-54?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Plevyak updated TS-54:
---------------------------

    Attachment: ts-List_and_net-cleanup-jp-v1.patch

This patch contains both an updated List.h which encodes the offset of the Link field into the
instantiation of Queue, DLL, SLL for safety and clarity and the application of that
to iocore/net to simplify the various wait/enable/open queues.  This patch also integrates
the epoll_data into the UnixNetVConnection to get rid of an unnecessary malloc
on the critical path and as a first step in encapsulating the various polling mechanisms.

> UnixNet cleanup, encapsulation of event subsystem
> -------------------------------------------------
>
>                 Key: TS-54
>                 URL: https://issues.apache.org/jira/browse/TS-54
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Cleanup
>         Environment: all unixesque
>            Reporter: John Plevyak
>            Assignee: John Plevyak
>         Attachments: proposed-jp-v1-List.h, ts-List_and_net-cleanup-jp-v1.patch
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> The UnixNet subsystem was modified for epoll, but lots of the old data structures, data members and code
> remain for the old "bucket" approach.
> The epoll code should also be encapsulated to simplify support for other platforms and a possible move
> to an event library.
> The current code is complicated by limitations in Queue which require specifying the link field for every
> use, but which can be fixed by in the template.
> Finally, the current code does an unnecessary allocation for the epoll struct which should be part of the NetVConnection etc.
> and it takes a lock for the enable_queue which can be avoided by using the non-locking AtomicSSL.
> This work is also good preparation for evaluating libev or libevent as it will reduce the amount of code which
> will have to be changed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (TS-54) UnixNet cleanup, encapsulation of event subsystem

Posted by "John Plevyak (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-54?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Plevyak updated TS-54:
---------------------------

    Attachment: proposed-jp-v1-List.h

A proposed version of List.h which embeds the Link offset into the SLL DLL Queue template so
that it does not have to be specified with each operation.   Backward compatible.

> UnixNet cleanup, encapsulation of event subsystem
> -------------------------------------------------
>
>                 Key: TS-54
>                 URL: https://issues.apache.org/jira/browse/TS-54
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Cleanup
>         Environment: all unixesque
>            Reporter: John Plevyak
>            Assignee: John Plevyak
>         Attachments: proposed-jp-v1-List.h
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> The UnixNet subsystem was modified for epoll, but lots of the old data structures, data members and code
> remain for the old "bucket" approach.
> The epoll code should also be encapsulated to simplify support for other platforms and a possible move
> to an event library.
> The current code is complicated by limitations in Queue which require specifying the link field for every
> use, but which can be fixed by in the template.
> Finally, the current code does an unnecessary allocation for the epoll struct which should be part of the NetVConnection etc.
> and it takes a lock for the enable_queue which can be avoided by using the non-locking AtomicSSL.
> This work is also good preparation for evaluating libev or libevent as it will reduce the amount of code which
> will have to be changed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (TS-54) UnixNet cleanup, encapsulation of event subsystem

Posted by "John Plevyak (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-54?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Plevyak updated TS-54:
---------------------------

    Attachment: ts-List-net-cleanup-jp-v2.patch

This updates the patch against the latest repository.

Please review this patch for checkin.

This is just one step in cleaning up the net code, but I would like to get the List
change in so that it can be applied to other subsystems.  In particular the
pending cache changes.

> UnixNet cleanup, encapsulation of event subsystem
> -------------------------------------------------
>
>                 Key: TS-54
>                 URL: https://issues.apache.org/jira/browse/TS-54
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Cleanup
>         Environment: all unixesque
>            Reporter: John Plevyak
>            Assignee: John Plevyak
>         Attachments: proposed-jp-v1-List.h, ts-List-net-cleanup-jp-v2.patch, ts-List_and_net-cleanup-jp-v1.patch
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> The UnixNet subsystem was modified for epoll, but lots of the old data structures, data members and code
> remain for the old "bucket" approach.
> The epoll code should also be encapsulated to simplify support for other platforms and a possible move
> to an event library.
> The current code is complicated by limitations in Queue which require specifying the link field for every
> use, but which can be fixed by in the template.
> Finally, the current code does an unnecessary allocation for the epoll struct which should be part of the NetVConnection etc.
> and it takes a lock for the enable_queue which can be avoided by using the non-locking AtomicSSL.
> This work is also good preparation for evaluating libev or libevent as it will reduce the amount of code which
> will have to be changed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.