Zohar Shay Software Architect at Webcollage
Webcollage helps vendors syndicate content into their on-line retailer. This happens in real-time when users access the product page on sites such as Walmart, Target, BestBuy, OfficeDepot etc. We provide this service to Vendors like P&G, 3M, Microsoft, Logitech, Canon, Bosch etc.
I’m a software architect at Webcollage.
Choosing a NoSQL database
Initially we visited presentations of other companies showing implementations of MongoDB, Couchbase, REDIS, and Cassandra. We liked tunable consistency, transparent key-level sharding, and the near linear scalability we are using in our current implementations.
Cassandra as a cache layer
We’re using Cassandra as a high-availability, fast front-end cache. We manage our data in Oracle using transaction semantics and then copy recently modified data as restructured optimized information to be used by our runtime rendering code to Cassandra. Our page runtime content serving code have multiple Cassandra hits per page.
We’re currently using version 1.1.0 of Apache Cassandra in production. In production we currently have a single datacenter with 4 nodes implemented as VMWare virtual machines scattered across our physical servers.
All cached data is configured to have four replicas. We are using write consistency of ALL and read consistency of ONE so all nodes take part of servicing Cache hits using local data. Since write process is recoverable in case of issues (e.g. some nodes go down) we can either re-configure to LOCAL_QUROM or suspend writing till issue / maintenance is resolved while sustained full Production traffic load.
Helpful Cassandra community
When we started the project and created our implementation the community was extremely helpful. In several cases I read about an issue right before encountering it so I immediately knew what to do when I did.