For a good portion of today, SoylentNews was generating 503 errors if you either logged in or tried to post a comment. While not 100% consistent, the underlying problem is that the design of MySQL cluster requires us to manually allocate space for indexes and data storage. Today, the index storage maxed out, and MySQL refused to insert new rows stating "Table 'name' is full".
We've doubled the size of the IndexMemory which should solve this issue in the short term. Longer term, we need to migrate some data to reside permanently on HDD storage. If anyone has experience with MySQL Cluster and can offer suggestions, we're all ears.
Here's our current memory usage on the cluster for those who are interested:
ndb_mgm> all report memoryusage Node 2: Data usage is 81%(53650 32K pages of total 65536) Node 2: Index usage is 46%(15407 8K pages of total 32800) Node 3: Data usage is 81%(53648 32K pages of total 65536) Node 3: Index usage is 46%(15407 8K pages of total 32800)
Sorry for any inconvenience
(Score: 2) by mendax on Saturday August 08 2015, @04:45AM
Ah, it's not a bad idea, but it'll never work. You get top marks for effort. SQLite is really intended to be embedded in a program. I don't know for certain but I suspect it wasn't intended to work in a thread-safe manner and I bet it doesn't implement things like row locking. It supports transaction processing. That's a plus.
It's really quite a simple choice: Life, Death, or Los Angeles.
(Score: 0) by Anonymous Coward on Saturday August 08 2015, @05:17AM
Actually, SQLite works very well in threaded environments. It allows for concurrent access to data from multiple programs, though it does not support row-level locks - locks databases for updates/inserts.
Anyway, I don't know why not just use postgres and handle any HA with external scripts (like promoting slave to master, etc.)
https://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling [postgresql.org]