Spring supports a variety of databases including Postgres.  I have no
problem with using Postgres instead of MySQL.

On Wed, Aug 2, 2017 at 3:32 PM, Simon Elliston Ball <
si...@simonellistonball.com> wrote:

> Agreed on Postgres. It's a lot easier to work with license-wise in apache
> projects, and has a lot of the capability we need here, especially if we
> can find a sensible ORM. Anyone got any thoughts on what would work there?
>
> Simon
>
> > On 2 Aug 2017, at 21:21, Matt Foley <ma...@apache.org> wrote:
> >
> > Hi Ryan,
> > Zookeeper has a default (and seldom changed) max znode size of 1MB, but
> it is “designed to store data on the order of kilobytes in size.”[1]  And
> it’s not really intended for frequently-changing data, which is okay here.
> But I just included it for completeness, I’m not advocating for its use
> here.
> >
> > I agree with you that the problem, especially because it includes shared
> config, would fit well in a db.  I’d suggest you consider PostgreSQL rather
> than MySQL, as postgres is built into Redhat 6 and 7, and Ambari now uses
> it by default, so an available server might be conveniently at hand in most
> deployments.  Definitely assume the user will want to use an external db
> instance, rather than one dedicated to this use.  Conveniently Postgres
> also has a native REST interface, with the usual authorization options.
> >
> > Never mind about Ambari Views for now.  It’s just a way to get GUI
> dashboards without writing all the infrastructure for it, which as you say
> is somewhat water under the bridge.
> > Cheers,
> > --Matt
> >
> > [1] https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html
> >
> >
> >
> > On 8/2/17, 12:34 PM, "Ryan Merriman" <merrim...@gmail.com> wrote:
> >
> >    Matt,
> >
> >    Thank you for the suggestions.  I forgot to include Zookeeper.  Are
> there
> >    any tradeoffs we should be aware of if we decide to use Zookeeper?
> Are
> >    there guidelines for how much data can be stored in Zookeeper?
> >
> >    To answer your questions:
> >
> >    1.  I think both use cases make sense so a combination of shared and
> >    personal.
> >    2.  I was planning on managing authorization in the REST layer.  For
> now
> >    viewer login auth (which is really REST auth) will suffice but we
> might
> >    consider other methods since authentication is pluggable here.
> >    3.  I had not considered Ambari Views since this will support an
> existing
> >    UI.  How would Ambari Views help us here?
> >
> >    I will proceed initially with a saved search POC using a relational
> >    database unless you think that is a bad idea or there are other better
> >    options.  Hopefully an example will further the discussion.
> >
> >    Ryan
> >
> >>    On Wed, Jul 26, 2017 at 6:31 PM, Matt Foley <ma...@apache.org>
> wrote:
> >>
> >> There’s a couple other places you could put config info (but maybe not
> >> saved searches):
> >> -  Zookeeper
> >> -  metron-alerts-ui/config.xml or config.json  file
> >> -  the Ambari database, whichever it happens to be
> >>
> >> Questions that influence the decision include:
> >> 1. Should there be one configuration shared among users, or strictly
> >> per-user config?  Or a combination of shared and personal?
> >> 2. What security do you wish to maintain on changing those settings,
> both
> >> shared and personal?  What authentication/authorization scheme will you
> >> use?  Is viewer login auth sufficient for this?
> >> 3. Will you assume Ambari exists?  Did you consider using Ambari Views
> as
> >> the basis? (https://cwiki.apache.org/confluence/display/AMBARI/Views )
> >>
> >> On 7/26/17, 2:54 PM, "Ryan Merriman" <merrim...@gmail.com> wrote:
> >>
> >>    In anticipation of METRON-988 being merged into master, there will
> be a
> >>    need to persist user preferences such as UI layout, saved searches,
> >> search
> >>    history, etc.  I think where and how we persist this data should be
> >>    discussed in order to facilitate a design.  This data won't be large
> in
> >>    scale and may or may not be relational.  The initial features I am
> >> aware of
> >>    don't require a relational model but I'm sure there will be some that
> >> do in
> >>    the future.  I'm also assuming this code will live in the REST
> >> application
> >>    but someone correct me if there is a reason to keep it somewhere
> else.
> >>
> >>    I think it would be preferable to leverage something that is already
> >> in our
> >>    stack and available as a dependency.  However I would not be against
> >> adding
> >>    something if it really were the right tool for the job.  Assuming
> >> others
> >>    agree we should stick with out current stack, I see these options:
> >>
> >>       - MySQL (or other relational database)
> >>          - good fit for the size of data
> >>          - relational capabilities
> >>          - an ORM framework will be necessary which will increase our
> >>          dependencies and complexity
> >>       - HBase
> >>          - client setup and code will likely be simpler and less complex
> >>          - limited data model
> >>       - Elasticsearch
> >>          - json is a convenient data model
> >>          - we already store user preferences here (Kibana dashboards)
> >>          - we have abstracted our search engine interactions in several
> >> places
> >>          and would have to here too
> >>
> >>    Elasticsearch is out for me because we view search engines as
> >> pluggable.  I
> >>    think HBase would be the easiest to implement and get working but I'm
> >>    worried we'll have similar use cases that won't be a good fit for
> >> HBase.
> >>    In that case we would need to come up with an alternative persistence
> >>    solution anyways.  I think MySQL is a good fit long term but I'm
> >> concerned
> >>    about adding a heavy ORM framework.  Also, we can't use Hibernate
> >> because
> >>    it is not license friendly.
> >>
> >>    Does anyone have any thoughts on these options or other ideas?
> >>
> >>    This requirement also brings up another topic that is outside of this
> >>    discussion.  Should we reevaluate our authentication strategy?
> >> Currently
> >>    the REST application uses JDBC for this but if we decide a different
> >>    mechanism is better then we no longer need a relational database.
> This
> >>    might affect our decision to use MySQL for this kind of data
> >> persistence.
> >>
> >>    Ryan
> >>
> >>
> >>
> >>
> >
> >
> >
>

Reply via email to