Con el anuncio del nuevo modelo de precios de Google App Engine, me he dado cuenta de que mi aplicación no podrá sostenerse por el precio extremadamente alto de las interacciones de Google Datastore. Debido a que es un juego social que depende de la entrada constante y constante del usuario, esta aplicación simplemente requiere demasiadas interacciones del almacén de datos por usuario para ser viable (incluso con Memcache mediando consultas y operaciones comunes).Cassandra Client API ¿Más similar a App Engine Datastore API?
Según la investigación que he realizado, parece que la mejor solución sería que mi equipo migrara a una solución de base de datos basada en Cassandra. He analizado varias API populares, como Hector y Pelops, pero desde mi inspección inicial parece que son un poco demasiado bajas para lo que estoy buscando. ¿Existe una API de cliente Cassandra en Java que emule la API Datstore de bajo nivel de App Engine y que utiliza el mismo modelo de "Grupo de entidades/propiedad"? Por lo menos, me gustaría que la API tenga los mismos conceptos de entidad "antepasado" y mantenga transacciones de grupos cruzados de la misma manera.
EDIT: Para aclarar, lo que realmente estoy buscando es una API de Cassandra que admita Transacciones. Por lo que puedo entender, las transacciones en un entorno NoSQL son difíciles, si no imposibles de implementar sin algunas agrupaciones jerárquicas de "objetos" (llámalos como quieras, entidades, tablas, etc.). Esta parece ser la razón por la que Héctor no los implementa.
Entonces, mi pregunta es, ¿cuál es la API de Cassandra más popular que implementa alguna forma de sistemas transaccionales, preferiblemente uno que utiliza una estructura de Entidad similar a GAE?
No es una respuesta a su pregunta per se, pero parece que un enfoque beneficioso podría ser diseñar una abstracción de las necesidades de almacenamiento de datos de su aplicación. Piense en ello como una API interna, diseñada para ocultar las diferencias de GAE y Cassandra (y quizás algo más como AWS). Es posible que, luego, implementar una versión de Cassandra no sea tan malo y/o le dé flexibilidad para cambiar las tiendas de datos en el futuro. – RichW
@RichW Sí, ese es exactamente el enfoque que estamos tomando en este momento. Estamos creando un conjunto de interfaces independientes de las llamadas de almacén de datos específicas de GAE y trasladando toda la interacción con el almacén de datos a una implementación de esa interfaz. Sin embargo, es una tarea inmensa que realmente no queríamos hacer en esta etapa, por lo que me gustaría saber qué API de Cassandra es la más similar para poder investigar y asegurar que la arquitectura que estamos rediseñando ahora no necesite mucho modificación una vez que hacemos el inevitable cambio. – depthfirstdesigner
Habría investigado la GAE Channel API si tuviera ese tipo de aplicación. Mis aplicaciones son de tamaño pequeño a mediano y seguro que pagaré 20 veces más con el nuevo precio, pero sigue siendo solo una fracción de un servidor dedicado o un costo de alojamiento físico, ya que solo uso HTTP get y/o post muy estándar. Escuché sobre Channel API y creo que puede hacer este tipo de interacciones, lo siento si estoy equivocado, pero estoy adivinando en base a lo que leo. –