New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Ryan Slobojan on Jun 18, 2007
The major goals for the project include:
Emmanuel gave us a few concrete examples of these goals in practice, including:
On the final release schedule, Emmanuel indicated that Query and Index optimization are two areas where he sees some more work being done before 3.0 is released, and he concluded with:
The Hibernate Search core code is fairly stable actually. The main reason why it's marked as beta is because we are still unsure of some of the extension APIs, Hibernate Search core is fairly flexible and you can plug a bunch of custom strategies. While they have been fairly stable so far, we would like to have a feature complete product to be sure the API won't evolve and break.You know the usual song. An open source project is released when it is done. All I can say is the the summer is long and I haven't planned much vacations :)
An interesting debate discussing the pros and cons of the Hibernate Search strategy has also begun, with Sanjiv Jivan describing good and bad points that he sees with Hibernate Search, and Emmanuel Bernard responding to Sanjiv's concerns. What is your viewpoint on Hibernate Search?
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Fair Trade Software Licensing - A Guide to Neo4j Licensing Options
Is this targeting the same space as Opensymphony's Compass[1]? Both seem to ease integration with Lucene. Compass has excellent Hibernate support though its GPS system, as well as synchronisation with Spring transactions.
[1]www.opensymphony.com/compass/
Hibernate search is pretty neat and seems to have almost all of the bases covered. I'd agree that Sanjiv really is talking about a completely different use-case for lucene than what Hibernate would be targeting.
That said, in going over the documents, it looks like HSearch cannot embed objects bidirectionally (at least according to the notes at the bottom of 3.1.2).
To use the same example in the docs (Place object with a one-to-many relationship to an Address object) -- there are cases in which I need to embed the Address into the Place *and* all of the Places an Address references into the Address.
I am, of course, no HSearch expert, so I'd love to hear that I missed that functionality somewhere.
Hi There,
I'd be interested in the answer as well.
BR,
~A
Hi Thomas,
The bidirectionality is supported except a specific case: when only a collection is updated (not it's owning entity - in your example, a new place added to an address), the update event is not propagated (HSEARCH-56). People use the collection support already, knowing the limitation and the workaround. I need to work with Steve to incorporate the fix.
Yes, this is the same space in the sense that it simplifies Lucene indexing and Lucene search for people using ORMs.
However the user experience approach is different as Ryan described: for people familiar with JBoss Seam, this is the same approach: a unified programmatic model (expect some integrations with Seam soon - I hope).
Best thing is to check the docs to figure it out.
BTW: Hibernate Search is no longer beta2, but beta3 :)
Actually, HSearch features are just a subset of the features offered by Compass. First, the generic and pluggable GPS mechanism in compass enables plugging in different content sources to be indexed/searched, hibernate/JPA is just one of many such plug-ins. This enables searching on more than just domain model, but also xml documents, file system, web sites, and databases that are not mapped to the domain. Further more, it provides transactional indexing support and as already mentioned integrates nicely with Spring transactions. It has much better index management than HSearch provides including configurable strategies for optimization and index partitioning. When comparing HSearch to Compass with ORM, they are both easy to use and configure and they are both very intuitive. Therefore, I would recommend using Compass for it's broader scope, maturity, and advance features.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
6 comments
Watch Thread Reply