ACID 트랜잭션을 수행하는 노드 j에 대한 TokuMX 드라이버를 알고 있습니까?ACID는 Nodejs + Tokumx (mongodb) + Nodejs 용 Mongodb 드라이버와 어떻게 처리합니까?
저는 MongoDB 포크와 비슷한 API 인 TOKUMX을 사용하고 싶습니다. mongo와 같은 API를 사용하지만 일부 기능이 향상되었습니다. 즉 실제 ACID 트랜잭션을 사용합니다. 네이티브 형식의 MongoDB는 ACID를 허용하지 않습니다. 그러나 TOKUMX는 그렇습니다.
그래서 Nodejs에 내 APP를 작성합니다. TokuMX 데이터베이스와 통신하는 데 필요한 드라이버는 노드 몽골어을 사용합니다. 좋은 소식은 해당 드라이버를 사용하여 데이터베이스에 모든 명령을 보낼 수 있다는 것입니다. nodeJS 코드
: 예를 들어, 나는 다음 10 배, 그 일을하지 ACID 트랜잭션처럼 그 프로그램 코드를 매우 빠르게 여러 번 호출하고 때
mycollectionblabla.runCommand('beginTransaction', function(err, res) { ....
mycollectionblabla.insert ....
mycollectionsblabla.runCommand('commitTransaction', function(err4, res4){...
문제가있다. 그리고 그것은이
paralell에서runCommand('beginTransaction'...
, 그리고 물론
runCommand('commitTransaction', ...
실패하는 시작! 그것이라고하기 때문에 : 거래는 이미 존재하며 또한 은 위탁 거래가 없다고 말합니다 ... !!!
나를 괴롭히는 문제가 있습니까? ACID 거래를 만들기 위해 어떻게 문제를 해결할 수 있습니까?
ACID 트랜잭션을 수행하는 nodejs 용 TokuMX 드라이버를 알고 계십니까?
TokenMX 대신 TokuDB를 사용하려고합니다. 그리고 NodeJS의 경우, mysql-queues라는 NPM 모듈을 사용할 것이다. 아마 내 애플 리케이션에 대한 거래를 얻을 수있는 그런 식으로. 최고의 인사 – europeanguy
나는 똑같은 문제에 직면 해있다. 두 사용자가 동시에 트랜잭션 (동시성)을 시도했습니다. 그래서 그들은 runCommand ({beginTransaction : 1})을 2 번 실행했습니다. 마지막으로'트랜잭션이 이미 있습니다 .' – lvarayut
예, 사용자가 동일한 연결을 사용하고 있음을 의미합니다. – leif