Commit 6d7cb63c authored by Administrator's avatar Administrator

adding atomic to test, need to test

parent 4cba2458
This diff is collapsed.
{ {
"metadata": { "metadata": {
"name": "", "name": "",
"signature": "sha256:1ca21b1538256b8f19a1e8b22af61d6439dd14912f5cd0c4e3eca72da3cea077" "signature": "sha256:4bf33768886345db6440931d106e00bcaa9db0e0745a364d8e170774d0443d3a"
}, },
"nbformat": 3, "nbformat": 3,
"nbformat_minor": 0, "nbformat_minor": 0,
...@@ -18,27 +18,34 @@ ...@@ -18,27 +18,34 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 22 "prompt_number": 1
}, },
{ {
"cell_type": "code", "cell_type": "code",
"collapsed": false, "collapsed": false,
"input": [ "input": [
"from time import time\n", "import datetime"
"print(time())"
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [],
{ "prompt_number": 2
"output_type": "stream", },
"stream": "stdout", {
"text": [ "cell_type": "code",
"1412775903.5760932\n" "collapsed": false,
] "input": [
} "#number_userIndex = 100\n",
"#number_projectIndex = 50\n",
"#number_documentIndex = 10000\n",
"number_userIndex = 5\n",
"number_projectIndex = 50\n",
"number_documentIndex = 1000"
], ],
"prompt_number": 8 "language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -55,36 +62,73 @@ ...@@ -55,36 +62,73 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 9 "prompt_number": 4
}, },
{ {
"cell_type": "code", "cell_type": "code",
"collapsed": false, "collapsed": false,
"input": [ "input": [
"Node.objects.all().delete()\n", "t0 = datetime.datetime.now()\n",
"User.objects.filter(username__startswith = \"User #\").delete()\n", "with transaction.atomic():\n",
" for userIndex in range(number_userIndex):\n",
" userName = 'User #%d' % (userIndex, )\n",
" user = User(username=userName)\n",
" user.save()\n",
" rootNode = Node.add_root(name=userName, type_id=nodeTypeRoot.pk, user_id=user.id)\n",
" \n",
" print(userName)\n",
" for projectIndex in range(number_projectIndex):\n",
" projectName = 'Project #%d-%d' % (userIndex, projectIndex, )\n",
" projectNode = Node(name=projectName, type_id=nodeTypeProject.pk, user_id=user.id)\n",
" rootNode.add_child(instance=projectNode)\n",
" documents = [\n",
" {\"data\": {\"name\":'Document #%d-%d-%d' % (userIndex, projectIndex, documentIndex, ), \"type_id\":nodeTypeDocument.pk, \"user_id\":user.id}}\n",
" for documentIndex in range(number_documentIndex)\n",
" ]\n",
" Node.load_bulk(documents, projectNode)\n",
"\n", "\n",
"t0 = time()\n", "t1 = datetime.datetime.now()\n",
"for userIndex in range(100):\n", "t1 - t0"
" userName = 'User #%d' % (userIndex, )\n", ],
" user = User(username=userName)\n", "language": "python",
" user.save()\n", "metadata": {},
" rootNode = Node.add_root(name=userName, type_id=nodeTypeRoot.pk, user_id=user.id)\n", "outputs": [
" print(userName)\n", {
" for projectIndex in range(50):\n", "output_type": "stream",
" projectName = 'Project #%d-%d' % (userIndex, projectIndex, )\n", "stream": "stdout",
" projectNode = Node(name=projectName, type_id=nodeTypeProject.pk, user_id=user.id)\n", "text": [
" rootNode.add_child(instance=projectNode)\n", "User #0\n",
" documents = [\n", "User #1"
" {\"data\": {\"name\":'Document #%d-%d-%d' % (userIndex, projectIndex, documentIndex, ), \"type_id\":nodeTypeDocument.pk, \"user_id\":user.id}}\n", ]
" for documentIndex in range(10000)\n", },
" ]\n", {
" Node.load_bulk(documents, projectNode)\n", "output_type": "stream",
"print(time() - t0)" "stream": "stdout",
"text": [
"\n",
"User #2"
]
}
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(t1-t0)"
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"116.94907426834106\n"
]
}
],
"prompt_number": 10
}, },
{ {
"cell_type": "code", "cell_type": "code",
......
# coding: utf-8 # coding: utf-8
from django.db import transaction from django.db import transaction
from node.models import Node, NodeType from models import Node, NodeType
from django.contrib.auth.models import User from django.contrib.auth.models import User
from time import time from time import time
print(time()) print(time())
...@@ -20,9 +19,14 @@ nodeTypeProject.save() ...@@ -20,9 +19,14 @@ nodeTypeProject.save()
nodeTypeDocument = NodeType(name="Document") nodeTypeDocument = NodeType(name="Document")
nodeTypeDocument.save() nodeTypeDocument.save()
number_userIndex = 100 #number_userIndex = 100
number_projectIndex = 50 #number_projectIndex = 50
number_documentIndex = 10000 #number_documentIndex = 10000
number_userIndex = 10
number_projectIndex = 5
number_documentIndex = 100
# In[ ]: # In[ ]:
...@@ -30,21 +34,24 @@ Node.objects.all().delete() ...@@ -30,21 +34,24 @@ Node.objects.all().delete()
User.objects.filter(username__startswith = "User #").delete() User.objects.filter(username__startswith = "User #").delete()
t0 = time() t0 = time()
for userIndex in range(number_userIndex):
userName = 'User #%d' % (userIndex, )
user = User(username=userName) with transaction.atomic():
user.save() for userIndex in range(number_userIndex):
rootNode = Node.add_root(name=userName, type_id=nodeTypeRoot.pk, user_id=user.id) userName = 'User #%d' % (userIndex, )
print(userName) user = User(username=userName)
for projectIndex in range(number_projectIndex): user.save()
projectName = 'Project #%d-%d' % (userIndex, projectIndex, ) rootNode = Node.add_root(name=userName, type_id=nodeTypeRoot.pk, user_id=user.id)
projectNode = Node(name=projectName, type_id=nodeTypeProject.pk, user_id=user.id) print(userName)
rootNode.add_child(instance=projectNode) for projectIndex in range(number_projectIndex):
documents = [ projectName = 'Project #%d-%d' % (userIndex, projectIndex, )
{"data": {"name":'Document #%d-%d-%d' % (userIndex, projectIndex, documentIndex, ), "type_id":nodeTypeDocument.pk, "user_id":user.id}} projectNode = Node(name=projectName, type_id=nodeTypeProject.pk, user_id=user.id)
for documentIndex in range(number_documentIndex) rootNode.add_child(instance=projectNode)
] documents = [
Node.load_bulk(documents, projectNode) {"data": {"name":'Document #%d-%d-%d' % (userIndex, projectIndex, documentIndex, ), "type_id":nodeTypeDocument.pk, "user_id":user.id}}
for documentIndex in range(number_documentIndex)
]
Node.load_bulk(documents, projectNode)
print(time() - t0) print(time() - t0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment