RE: portfs and port_send_event

  • From: "Matthew Parker" <dimensional.dba@xxxxxxxxxxx>
  • To: <frits.hoogland@xxxxxxxxx>, <gogala.mladen@xxxxxxxxx>
  • Date: Sun, 15 Apr 2018 21:42:35 -0700

Yes, these are messaging infrastructure components.
Portfs and port_send_event are exposed as a part of the Solaris Event Port API.

Some performance information:
https://blogs.oracle.com/dap/event-ports-and-performance

For detailed information you have to go back to the Open Solaris Source code

" The port_create() function establishes a queue that multiplexes events
from disjoint sources. Each source has a corresponding object type and
source-specific mechanism for associating an object with a port."


Matthew Parker
Chief Technologist
Dimensional DBA
Oracle Gold Partner
425-891-7934 (cell)
D&B 047931344
CAGE 7J5S7
Dimensional.dba@xxxxxxxxxxx
View Matthew Parker's profile on LinkedIn
www.dimensionaldba.com


-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx <oracle-l-bounce@xxxxxxxxxxxxx> On Behalf 
Of frits.hoogland@xxxxxxxxx
Sent: Sunday, April 15, 2018 2:22 PM
To: gogala.mladen@xxxxxxxxx
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: portfs and port_send_event

There is AST terminology in oracle, alongside BAST. However, it might be 
possible the naming for the x$ tables might come from the oracle layered 
naming, where ksa means kernel service asynchronous messages. Also, this table 
is used in functions that are in these layers. So that’s why I named them this 
way. 

Verstuurd vanaf mijn iPad

Op 15 apr. 2018 om 22:49 heeft Mladen Gogala <gogala.mladen@xxxxxxxxx> het 
volgende geschreven:

I believe that it's "kernel service asynchronous system trap". If you 
remember Steve Adams internals book, Steve was talking about "blocking AST" 
and "non-blocking AST"  entities, without explaining what those entities 
were. Having been a VAX/VMS system administrator for years, I know those 
terms very well. Now, Oracle has preserved its VAX/VMS roots to this day, not 
only in "AFIEDT.BUF" files but also in terminology. AST or "asynchronous 
system trap" was a very sophisticated mechanism through which an external 
code could be executed within the process context. There was AST interrupt 
and an associated register in the NVAX family of processors. As opposed to 
Intel-like CPU family which only has two CPU modes (kernel and user), NVAX 
family of processors had 4 (user, supervisor, executive and kernel). Each 
"change mode" instruction was a privileged system trap and, if my memory 
serves me right, AST was running as an exec mode code. File system, called 
"Files-11" was also running in Exec mode.  Steve has never made any attempt 
to clarify how AST can be used in a Unix context and a later discussion with 
Howard Rogers of the "Dizwell" fame partly explained why.

However, all these notions were completely strange and unfamiliar to the Unix 
administrators because Unix had no such thing as AST and still doesn't have 
anything like that. Unix signals are nothing like AST because no external 
code can be delivered. However, Oracle has developed a sophisticated 
emulation, based on sockets. and I believe that x$ksast keeps track of those 
"Unix AST" thingies, whatever they might be. Once again, this is only an 
assumption. I have not had any confirmation for that assumption.

PS:

-----

For those who don't know, "AFIEDT.BUF" comes from Oracle v4 on VAX/VMS. The 
"AFI" was "A Friendly Interface" tool, a precursor to sqlplus, and EDT was 
VAX/VMS screen editor. There was a wide variety of "sqlplus" competing tools: 
sqldba (V6, V7), svrmgrl (V8) and the latest one is sqlcl, which is currently 
my favourite. There was a new 18.1 release on the last Thursday, 04/12/2018.  
I tested it against Oracle 11.2, Oracle 12.1 and Oracle 12.2 and it works 
like a charm.


On 04/15/2018 08:54 AM, Frits Hoogland wrote:
There is some sort of administration kept in x$ksast (kernel service 
asynchronous messages state?)

-- 
Mladen Gogala
Database Consultant
Tel: (347) 321-1217

--
//www.freelists.org/webpage/oracle-l


--
//www.freelists.org/webpage/oracle-l



--
//www.freelists.org/webpage/oracle-l


Other related posts: