Scalaris 0.4.1 released

13 views
Skip to first unread message

Nico Kruber

unread,
Mar 21, 2012, 12:56:25 PM3/21/12
to scal...@googlegroups.com
The first bugfix release for Scalaris 0.4.0 is ready. Among the fixes are the
following:

Scalaris 0.4.1
============================================

Packaging:

- new official ConPaaS packages (http://www.conpaas.eu/)
- install rubygem dependencies in Debian postinstall scripts for Ruby API
- improved Windows start scripts (if set, uses the ERLANG_HOME environment
variable to find Erlang, otherwise searches for Erlang in common paths)

Bugs:

- better tx cleanup (should fix rare occurance of duplicate client inform)
- forward additional parameters of the start scripts to new syntax of
scalarisctl

Regards
Nico, Thorsten, Florian

signature.asc

james.aimonetti

unread,
May 1, 2012, 5:55:42 PM5/1/12
to scalaris
Are there docs about embedding Scalaris in an existing application?
I'd like to embed it to back a cache module my application uses to
distribute the data across my cluster of nodes.

The goal here is to back a soft real time billing platform, where we
need consistency across the cluster to know how much credit a user has
at a given time.

Essentially, I have a prepay system that tracks a users' credit level.
When they access the system, it can be through any number of servers
in the cluster (load balancer distributing the requests), so each
server capable of handling a request needs to update the rest of the
servers with what just happened. We're currently investigating a
number of K/V stores and Scalaris looks interesting for its strong
consistency, and Paxos seems a novel approach.

What I'm most concerned with is a user trying to flood us with
requests and not being able to keep an accurate accounting of credit
available. If two requests come in simultaneously, with credit
available only for one request, one request should succeed and the
other denied for insufficient funds.

Would you figure Scalaris to be an appropriate way to handle this
class of problem? Is embedding Scalaris as simple as setting up config
files and issuing an 'application:start(scalaris)' in my application's
code? Or what steps are needed to approach that level of usability.

Thanks for any help,

James

--
James Aimonetti
Distributed Systems Engineer / DJ MC_

2600hz | http://2600hz.com
sip:ja...@2600hz.com
tel: 415.886.7905
>  signature.asc
> < 1KViewDownload

Florian Schintke

unread,
May 7, 2012, 5:23:07 AM5/7/12
to scal...@googlegroups.com
[james.aimonetti]
> Are there docs about embedding Scalaris in an existing application?
> I'd like to embed it to back a cache module my application uses to
> distribute the data across my cluster of nodes.
>
> The goal here is to back a soft real time billing platform, where we
> need consistency across the cluster to know how much credit a user has
> at a given time.
>
> Essentially, I have a prepay system that tracks a users' credit level.
> When they access the system, it can be through any number of servers
> in the cluster (load balancer distributing the requests), so each
> server capable of handling a request needs to update the rest of the
> servers with what just happened. We're currently investigating a
> number of K/V stores and Scalaris looks interesting for its strong
> consistency, and Paxos seems a novel approach.
>
> What I'm most concerned with is a user trying to flood us with
> requests and not being able to keep an accurate accounting of credit
> available. If two requests come in simultaneously, with credit
> available only for one request, one request should succeed and the
> other denied for insufficient funds.
>
> Would you figure Scalaris to be an appropriate way to handle this
> class of problem? Is embedding Scalaris as simple as setting up config
> files and issuing an 'application:start(scalaris)' in my application's
> code? Or what steps are needed to approach that level of usability.

Yes, that is what Scalaris is made for...

Yes, you find the application start routine in src/scalaris.erl:
application:load(
{application, scalaris,
[{description, "scalaris"},
{vsn, ?SCALARIS_VERSION},
{mod, {scalaris, []}},
{registered, []},
{applications, [kernel, stdlib]},
{env, []}
]}).

Then, you can use Scalaris via the api_* interfaces. For transactions,
you can use the functions defined in src/api_tx.erl from your own
Erlang processes. The calls are synchronous and deliver the results of
the transaction request as output parameter.

Florian
Reply all
Reply to author
Forward
0 new messages