On 19 May 2017 at 10:10, Yoann Rodiere <yoann(a)hibernate.org> wrote:
Sanne, the confusions you pointed out were:
Thinking it's more efficient than other providers (it's not)
Thinking it's integrated to replicated in-memory datastores such as
Infinispan (it's not)
It's also not scalable in terms of concurrency (at all) and in size
(it will get people into OOM). The "zero durability" aspect is also
not obvious to many.
So you'd want a name that says "it's not persistent" and probably
"it's easy
to set up" while not hinting in any way at efficiency or Infinispan
integration.
Some attempts (none of which is perfect, but what is? :) ):
naive
mock
basic
jvm-heap
java-map (RAMDirectory does use a map to store its "RAMFiles")
We need to pick one and only one :)
Gustavo's "local-heap" is a strong contender but personally I think I
still like "testing" more as it sets the goal very clearly. The reason
to pick "local-heap" might be that I can see myself using it in
demos..
The last one may be close to what we're looking for: it clearly
says it's in
local RAM, and doesn't hint at Infinispan integration. Some could still
think it's a high-performance implementation, but at some point it's just
interpretation: one could just as well think "if it's so simple that it just
uses a java.util.Map, it must not be very advanced, and thus not very
efficient".
I guess I can take this as a vote for "local-heap".
I hear many technical points, but the reality after years of feedback
is that people don't get it.
If we can take away configuration properties that's a very good thing.
The only reason for which I'm willing to compromise and still have
such an option around is for testing.
Personally I think we need to refactor our documentation and move many
options in to an "advanced only" section, and have a dedicated "how to
test" section. These might be good to document some things which the
main guide will intentionally omit.
Yoann Rodière
Hibernate NoORM Team
yoann(a)hibernate.org
On 19 May 2017 at 09:34, Gustavo Fernandes <gustavo(a)infinispan.org> wrote:
>
> -1 to demote it to "testing"
>
> Let me show the other side of the coin :)
>
> RAMDirectory has its uses, as long as one understands its limitations. It
> is convenient for small non-persistent indexes, and last time I measured,
> it was faster to load than the FS directory.
>
> So it could be used in production (and I believe some people do), and
> renaming it to "testing" would feel a bit awkward. One example of
> production use of the RAMDirectory is the ES Percolator [1]
>
> We can always throw config errors or log WARN if someone is using "ram"
> with clustered caches on Infinispan, but if rebranding is really needed,
> I'd vote for something like "local-ram" or "local-heap".
>
> Thanks,
> Gustavo
>
> [1]
>
>
https://github.com/elastic/elasticsearch/blob/master/modules/percolator/s...
>
>
>
> On Thu, May 18, 2017 at 9:32 PM, Sanne Grinovero <sanne(a)hibernate.org>
> wrote:
>
> > -1 for "ephemeral" and "volatile", they are pretty much
synonyms of
> > "ram" with all the same possible confusions, even to the point of
> > looking like being the recommended choice for "ephemeral class"
> > machines on openstack.
> >
> > "unreliable": it's not unrelaiable as it's actually very
reliable and
> > to be recommended for testing, e.g. if you have an issue with our
> > other directories I'd love to know if you can reproduce it with this
> > one.
> >
> > I'll go with "testing". I want to be able to recommend it for
testing,
> > and make it clear it's only meant for that.
> >
> >
> > On 18 May 2017 at 20:22, Gunnar Morling <gunnar.morling(a)googlemail.com>
> > wrote:
> > > I'd argue you can keep the name, if it's in the test JAR. If
people
> > > still use it in their production code, well...
> > >
> > > Otherwise, how about "ephemeral"?
> > >
> > > 2017-05-18 19:05 GMT+02:00 Sanne Grinovero <sanne(a)hibernate.org>:
> > >> On 18 May 2017 at 17:31, Gunnar Morling
> > >> <gunnar.morling(a)googlemail.com>
> > wrote:
> > >>> Can't you just move it to the test JAR if it's for testing
only?
> > >>
> > >> Interesting idea, we can try that as well.
> > >>
> > >> I'd still want to set the name straight though. Let's agree on
a name
> > first.
> > >>
> > >>>
> > >>> Am 18.05.2017 6:29 nachm. schrieb "Sanne Grinovero" <
> > sanne(a)hibernate.org>:
> > >>>
> > >>> Right technically it's not a unit test. But I'd like to
focus on the
> > >>> testing aspect, as "local-ram" might still convey
concepts as
> > >>> "fast",
> > >>> maybe even expect it to engage Infinispan's off-heap
capabilities,
> > >>> or
> > >>> just being an option to consider for other reasons.
> > >>>
> > >>> "testing" ?
> > >>>
> > >>> On 18 May 2017 at 17:20, Adrian Nistor <anistor(a)redhat.com>
wrote:
> > >>>> I agree, but probably "unit-testing" is not such a
good name
> > >>>> either.
> > >>>> Technically, that's a functional test.
> > >>>> I think I like "local-ram" better, implying that it
is not
> > >>>> shared/distributed and it is also volatile.
> > >>>>
> > >>>>
> > >>>> On 05/18/2017 06:07 PM, Sanne Grinovero wrote:
> > >>>>>
> > >>>>> As anyone who's bothered to read the manual knows, the
"ram"
> > directory
> > >>>>> should really only be used for unit tests. The other
> > >>>>> implementations,
> > >>>>> while typically disk based, are also faster (memory mapped
files)
> > >>>>> and
> > >>>>> more efficient (better locking design) so there's
really no reason
> > >>>>> to
> > >>>>> use it, not even performance except for trivial, small,
non
> > >>>>> important
> > >>>>> data sets.
> > >>>>>
> > >>>>> For example the Elasticsearch team is making sure of this
by
> > >>>>> having
> > >>>>> totally removed the option of using the RAMDirectory -
something I
> > >>>>> actually don't appreciate as our unit tests could
benefit from it,
> > >>>>> having slow storage on our test environments.
> > >>>>>
> > >>>>> Tristan is reporting that the "ram" terminology
is confusing
> > >>>>> people,
> > >>>>> not least in the Infinispan community as "RAM"
might be ambiguous
> > >>>>> since everything is in memory, and people get surprised
it's not
> > >>>>> replicated in the "in memory cluster".
> > >>>>>
> > >>>>> I wouldn't want to go to the extremes of the
Elasticsearch team as
> > >>>>> I
> > >>>>> believe having this option is very useful, especially for
testing.
> > >>>>>
> > >>>>> Should we rename (rebrand) its short name "ram"
into
> > >>>>> "unit-testing" ?
> > >>>>>
> > >>>>> I suspect that would make people think a bit more before
pushing
> > >>>>> it
> > >>>>> into production...
> > >>>>>
> > >>>>>
> > >>>>> Thanks,
> > >>>>> Sanne
> > >>>>
> > >>>>
> > >>>>
> > >>> _______________________________________________
> > >>> hibernate-dev mailing list
> > >>> hibernate-dev(a)lists.jboss.org
> > >>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
> > >>>
> > >>>
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev