Removal of Jiak

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Removal of Jiak

bryan-basho
Administrator
Hello, Riak users.  This is an official announcement that Jiak will be
removed in the next release of Riak.  We have discussed with our
customers and the few users who responded when we brought up the topic
recently, and we think this is a good move.

I have just pushed a changeset to the tip of the bitbucket repo
effecting this change.  If you'd like to start testing against Riak
without Jiak, please clone any revision after:

http://bitbucket.org/basho/riak/changeset/5d373f24dd8a/

FAQ:

Q1) Why was Jiak removed?
A1) Jiak developed out of the early needs of a specific application.
After watching other applications attempt to use it, we developed the
newer "raw" HTTP interface, which better fits a wider base of
applications.  In an effort to point people in the right direction
when using Riak, and to keep our supported codebase in check, we
decided to drop Jiak and focus on the newer HTTP interface.

In addition, the format in which Jiak stored its data was incompatible
with the new Javascript map/reduce abilities in Riak 0.8.  Removing
confusion around that incompatibility is a goal of removing Jiak.

Q2) Where did all of the language-specific libraries go?
A2) We removed the older Jiak libraries to lessen confusion.  By the
time we release the next version of Riak, replacement client libraries
in those same languages will be available.  Previews include:
 * The recently-released "Ripple" client for Ruby
   (http://github.com/seancribbs/ripple)
 * A user-submitted client for Java
   (http://bitbucket.org/jonjlee/riak-java-client)
 * A new PHP client in the usual place
   (http://bitbucket.org/basho/riak/src/tip/client_lib/riak.php)
 * A python client is mostly there, and will be polished before release
   (http://bitbucket.org/basho/riak/src/tip/client_lib/riak.py)
 ...more to come

Q3) How do I transition from using the old Jiak interface to the new
HTTP interface?
A3) Many of the new language-specific client provide similar
interfaces to the old ones, so converting should be relatively simple
in many cases.  To get an idea of what may be different at the HTTP
level, please read the "raw http howto":
(http://bitbucket.org/basho/riak/src/tip/doc/raw-http-howto.txt)

-Bryan

_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Removal of Jiak

Alan McKean
I'm going to miss the read/write mask capabilities of Jiak. As Paul Rogers pointed out with his implementation POV (see the Buoy POV example at http://www.riakrest.com) it enables really nice declarations of data structures that are subsets of the data stored in Riak. Is there any notion of building that into Riak at the bucket level?

The other significant feature we are losing is Jiak's ability to hook in to the lifecycle of Riak operations with bucket modules. That's not in the raw interface either, is it?


On Feb 22, 2010, at 10:17 AM, Bryan Fink wrote:

> Hello, Riak users.  This is an official announcement that Jiak will be
> removed in the next release of Riak.  We have discussed with our
> customers and the few users who responded when we brought up the topic
> recently, and we think this is a good move.
>
> I have just pushed a changeset to the tip of the bitbucket repo
> effecting this change.  If you'd like to start testing against Riak
> without Jiak, please clone any revision after:
>
> http://bitbucket.org/basho/riak/changeset/5d373f24dd8a/
>
> FAQ:
>
> Q1) Why was Jiak removed?
> A1) Jiak developed out of the early needs of a specific application.
> After watching other applications attempt to use it, we developed the
> newer "raw" HTTP interface, which better fits a wider base of
> applications.  In an effort to point people in the right direction
> when using Riak, and to keep our supported codebase in check, we
> decided to drop Jiak and focus on the newer HTTP interface.
>
> In addition, the format in which Jiak stored its data was incompatible
> with the new Javascript map/reduce abilities in Riak 0.8.  Removing
> confusion around that incompatibility is a goal of removing Jiak.
>
> Q2) Where did all of the language-specific libraries go?
> A2) We removed the older Jiak libraries to lessen confusion.  By the
> time we release the next version of Riak, replacement client libraries
> in those same languages will be available.  Previews include:
> * The recently-released "Ripple" client for Ruby
>   (http://github.com/seancribbs/ripple)
> * A user-submitted client for Java
>   (http://bitbucket.org/jonjlee/riak-java-client)
> * A new PHP client in the usual place
>   (http://bitbucket.org/basho/riak/src/tip/client_lib/riak.php)
> * A python client is mostly there, and will be polished before release
>   (http://bitbucket.org/basho/riak/src/tip/client_lib/riak.py)
> ...more to come
>
> Q3) How do I transition from using the old Jiak interface to the new
> HTTP interface?
> A3) Many of the new language-specific client provide similar
> interfaces to the old ones, so converting should be relatively simple
> in many cases.  To get an idea of what may be different at the HTTP
> level, please read the "raw http howto":
> (http://bitbucket.org/basho/riak/src/tip/doc/raw-http-howto.txt)
>
> -Bryan
>
> _______________________________________________
> riak-users mailing list
> [hidden email]
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Removal of Jiak

bryan-basho
Administrator
On Mon, Feb 22, 2010 at 2:06 PM, Alan McKean <[hidden email]> wrote:
> I'm going to miss the read/write mask capabilities of Jiak. As Paul Rogers pointed out with his implementation POV (see the Buoy POV example at http://www.riakrest.com) it enables really nice declarations of data structures that are subsets of the data stored in Riak. Is there any notion of building that into Riak at the bucket level?

There is no current plan to reimplement read/write mask capabilities
for the HTTP interface.  We found that they added more confusion than
they added useful features.  Indeed, POV was interesting, but it was
not realistic for concurrent access by multiple actors.

We've found that one good way to get similar functionality (partial
reads & updates) is to break objects into smaller logical pieces, and
then use link-traversal to grab the pieces you want.

> The other significant feature we are losing is Jiak's ability to hook in to the lifecycle of Riak operations with bucket modules. That's not in the raw interface either, is it?

It is not yet, but it is coming.  In the very near future, either for
this release or right after, we intend to add "pre- and post-commit
hooks" to allow applications to tie in at that level.

-Bryan

_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Removal of Jiak

Justin Sheehy
On Mon, Feb 22, 2010 at 2:22 PM, Bryan Fink <[hidden email]> wrote:

> There is no current plan to reimplement read/write mask capabilities
> for the HTTP interface

> [...]

> In the very near future, either for
> this release or right after, we intend to add "pre- and post-commit
> hooks" to allow applications to tie in at that level.

Bryan summed up the whole story, but I just wanted to add that
pre-commit hooks will provide a superset of the write mask
capabilities.  The primary purpose of them will be that they can fail
and prevent a write from occurring.  So, while there will not
explicitly be "write masks", you will be able to easily write your
own.

-Justin

_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Removal of Jiak

Alan McKean
In reply to this post by bryan-basho
Regarding the POV, I had forgotten that the Jiak implementation of read/write masks was done at the bucket level. What was needed was a switch at the individual operation level ... one that would not cause a global effect for all users.

I'm glad to hear about the pre and post-commit hooks. Will they be configurable at the level of the individual operation or will they be installed once for the bucket? Being able to switch the hook implementations for each operation would enable write masks for each user. Also, will those pre and post-commit hooks be there for reads? If there were hooks for pre-reads, you could mask the reads as well.

How cool would it be to have a 10K object in the store and be able to limit access to specified fields on a user-by-user basis or request only a small portion of it. I would think that it would lead to a trememdous performance improvement to not have to distribute the entire object for many use case

On Feb 22, 2010, at 11:22 AM, Bryan Fink wrote:

> On Mon, Feb 22, 2010 at 2:06 PM, Alan McKean <[hidden email]> wrote:
>> I'm going to miss the read/write mask capabilities of Jiak. As Paul Rogers pointed out with his implementation POV (see the Buoy POV example at http://www.riakrest.com) it enables really nice declarations of data structures that are subsets of the data stored in Riak. Is there any notion of building that into Riak at the bucket level?
>
> There is no current plan to reimplement read/write mask capabilities
> for the HTTP interface.  We found that they added more confusion than
> they added useful features.  Indeed, POV was interesting, but it was
> not realistic for concurrent access by multiple actors.
>
> We've found that one good way to get similar functionality (partial
> reads & updates) is to break objects into smaller logical pieces, and
> then use link-traversal to grab the pieces you want.
>
>> The other significant feature we are losing is Jiak's ability to hook in to the lifecycle of Riak operations with bucket modules. That's not in the raw interface either, is it?
>
> It is not yet, but it is coming.  In the very near future, either for
> this release or right after, we intend to add "pre- and post-commit
> hooks" to allow applications to tie in at that level.
>
> -Bryan


_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com