Wildsonet::Hazelcast
Hazelcast is an open source clustering and highly scalable data distribution platform for Java, which is:
-
Lightning-fast; thousands of operations/sec.
-
Fail-safe; no losing data after crashes.
-
Dynamically scales as new servers added.
-
Super-easy to use; include a single jar.
Hazelcast is pure Java. JVMs that are running Hazelcast will dynamically cluster. Although by default Hazelcast will use multicast for discovery, it can also be configured to only use TCP/IP for environments where multicast is not available or preferred.
www.hazelcast.com/documentation.jsp
Status
-
No documentation
-
No tests
Not production ready … experimental … proof of concept.
Configuration
To configure Hazelcast put “hazelcast.config” property filled with the path to Hazelcast configuration file into system properties. For example with Rails, you might want to do something like
java.lang.System.setProperty("hazelcast.config", File.join(Rails.root, "config", "hazelcast.xml"))
Usage
Hazelcast core
Maps
To get map(hash) with the name map_name use
map = Wildsonet::Hazelcast.map(map_name)
now to save to data into the map
map[key] = value
and to get back
map[key]
Queue
To publish a message in a queue
Wildsonet::Hazelcast.queue("name_of_queue").put()
and then to retrieve the message
Thread.new do
while true
msg = Wildsonet::Hazelcast.queue("name_of_queue").take()
# Do something with the queue
end
end
take() blocks current thread until new messages arrives to the queue and returns it. To increase performance more threads may be utilized to take messages from queue.
SessionStore
Rack
#TBD#
Rails
#TBD#
Versions
0.0.5
-
Dejewelerize
-
Rename module to Wildsonet
Contributing to wildsonet-hazelcast
-
Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet
-
Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it
-
Fork the project
-
Start a feature/bugfix branch
-
Commit and push until you are happy with your contribution
-
Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
Copyright
Copyright © 2010 Marek Jelen. See LICENSE.txt for further details.