- Timestamp:
- May 3, 2010, 8:45:22 AM (16 years ago)
- Location:
- branches/simmosaic_branches
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
Nebulous-Server/lib/Nebulous/Server/SQL.pm (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/simmosaic_branches
- Property svn:mergeinfo changed
-
branches/simmosaic_branches/Nebulous-Server/lib/Nebulous/Server/SQL.pm
r24643 r27839 183 183 WHERE ins_id = ? 184 184 }, 185 delete_instance_by_so_id => qq{186 DELETE FROM instance187 WHERE so_id = ?188 },189 185 get_object_from_uri => qq{ 190 186 SELECT so_id … … 218 214 GROUP BY so_id 219 215 }, 220 copy_ instances_to_deleted => qq{216 copy_dead_instances_to_deleted => qq{ 221 217 INSERT INTO deleted 222 218 SELECT vol_id, uri, NULL 223 219 FROM instance 220 LEFT JOIN mountedvol 221 USING(vol_id) 224 222 WHERE 225 223 so_id = ? 224 AND (mountedvol.available IS NULL || mountedvol.available = 0) 225 }, 226 find_dead_instances_by_so_id => qq{ 227 SELECT so_id, ins_id, vol_id, uri 228 FROM instance 229 LEFT JOIN mountedvol 230 USING(vol_id) 231 WHERE 232 so_id = ? 233 AND (mountedvol.available IS NULL || mountedvol.available = 0) 226 234 }, 227 235 get_object_instances => qq{ … … 229 237 storage_object.so_id, 230 238 uri, 231 available 239 mountedvol.available, 240 vol_id, 241 cab_id 232 242 FROM storage_object 233 243 JOIN instance … … 235 245 JOIN mountedvol 236 246 USING(vol_id) 237 WHERE ext_id = ? 238 AND available = ? 247 JOIN volume 248 USING(vol_id) 249 WHERE ext_id = ? 250 AND mountedvol.available = ? 239 251 }, 240 252 get_object_instances_by_vol_name => qq{ 241 253 SELECT 242 254 storage_object.so_id, 243 uri 255 uri, 256 vol_id, 257 cab_id 244 258 FROM storage_object 245 259 JOIN instance … … 247 261 JOIN mountedvol 248 262 USING(vol_id) 249 WHERE ext_id = ? 250 AND name = ? 251 AND available = ? 252 }, 263 JOIN volume 264 USING(vol_id) 265 WHERE ext_id = ? 266 AND mountedvol.name = ? 267 AND mountedvol.available = ? 268 }, 269 # volume handler 253 270 get_storage_volume_by_name => qq{ 254 271 SELECT … … 267 284 LIMIT 1 268 285 }, 269 get_replication_volume_for_ext_id => qq{ 286 # volume handler 287 get_cabinets_for_ext_id => qq{ 288 SELECT DISTINCT 289 cab_id 290 FROM instance 291 JOIN volume ON instance.vol_id = volume.vol_id 292 JOIN storage_object USING(so_id) 293 WHERE ext_id = ? 294 }, 295 get_replication_volume_for_ext_id => qq{ 296 SELECT * FROM ( 270 297 SELECT 271 298 m.vol_id, 272 host,273 path,274 xattr,299 m.host, 300 m.path, 301 m.xattr, 275 302 total - used as free 276 303 FROM mountedvol AS m 277 LEFT JOIN instance AS i 304 JOIN volume AS v USING(vol_id) 305 LEFT JOIN ( 306 SELECT 307 instance.vol_id, 308 so_id 309 FROM instance 310 JOIN volume 311 ON instance.vol_id = volume.vol_id 312 WHERE so_id = ( 313 SELECT so_id 314 FROM storage_object 315 WHERE ext_id = ? 316 ) 317 ) AS i 278 318 ON m.vol_id = i.vol_id 279 AND i.so_id = (280 SELECT so_id281 FROM storage_object282 WHERE ext_id= ?283 )284 WHERE285 i.vol_id IS NULL286 AND used / total < ?287 AND available = ?288 AND allocate = ?289 ORDER BY RAND()290 LIMIT 1291 },319 WHERE 320 i.vol_id IS NULL 321 AND used / total < ? 322 AND m.available = ? 323 AND m.allocate = ? 324 AND ( (v.cab_id IS NULL) || 325 (v.cab_id != ?) ) 326 ORDER BY free DESC 327 LIMIT ?) as topfew 328 ORDER BY RAND() 329 LIMIT 1 330 }, 331 # volume handler 292 332 get_storage_volume => qq{ 333 SELECT * from ( 293 334 SELECT 294 335 vol_id, … … 303 344 AND allocate = ? 304 345 ORDER BY free DESC 346 LIMIT ?) as topfew 347 ORDER BY RAND() 305 348 LIMIT 1 306 349 }, 350 new_cabinet => qq{ 351 INSERT INTO cabinet (name, location, cab_id) 352 VALUES (?, ?, NULL) 353 }, 307 354 new_volume => qq{ 308 INSERT INTO volume (name, host, path, allocate, available, xattr, mountpoint )309 VALUES (?, ?, ?, TRUE, TRUE, FALSE, ? )355 INSERT INTO volume (name, host, path, allocate, available, xattr, mountpoint, cab_id) 356 VALUES (?, ?, ?, TRUE, TRUE, FALSE, ?, NULL) 310 357 }, 311 358 get_volume_by_name => qq{ … … 323 370 v.available, 324 371 v.xattr, 325 mountedvol.vol_id IS NOT NULL as mounted 372 mountedvol.vol_id IS NOT NULL as mounted, 373 v.cab_id 326 374 FROM volume AS v 327 375 LEFT JOIN mountedvol … … 329 377 }, 330 378 find_object_by_ext_id => qq{ 331 SELECT ext_id, ext_id_basename379 SELECT so_id, ext_id, ext_id_basename 332 380 FROM storage_object 333 381 WHERE ext_id = ? … … 606 654 ### 607 655 656 CREATE TABLE cabinet ( 657 cab_id INT NOT NULL AUTO_INCREMENT, 658 name VARCHAR(255) NOT NULL, 659 location VARCHAR(255), 660 PRIMARY KEY(cab_id), 661 UNIQUE KEY(name), 662 KEY (location) 663 ) ENGINE=innodb DEFAULT CHARSET=latin1; 664 665 ### 666 608 667 CREATE TABLE volume ( 609 668 vol_id INT NOT NULL AUTO_INCREMENT, … … 615 674 xattr BOOLEAN DEFAULT FALSE, 616 675 mountpoint VARCHAR(255) NOT NULL, 676 cab_id INT, 617 677 PRIMARY KEY(vol_id), 618 678 UNIQUE KEY(name), … … 621 681 KEY(allocate), 622 682 KEY(available), 683 FOREIGN KEY(cab_id) REFERENCES cabinet(cab_id), 623 684 KEY(mountpoint(255)) 624 685 ) ENGINE=innodb DEFAULT CHARSET=latin1;
Note:
See TracChangeset
for help on using the changeset viewer.
