             console.error e.message
             return
 
-        debug('inserting %s models into %s', Object.keys(data).length, modelName)
-
-        for id, obj of data
-            obj.id = id
-            repo.save obj,
-                method : 'create'
-                force  : true
-                include:
-                    entityPool: @entityPool
+        ids = Object.keys(data)
+        debug('inserting %s models into %s', ids.length, modelName)
+
+        # save models portion by portion, considering parallel connection size
+        PORTION_SIZE = 5
+        do saveModelsByPortion = =>
+            return if ids.length is 0
+
+            idsPortion = ids.slice(0, PORTION_SIZE)
+            ids = ids.slice(idsPortion.length)
+
+            results = for id in idsPortion
+                obj = data[id]
+                obj.id = id
+                @saveModel(repo, obj)
+
+            if results[0] instanceof Promise
+                Promise.all(results).then => saveModelsByPortion()
+            else
+                saveModelsByPortion()
+
+
+
+    saveModel: (repo, obj) ->
+
+        result = repo.save obj,
+            method : 'create'
+            force  : true
+            include:
+                entityPool: @entityPool
+
+        if result instanceof Promise
+            result.then (entity) =>
+                @entityPool.set entity
+
+        else
+            @entityPool.set result
+
 
 
     ###*

                when 'string'
                    @readTSV(fx.fixtureDir, fx.data)
                when 'function'
                    fx.data(@entityPool)
                when 'object'
                    fx.data


        return objs


###*
'this' property in fixture's data function

this.readTSV('xxx.tsv') is available

    module.exports = {
        data: function(entityPool) {
            this.readTSV('model-name.tsv');
        }
    };

@class Scope
@private
###
class Scope

    constructor: (@loader, @fx) ->

    ###*
    @method readTSV
    @param {String} filename filename (directory is automatically set)
    @return {Object} tsv contents
    ###
    readTSV: (filename) ->
        @loader.readTSV(@fx.fixtureDir, filename)


module.exports = FixtureLoader
