Documentation for views released in 2.7 is here:
https://apacheignite-sql.readme.io/docs/system-views

пт, 18 окт. 2019 г. в 17:24, Nikolay Izhikov <nizhi...@apache.org>:

> Denis, AFAIK we doesn't have documentation for the SQL System Views
> existing in Ignite.
>
> I have plans to write a documentation about metrics and syste views that
> will cover SQL System View.
> It will be available till 2.8 release.
>
>
>
> В Пт, 18/10/2019 в 07:16 -0700, Denis Magda пишет:
> > Alex, Igniters,
> >
> > Who of us was contributing this feature? I don’t see any documentation,
> not
> > clear how the users are expected to benefit from the capability and how
> > everybody will be aware of the feature existence.
> >
> > We need to close the gap and spread the word.
> >
> > Denis
> >
> > On Thursday, October 17, 2019, Alex Plehanov <plehanov.a...@gmail.com>
> > wrote:
> >
> > > Denis,
> > >
> > > Views engine and some views were released in AI 2.7.
> > > In 2.8 they will be moved to the new engine and new views will be
> added (as
> > > part of IEP-35)
> > >
> > >
> > > пт, 18 окт. 2019 г. в 00:50, Denis Magda <dma...@apache.org>:
> > >
> > > > Anton, Maxim,
> > > >
> > > > Are we planning to release the views as part of 2.8? Don't see them
> > >
> > > listed
> > > > in the important features section:
> > > >
> > > >
> https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.8#
> > >
> > > ApacheIgnite2.8-Themostimportantreleasetasks
> > > >
> > > > -
> > > > Denis
> > > >
> > > >
> > > > On Wed, Feb 14, 2018 at 1:49 AM Anton Vinogradov <
> > >
> > > avinogra...@gridgain.com
> > > > >
> > > >
> > > > wrote:
> > > >
> > > > > Vova,
> > > > >
> > > > > Could you confirm
> https://issues.apache.org/jira/browse/IGNITE-7527
> > > >
> > > > ready
> > > > > to be merged?
> > > > >
> > > > > On Wed, Feb 14, 2018 at 12:01 PM, Vladimir Ozerov <
> > >
> > > voze...@gridgain.com>
> > > > > wrote:
> > > > >
> > > > > > I would start with NODES and NODE_ATTRIBUTES as the most simple
> > >
> > > thing.
> > > > > >
> > > > > > On Tue, Feb 13, 2018 at 4:10 AM, Denis Magda <dma...@apache.org>
> > > >
> > > > wrote:
> > > > > >
> > > > > > > Alex P, sounds like a good plan for me.
> > > > > > >
> > > > > > > Vladimir, do you have any suggestions or corrections?
> > > > > > >
> > > > > > > —
> > > > > > > Denis
> > > > > > >
> > > > > > > > On Feb 12, 2018, at 4:57 AM, Alex Plehanov <
> > > >
> > > > plehanov.a...@gmail.com>
> > > > > > > wrote:
> > > > > > > >
> > > > > > > > The views engine and the first view are almost ready to merge
> > > >
> > > > (review
> > > > > > > > comments are resolved). Which views should we take next? My
> > > >
> > > > proposal
> > > > > -
> > > > > > > > NODES, NODE_ATTRIBUTES, NODE_METRICS, NODE_HOSTS and
> > > >
> > > > NODE_ADDRESSES,
> > > > > > > since
> > > > > > > > these views are clear and all topology data available on each
> > >
> > > node.
> > > > > > > > Any objections?
> > > > > > > >
> > > > > > > > 2018-01-25 16:27 GMT+03:00 Alex Plehanov <
> > >
> > > plehanov.a...@gmail.com
> > > > > :
> > > > > > > >
> > > > > > > > > Anton, Vladimir, I've made some fixes. There is only one
> view
> > >
> > > left
> > > > > and
> > > > > > > > > it's renamed to 'IGNITE.LOCAL_TRANSACTIONS'.
> > > > > > > > >
> > > > > > > > > High level design of solution:
> > > > > > > > > When IgniteH2Indexing is starting, it create and start
> > > > > > > > > new GridH2SysViewProcessor, which create and register in
> H2 (via
> > > >
> > > > its
> > > > > > own
> > > > > > > > > table engine) all implementations of system views. Each
> system
> > > >
> > > > view
> > > > > > > > > implementation extends base abstract class GridH2SysView.
> View
> > > > > > > > > implementation describes columns, their types and indexes
> in
> > > > > >
> > > > > > constructor
> > > > > > > > > and must override method getRows for data retrieval (this
> method
> > > > > >
> > > > > > called
> > > > > > > by
> > > > > > > > > H2-compatible table and index implementations for ignite
> system
> > > > > >
> > > > > > views).
> > > > > > > > > Almost no fixes to existing parsing engine was made,
> except some
> > > > > >
> > > > > > places,
> > > > > > > > > where GridH2Table instance was expected, but for system
> views
> > > >
> > > > there
> > > > > is
> > > > > > > > > another class.
> > > > > > > > >
> > > > > > > > > New PR: [1].  Please have a look.
> > > > > > > > >
> > > > > > > > > [1] https://github.com/apache/ignite/pull/3433
> > > > > > > > >
> > > > > > > > > 2018-01-24 19:12 GMT+03:00 Anton Vinogradov <
> > > > >
> > > > > avinogra...@gridgain.com
> > > > > > > :
> > > > > > > > >
> > > > > > > > > > I've created IEP-13 [1] to cover all cases.
> > > > > > > > > > Feel free to create issues.
> > > > > > > > > >
> > > > > > > > > > [1]
> > > > > > > > > > https://cwiki.apache.org/confluence/pages/viewpage.
> > > > > > >
> > > > > > > action?pageId=75962769
> > > > > > > > > >
> > > > > > > > > > On Wed, Jan 24, 2018 at 6:10 PM, Vladimir Ozerov <
> > > > > >
> > > > > > voze...@gridgain.com
> > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Let's start with a single and the most simple view,
> e.g.
> > > > > > > > > > > LOCAL_TRANSACTIONS. We will review and merge it along
> with
> > > > >
> > > > > necessary
> > > > > > > > > > > infrastructure. Then will handle the rest view in
> separate
> > > >
> > > > tickets
> > > > > > and
> > > > > > > > > > > separate focused discussions.
> > > > > > > > > > >
> > > > > > > > > > > On Wed, Jan 24, 2018 at 5:29 PM, Alex Plehanov <
> > > > > > >
> > > > > > > plehanov.a...@gmail.com
> > > > > > > > > > >
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > 1) It’s not a principal point, I can change schema.
> The
> > > > > > > > > > >
> > > > > > > > > > > INFORMATION_SCHEMA
> > > > > > > > > > > > was used because it’s already exists and usually
> used for
> > > > >
> > > > > metadata
> > > > > > > > > > tables
> > > > > > > > > > > > and views. Your proposal is to use schema “IGNITE”,
> am I
> > > > >
> > > > > understand
> > > > > > > > > > you
> > > > > > > > > > > > right? BTW, for now, we can’t query another (H2)
> meta tables
> > > >
> > > > from
> > > > > > the
> > > > > > > > > > > > INFORMATION_SCHEMA, so, “Ignite system views” is only
> > >
> > > available
> > > > > > views
> > > > > > > > > > to
> > > > > > > > > > > > query from this schema.
> > > > > > > > > > > > 2) Exactly for this reason the IGNITE_INSTANCE view
> is
> > >
> > > useful:
> > > > to
> > > > > > > > > > > determine
> > > > > > > > > > > > which node we are connected to.
> > > > > > > > > > > > 3) As the first phase, in my opinion, local views
> will be
> > > >
> > > > enough.
> > > > > > > > > > > > Performance and caching of distributed views should
> be
> > > >
> > > > discussed
> > > > > at
> > > > > > > > > > next
> > > > > > > > > > > > phases, when distributed views implementation will be
> > >
> > > planned.
> > > > In
> > > > > > > > > > current
> > > > > > > > > > > > implementation I tried to use indexing for local
> views
> > >
> > > wherever
> > > > > > it’s
> > > > > > > > > > > > possible.
> > > > > > > > > > > > 4) I don’t think, that JVM info is more critical
> information
> > > > >
> > > > > than,
> > > > > > > for
> > > > > > > > > > > > example, caches or nodes information. When
> authorization
> > > > > >
> > > > > > capabilities
> > > > > > > > > > > > planned to implement?
> > > > > > > > > > > >
> > > > > > > > > > > > About local data: yes, we can rename all currently
> > >
> > > implemented
> > > > > > views
> > > > > > > > > > for
> > > > > > > > > > > > the local node data as LOCAL_..., and create
> (someday) new
> > > >
> > > > whole
> > > > > > > > > > cluster
> > > > > > > > > > > > views (which use distributed requests) without
> prefix or, for
> > > > > > >
> > > > > > > example,
> > > > > > > > > > > with
> > > > > > > > > > > > CLUSTER_ prefix. But some views can show all cluster
> > > >
> > > > information
> > > > > > > using
> > > > > > > > > > > only
> > > > > > > > > > > > local node data, without distributed requests (for
> example
> > > > > > > > > > > > IGNITE_NODE_METRICS, IGNITE_PART_ASSIGNMENT,
> > > > > >
> > > > > > IGNITE_PART_ALLOCATION,
> > > > > > > > > > > > IGNITE_NODES, etc). Are they local or cluster views
> in this
> > > > > >
> > > > > > concept?
> > > > > > > > > > > Which
> > > > > > > > > > > > prefix should be used? And what about caches? Are
> they local
> > >
> > > or
> > > > > > > > > > cluster?
> > > > > > > > > > > On
> > > > > > > > > > > > local node we can see cluster wide caches
> (replicated and
> > > > > > >
> > > > > > > distributed)
> > > > > > > > > > > and
> > > > > > > > > > > > caches for current node only. Local caches list may
> differ
> > >
> > > from
> > > > > > node
> > > > > > > > > > to
> > > > > > > > > > > > node. Which prefix should be used for this view? And
> one
> > >
> > > more,
> > > > > > there
> > > > > > > > > > is
> > > > > > > > > > > no
> > > > > > > > > > > > sense for some views to make them cluster wide (for
> example
> > > > > > > > > > > > INGNITE_INSTANCE). Should we name it LOCAL_INSTANCE
> without
> > > > > >
> > > > > > creating
> > > > > > > > > > > > INSTANCE view?
> > > > > > > > > > > >
> > > > > > > > > > > > So, next steps: split PR, change schema name
> (IGNITE?),
> > >
> > > change
> > > > > view
> > > > > > > > > > name
> > > > > > > > > > > > for caches (CACHES, LOCAL_CACHES?)
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > 2018-01-24 13:03 GMT+03:00 Vladimir Ozerov <
> > > >
> > > > voze...@gridgain.com
> > > > > > :
> > > > > > > > > > > >
> > > > > > > > > > > > > Hi Alex,
> > > > > > > > > > > > >
> > > > > > > > > > > > > System views could be extremely valuable addition
> for
> > >
> > > Ignite.
> > > > > > > > > > Ideally,
> > > > > > > > > > > > user
> > > > > > > > > > > > > should be able to monitor and manage state of the
> whole
> > > >
> > > > cluster
> > > > > > > > > > with a
> > > > > > > > > > > > > single SQL command line. We have plans to
> implement it for a
> > > > >
> > > > > very
> > > > > > > > > > long
> > > > > > > > > > > > > time. However, this is very sensitive task which
> should
> > >
> > > take a
> > > > > lot
> > > > > > > > > > of
> > > > > > > > > > > > > moving pieces in count, such as usability,
> consistency,
> > > > > >
> > > > > > performance,
> > > > > > > > > > > > > security, etc..
> > > > > > > > > > > > >
> > > > > > > > > > > > > Let me point several major concerns I see at the
> moment:
> > > > > > > > > > > > >
> > > > > > > > > > > > > 1) Usability: INFORMATION_SCHEMA
> > > > > > > > > > > > > This schema is part of SQL ANSI standard. When
> creating
> > >
> > > system
> > > > > > > > > > views,
> > > > > > > > > > > > some
> > > > > > > > > > > > > vendors prefer to store them in completely
> different
> > > >
> > > > predefined
> > > > > > > > > > schema
> > > > > > > > > > > > > (Oracle, MS SQL). Others prefer to keep them in
> > > > >
> > > > > INFORMATION_SCHEMA
> > > > > > > > > > > > > directly. Both approaches could work. However, the
> latter
> > > >
> > > > breaks
> > > > > > > > > > > > separation
> > > > > > > > > > > > > of concerns - we store typical metadata near to
> possibly
> > > > >
> > > > > sensitive
> > > > > > > > > > > system
> > > > > > > > > > > > > data. Also it makes security management more
> complex -
> > >
> > > system
> > > > > data
> > > > > > > > > > is
> > > > > > > > > > > > very
> > > > > > > > > > > > > sensitive, and now we cannot simply grant access
> > > > > > > > > >
> > > > > > > > > > INFORMATIONAL_SCHEMA
> > > > > > > > > > > to
> > > > > > > > > > > > > user. Instead, we have to grant that access on
> per-view
> > >
> > > basis.
> > > > > For
> > > > > > > > > > this
> > > > > > > > > > > > > reason my preference is to store system tables in
> separate
> > > > >
> > > > > schema,
> > > > > > > > > > not
> > > > > > > > > > > in
> > > > > > > > > > > > > INFORMATION_SCHEMA
> > > > > > > > > > > > >
> > > > > > > > > > > > > 2) Consistency: local data
> > > > > > > > > > > > > One of implemented view GridH2SysViewImplInstance.
> Normally
> > > >
> > > > SQL
> > > > > > > > > > users
> > > > > > > > > > > > > communicate with Ignite through JDBC/ODBC drivers.
> These
> > > >
> > > > drivers
> > > > > > are
> > > > > > > > > > > > > connected to a single node, typically client node.
> Moreover,
> > > >
> > > > we
> > > > > > will
> > > > > > > > > > > > > introduce high-availability feature when drivers
> were able
> > >
> > > to
> > > > > > > > > > connect
> > > > > > > > > > > to
> > > > > > > > > > > > > any address from a predefined list. It renders
> this view
> > > > >
> > > > > useless,
> > > > > > as
> > > > > > > > > > > you
> > > > > > > > > > > > do
> > > > > > > > > > > > > not know which node you connected to. Also,
> local-only data
> > > > >
> > > > > cannot
> > > > > > > > > > be
> > > > > > > > > > > > > joined in general case - you will receive
> different results
> > >
> > > on
> > > > > > > > > > > different
> > > > > > > > > > > > > nodes. The same goes for transactions, JVM info,
> etc.
> > > > > > > > > > > > >
> > > > > > > > > > > > > 3) Performance
> > > > > > > > > > > > > Suppose we fixed consistency of transactions and
> now this
> > >
> > > view
> > > > > > shows
> > > > > > > > > > > > > transactions in the whole cluster with possibility
> to filter
> > > > >
> > > > > them
> > > > > > by
> > > > > > > > > > > > nodes
> > > > > > > > > > > > > - this is what user would expect out of the box.
> Another
> > > >
> > > > problem
> > > > > > > > > > > appears
> > > > > > > > > > > > > then - performance. How would we collect necessary
> data? How
> > > > >
> > > > > would
> > > > > > > > > > we
> > > > > > > > > > > > > handle joins, when particular view could be
> scanned multiple
> > > > >
> > > > > times
> > > > > > > > > > > during
> > > > > > > > > > > > > query execution? How we achieve sensible
> consistency? Most
> > > > > >
> > > > > > probably
> > > > > > > > > > we
> > > > > > > > > > > > > would collect remote data once when query is
> started, cache
> > >
> > > it
> > > > > > > > > > somehow
> > > > > > > > > > > on
> > > > > > > > > > > > > query session level, and then re-use during joins.
> But
> > >
> > > again,
> > > > > this
> > > > > > > > > > > should
> > > > > > > > > > > > > be discussed separately.
> > > > > > > > > > > > >
> > > > > > > > > > > > > 4) Security: JVM info
> > > > > > > > > > > > > We should define clear boundaries of what info is
> exposed.
> > >
> > > JVM
> > > > > > data
> > > > > > > > > > > along
> > > > > > > > > > > > > with running threads is critically sensitive
> information. We
> > > > > >
> > > > > > should
> > > > > > > > > > not
> > > > > > > > > > > > > expose it until we have authorization capabilities.
> > > > > > > > > > > > >
> > > > > > > > > > > > > In order to start moving this code from prototype
> to
> > > >
> > > > production
> > > > > > > > > > state
> > > > > > > > > > > we
> > > > > > > > > > > > > should start with the most simple and consistent
> views. E.g.
> > > > > > > > > > > >
> > > > > > > > > > > > IGNITE_CACHES.
> > > > > > > > > > > > > Let's move it to a separate PR, review
> infrastructure code,
> > > > >
> > > > > review
> > > > > > > > > > view
> > > > > > > > > > > > > implementation, agree on proper naming and
> placement, and
> > > >
> > > > merge
> > > > > > it.
> > > > > > > > > > > Then
> > > > > > > > > > > > > each and every view (or group of related views)
> should be
> > > > > >
> > > > > > discussed
> > > > > > > > > > and
> > > > > > > > > > > > > reviewed separately.
> > > > > > > > > > > > >
> > > > > > > > > > > > > As far as node-local stuff, may be we should move
> it to a
> > > > >
> > > > > separate
> > > > > > > > > > > > schema,
> > > > > > > > > > > > > or mark with special prefix. E.g.
> "IGNITE.TRANSACTIONS" -
> > >
> > > all
> > > > > > > > > > > > transactions
> > > > > > > > > > > > > in the cluster, "IGNITE.LOCAL_TRANSACTIONS" -
> transactions
> > >
> > > on
> > > > > the
> > > > > > > > > > local
> > > > > > > > > > > > > node. In this case we will be able to merge
> "local" stuff
> > > > >
> > > > > shortly,
> > > > > > > > > > and
> > > > > > > > > > > > > implement more complex but at the same time much
> more useful
> > > > > > > > > > >
> > > > > > > > > > > distributed
> > > > > > > > > > > > > stuff later on.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Makes sense?
> > > > > > > > > > > > >
> > > > > > > > > > > > > Vladimir.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Tue, Jan 23, 2018 at 8:30 PM, Alex Plehanov <
> > > > > > > > > > >
> > > > > > > > > > > plehanov.a...@gmail.com>
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Hello, Igniters!
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > For Ignite diagnostic usually it’s helpful to
> get some
> > >
> > > Ignite
> > > > > > > > > > > internals
> > > > > > > > > > > > > > information. But currently, in my opinion, there
> are no
> > > > > >
> > > > > > convenient
> > > > > > > > > > > > tools
> > > > > > > > > > > > > > for this purpose:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > ·        Some issues can be solved by analyzing
> log files.
> > > >
> > > > Log
> > > > > > > > > > files
> > > > > > > > > > > > are
> > > > > > > > > > > > > > useful for dumps, but sometimes they are
> difficult to read.
> > > > >
> > > > > Also
> > > > > > > > > > > > > > interesting metrics can’t be received runtime by
> request,
> > >
> > > we
> > > > > need
> > > > > > > > > > to
> > > > > > > > > > > > wait
> > > > > > > > > > > > > > until Ignite will write these metrics by timeout
> or other
> > > > >
> > > > > events.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > ·        JMX is useful for scalar metrics.
> Complex and
> > >
> > > table
> > > > > data
> > > > > > > > > > can
> > > > > > > > > > > > > also
> > > > > > > > > > > > > > be received, but it’s difficult to read, filter
> and sort
> > >
> > > them
> > > > > > > > > > without
> > > > > > > > > > > > > > processing by specialized external tools. For
> most
> > >
> > > frequently
> > > > > > used
> > > > > > > > > > > > cases
> > > > > > > > > > > > > > almost duplicating metrics are created to show
> data in an
> > > > > > > > > > >
> > > > > > > > > > > easy-to-read
> > > > > > > > > > > > > > form.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > ·        Web-console is able to show table and
> complex
> > >
> > > data.
> > > > > > > > > > Perhaps,
> > > > > > > > > > > > > > someday  web-console will contain all necessary
> dashboards
> > > >
> > > > for
> > > > > > > > > > most
> > > > > > > > > > > > > problem
> > > > > > > > > > > > > > investigation, but some non-trivial queries will
> not be
> > > >
> > > > covered
> > > > > > > > > > > anyway.
> > > > > > > > > > > > > > Also web-console needs additional infrastructure
> to work.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > ·        External “home-made” tools can be used
> for
> > > >
> > > > non-trivial
> > > > > > > > > > > cases.
> > > > > > > > > > > > > They
> > > > > > > > > > > > > > cover highly specialized cases and usually can’t
> be used as
> > > > > > > > > >
> > > > > > > > > > general
> > > > > > > > > > > > > purpose
> > > > > > > > > > > > > > tools.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Sometimes we are forced to use more than one
> tool and join
> > > >
> > > > data
> > > > > > by
> > > > > > > > > > > > hands
> > > > > > > > > > > > > > (for example, current thread dump and data from
> logs).
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Often RDBMS for diagnostic purposes provides
> system views
> > > >
> > > > (for
> > > > > > > > > > > example,
> > > > > > > > > > > > > > DBA_% and V$% in Oracle), which can be queried
> by SQL. This
> > > > > > > > > >
> > > > > > > > > > solution
> > > > > > > > > > > > > makes
> > > > > > > > > > > > > > all internal diagnostic information available in
> a readable
> > > > >
> > > > > form
> > > > > > > > > > > (with
> > > > > > > > > > > > > all
> > > > > > > > > > > > > > possible filters and projections) without using
> any other
> > > > > > > > > >
> > > > > > > > > > internal or
> > > > > > > > > > > > > > external tools. My proposal is to create similar
> system
> > >
> > > views
> > > > > in
> > > > > > > > > > > > Ignite.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I implement working prototype (PR: [1]). It
> contains views:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_SYSTEM_VIEWS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Registered system views
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_INSTANCE
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Ignite instance
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_JVM_THREADS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > JVM threads
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_JVM_RUNTIME
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > JVM runtime
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_JVM_OS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > JVM operating system
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_CACHES
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Ignite caches
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_CACHE_CLUSTER_METRICS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Ignite cache cluster metrics
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_CACHE_NODE_METRICS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Ignite cache node metrics
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_CACHE_GROUPS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Cache groups
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_NODES
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Nodes in topology
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_NODE_HOSTS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Node hosts
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_NODE_ADDRESSES
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Node addresses
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_NODE_ATTRIBUTES
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Node attributes
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_NODE_METRICS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Node metrics
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_TRANSACTIONS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Active transactions
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_TRANSACTION_ENTRIES
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Cache entries used by transaction
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_TASKS
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Active tasks
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_PART_ASSIGNMENT
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Partition assignment map
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > IGNITE_PART_ALLOCATION
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Partition allocation map
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > There are much more useful views can be
> implemented
> > > >
> > > > (executors
> > > > > > > > > > > > > diagnostic,
> > > > > > > > > > > > > > SPIs diagnostic, etc).
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Some usage examples:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Cache groups and their partitions, which used by
> > >
> > > transaction
> > > > > more
> > > > > > > > > > > than
> > > > > > > > > > > > 5
> > > > > > > > > > > > > > minutes long:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > SELECT cg.CACHE_OR_GROUP_NAME, te.KEY_PARTITION,
> count(*)
> > >
> > > AS
> > > > > > > > > > > > ENTITIES_CNT
> > > > > > > > > > > > > > FROM INFORMATION_SCHEMA.IGNITE_TRANSACTIONS t
> > > > > > > > > > > > > > JOIN
> INFORMATION_SCHEMA.IGNITE_TRANSACTION_ENTRIES te ON
> > > >
> > > > t.XID
> > > > > =
> > > > > > > > > > > > te.XID
> > > > > > > > > > > > > > JOIN INFORMATION_SCHEMA.IGNITE_CACHES c ON
> te.CACHE_NAME =
> > > > > >
> > > > > > c.NAME
> > > > > > > > > > > > > > JOIN INFORMATION_SCHEMA.IGNITE_CACHE_GROUPS cg ON
> > >
> > > c.GROUP_ID
> > > > =
> > > > > > > > > > cg.ID
> > > > > > > > > > > > > > WHERE t.START_TIME < TIMESTAMPADD('MINUTE', -5,
> NOW())
> > > > > > > > > > > > > > GROUP BY cg.CACHE_OR_GROUP_NAME, te.KEY_PARTITION
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Average CPU load on server nodes grouped by
> operating
> > >
> > > system:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > SELECT na.VALUE, COUNT(n.ID),
> AVG(nm.AVG_CPU_LOAD)
> > > >
> > > > AVG_CPU_LOAD
> > > > > > > > > > > > > > FROM INFORMATION_SCHEMA.IGNITE_NODES n
> > > > > > > > > > > > > > JOIN INFORMATION_SCHEMA.IGNITE_NODE_ATTRIBUTES
> na ON
> > > >
> > > > na.NODE_ID
> > > > > > =
> > > > > > > > > > > n.ID
> > > > > > > > > > > > > AND
> > > > > > > > > > > > > > na.NAME = 'os.name'
> > > > > > > > > > > > > > JOIN INFORMATION_SCHEMA.IGNITE_NODE_METRICS nm ON
> > >
> > > nm.NODE_ID
> > > > =
> > > > > > > > > > n.ID
> > > > > > > > > > > > > > WHERE n.IS_CLIENT = false
> > > > > > > > > > > > > > GROUP BY na.VALUE
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Top 5 nodes by puts to cache ‘cache’:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > SELECT cm.NODE_ID, cm.CACHE_PUTS FROM
> > > > > > > > > > > > > > INFORMATION_SCHEMA.IGNITE_CACHE_NODE_METRICS cm
> > > > > > > > > > > > > > WHERE cm.CACHE_NAME = 'cache'
> > > > > > > > > > > > > > ORDER BY cm.CACHE_PUTS DESC
> > > > > > > > > > > > > > LIMIT 5
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Does this implementation interesting to someone
> else? Maybe
> > > >
> > > > any
> > > > > > > > > > views
> > > > > > > > > > > > are
> > > > > > > > > > > > > > redundant? Which additional first-priority views
> must be
> > > > > > > > > >
> > > > > > > > > > implemented?
> > > > > > > > > > > > Any
> > > > > > > > > > > > > > other thoughts or proposal?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > [1] https://github.com/apache/ignite/pull/3413
> > > > > > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > >
> >
> >
>

Reply via email to